יצירת הפרויקט
בכדי שנוכל להתחיל בפיתוח האפליקציה עלינו ליצור את ספרית הפרויקט שלנו:
- פתחו את תוכנת ה-Eclipse.
- לחיצה ימנית על מקום ריק ב-Package Explorer.
- לחיצה על New > Project.
- בחירת Android > Android Project ולחיצה על Next.
- החלון שיוצג לנו ("Create Android Project") מאפשר לנו להקליד את פרטי הפרויקט שלנו. ב-Project Name נקליד את שם האפליקציה (PushToScore), את שאר ההגדרות נשאיר בברירת המחדל ונלחץ על Next.
- החלון שניראה כעת יבקש מאתנו לבחור את ה-SDK שעליו נפתח את האפליקציה. במילים אחרות, עלינו לבחור על איזה גרסא של מערכת ה-Android אנו רוצים שהאפליקציה תרוץ. אם נבחר גרסת Android עדכנית יותר, כך האפליקציה שלנו תרוץ על פחות מכשירים. ככול שנבחר גרסא ישנה יותר, כך יותר מכשירים יתמכו באותה האפליקציה. אם למשל נפתח את האפליקציה בגרסא 2.1 של Android כל הסמארטפונים מגרסא זו ומעלה יתמכו באפליקציה. סמארטפונים מתחת לגרסא זו לא יוכלו להריץ את האפליקציה. מומלץ לבחור בגרסא 2.1, גרסא אשר רוב המכשירים תומכים בה. נבחר את Android 2.1 באמצעות סימון ה-V. ונלחץ על Next.
- כעת יפתח חלון ה-Application Info. את תיבת ה-Application Name נשאיר כפי שהיא ואת ה-Package Name נשנה לשם החבילה שלנו. שם החבילה שלנו מורכבת ממספר מילים המופרדות באמצעות נקודה. שם חבילה מכיל אותיות קטנות באנגלית ללא רווחים.
- שם ה-Package Name הנהוג מתואר בדרך הבאה: com.organizationName.appName . כאשר organizationName מתאר את שם החברה שכתבה את האפליקציה ו-appName מתאר את שם האפליקציה. לכן שם החבילה שלנו יכול להיות מורכב בצורה הבאה: com.nemex.pushtoscore. בתיבת ה-Create Activity נשאיר את הסימון אך נשנה את שם ה-Activity ל-MainActivity. מה שזה בעצם אומר ל-Eclipse זה שאנו מעוניינים שהוא יצור את הפרוייקט עם Activity בשם MainActivity.
- כעת נלחץ על Finish.
חקירת עץ הפרויקט שנוצר
לאחר שיצרנו את הפרויקט נוצרה לנו ספרייה הדומה לספריה הבאה:
נחקור את התיקיות והקבצים החשובים לנו בתוך ספרייה הזו:
- Src – בתיקייה זו נמצאת החבילה שלנו שמכילה את כל המקור של התוכנה. שמה בעצם נכתוב את כל מה שקורה ברקע.
- Res – בתיקייה זו נמצאים כל המשאבים שבהם התוכנה תשתמש. המשאבים מתחלקים למספר סוגים:
- Drawables – משאבים המתארים גרפיקה אשר האפליקציה תשתמש בהם. כפי שניתן ליראות כברירת מחדל נוצרות לנו 3 תיקיות: drawable-hdpi, drawable-mdpi ו-drawable-ldpi. כל תיקייה מכילה את אותם הגרפיקות עם אותו השם בדיוק אך ברזולוציות שונות התואמות למכשירים ברזולוציות שונות. ניתן ליצור תיקייה נוספת בשם drawable אשר תהווה את ברירת המחדל ותרוץ על כל הרזולוציות – החיסרון בכך הוא שהתמונה לא תיראה במיטבה על פלאפונים שונים. יש ליצור תיקיה בשם drawable (לחיצה ימנית על תיקיית ה-res > New > Folder). כאשר נכנס לתיקיות ה-drawable השונות ניראה כי בכל אחת ואחת מופיעה תמונה בשם ic_launcher.png בגדלים שונים. קובץ זה הוא האייקון של האפליקציה שלנו. האייקון המופיע הוא אייקון ברירת המחדל של כל אפליקציה. מומלץ לקרוא את המדריך הבא בכדי לקבל יותר מידע כיצד להכין אייקון האפליקציה. אייקון מסוג זה נקרא Launcher Icon. בפרק הבא נחלץ את תיקיית ה-resources.rar שהורדנו וניראה כי שמה יש כבר אייקון מוכן.
- Values – ערכים אשר התוכנה תשתמש בהם. ערך יכול להיות למשל טקסט המופיע במסך התוכנה (מחרוזת), ערך מספרי וכו' בתור ברירת מחדל נוצר לנו קובץ בשם strings.xml. בקובץ זה נהוג לשים את המחרוזות שבהם התוכנה משתמשת.
- Layout – תיקייה זו מכילה את כל המסמכים אשר מתארים לנו כיצד Activity יראה. קובץ ברירת המחדל נקרא main.xml והוא בעצם מתאר כיצד המסך הראשי של התוכנה (MainActivity) יראה. ניתן להשוות את הקבצים בתיקייה הזו למסמכי HTML אשר מאפשרים לנו לתאר כיצד מסך ניראה. אם נכנס למסמך שנוצר (main.xml) ניראה כי ניתן ממש ליראות איך מסך ה-MainActivity יראה על המכשיר. בפרויקטים חדשים ניתן ליראות כי המסך שחור ורשום לנו משפט האומר "Hello World, MainActivity!".
- Raw – מכיל משאבים שונים אשר אינם אחד מן המשאבים הנ"ל. כמו למשל קטעי מוסיקה. באפליקציה שלנו אנו נפעיל סאונד כאשר הכפתור נלחץ ולכן נשתמש בתיקייה זו, שם יונח קובץ הסאונד.
חילוץ resources.rar וייבוא הקבצים לפרויקט
כעת נייבא את כל הקבצים שהוכנו מראש. נחלץ את קובץ ה-resources.rar ונייבא את כל התיקיות לתיקיית ה-res באמצעות גרירת התיקיות לתיקיית ה-res וביצוע החלפה לקבצים הנחוצים.
יצירת ה-Activities
מלבד החלון הראשי שנוצר עם הפרויקט שלנו (MainActivity) אשר יכיל את התפריט הראשי של המשחק, ניצור חלון נוסף אשר יכיל את המשחק עצמו.
נעשה זאת על ידי העתקת קובץ ה-MainActivity ושינוי שמו ל-GameActivity. כעת נעשה את אותו הדבר לקובץ ה-main.xml שבתיקיית ה-reslayout ונקרא לו game.xml.כעת במסמך ה-GameActivity נשנה את השורה הבאה:
setContentView(R.layout.main);
לשורה הבאה:
setContentView(R.layout.game);
כך אנו אומרים ל-GameActivity כי היא מקושרת לתצורת ה-game.xml. כך כל שינוי שנבצע על החלון ב-game.xml יתבטא ב-GameActivity.