התנסות ראשונה בתכנות לאנדרואיד

מאי 13, 2012

נפתח בזה שכבר די השתעממתי מ#C, ואולי אני לא מתכנת ברמה עולמית ואפילו לא ברמה גבוהה, יש לי עוד הרבה מה ללמוד, החלטתי שאני רוצה לנסות לכוון אל התכנות למכשירים ניידים שהם העתיד.
תהליך הברירה הטבעית הוביל אותי אל האנדרואיד, מאחר ואין לי מאקינטוש לתכנת לאייפון וכבר יש בידי מכשיר אנדרואיד, הנחתי שאני פשוט יתחיל ונראה לאן זה מתקדם.

הורדתי את ה Android SDK ו- Eclipse, הפעלתי אותה והוצגה בפני הממשק של אקליפס. מתכנתים מנוסים יותר בטח מכירים אותה בעבודה מול Java, אך אני פעם ראשונה נוגע בה.
הממשק של אקליפס קרוב לממשק שאני מכיר מ Visual Studio, אבל מה שמתברר כשונה, הוא שאני לא יכול לבזבז את רוב הזמן שלי במסך העיצוב בגראפי של התוכנה כמו שאני רגיל ב #VC, אלא את רוב זמני אני אעביר בתוך קובץ XML של הממשק או בקוד עצמו. הממשק הגראפי פשוט לא עובד כמו שצריך, וגם אם הוא כן עושה את רוב הדברים שאני צריך, הרבה פעמים יש בו באגים מוזרים שמכריחים אותי לעבור לממשק הXML.

ובכן מספיק על הממשק משתמש של אקליפס, בואו נעבור למשהו מעניין יותר, השפה בה מתכנתים לאנדרואיד – Java. ממבט ראשון היא נראית מאיימת למדי, אבל היא לא כזאת נוראית.
מהתנסות פשוטה עימה, היא מתפקדת כמו כל שפת תכנות OOP וה syntax שלה די קרוב לזה של #C. אם כך לא היה לי קשה מידי להתחיל, נכון יש לה את הניואנסים שלה, אבל היא עובדת לא רע, ודי נוחה אחרי שמתרגלים.

אחרי ההתנסות הראשונית שלי עם אקליפס וג’אווה הגיע הזמן לבחור פרוייקט. צריך לבנות תוכנה! כאן נתקלתי בדילמה (ואותה אחת יש לי גם עם #C) איזה אפליקציה נבנה? מה אני רוצה שהיא תעשה? אני צריך ש-א. תיהיה אפליקציה שהרבה אנשים יצטרכו וישתמשו בה ו-ב. בתור אפליקציה ראשונה שלי לאנדרואיד, היא צריכה ליהיות יחסית פשוטה וקלה למימוש.
יש גם את ג. אבל הוא קצת פחות חשוב – אפליקציה שאני צריך ואני ישתמש בה (זה אגב איך אני מתחיל תוכנות גם ב#C, אני לא עובד בשביל חברה גדולה, אז אני מפתח תוכנות שאני צריך, וגם אחרים ישתמשו בהם).
החלטתי שאני עושה תוכנה פשוטה להמרת מטבע. אם כי יש כמה תוכנות דומות במרקט (או Google Play Store בשמו החדש שאני לעולם לא אתרגל אליו), החלטתי שזהו פרוייקט יחסית פשוט שאני יכול לבנות בזמן יחסית קצר (ובאמת כך היה, לקח לי בדיוק יומיים לסיים אותו).

ממשק המשתמש של התוכנה

אחרי שבחרנו פרוייקט ומה אנחנו רוצים שהוא יעשה, צריך לחשוב על איך הוא יעבוד.
החלטתי שאני אתבסס על גוגל בקטע הזה, כך אני תמיד אשאר מעודכן עם שינויים בערך המטבעות. לגוגל יש דף באינטרנט שהוא ממיר מטבעות פשוט במיוחד (http://www.google.com/finance/converter) החלטתי שאני מתממשק אליו.
מבחינת הממשק של התוכנה, הממשק קרוב בעיצוב לזה של הדף בגוגל. שני שדות טקסט, שני תיבות בחירה וכפתור.

אחרי שממשק המשתמש מוכן, אפשר לעבור לקוד מאחורה שעושה את העבודה (והרבה מתכנתים יחלקו עלי כאן ויאמרו שיש קודם כל לעבוד על הקוד מאחורה ואז לעבוד על ממשק המשתמש, אבל זאת הדרך שלי, וכך אני עובד). אז מה עושים? איך אני מתחבר אל גוגל? החלטתי שאני “מעגל פינות” ואני לא אתממשק ישירות דרך ג’אווה עם גוגל, אלא דרך דף PHP בשרת שלנו שיחזיר את התשובה. זה מאחר ולא טרחתי לקרוא וללמוד איך לעבוד עם HTML DOM או XML בג’אווה (חפשו בגוגל, תבינו אותי מהר מאוד P: למתחיל זה קצת מפחיד) ואני כבר מכיר איך עושים זאת בPHP.
אם כך אז מה שכרגע יש לי זה דף PHP שמקבל 3 משתנים – כמות, מטבע שממנו נמיר, מטבע שאליו נמיר, ומחזיר את התוצאה. בג’אווה זה לא קשה מידי לתקשר עם דף באינטרנט ולקבל את התשובה.

ממיר המטבעות בפעולה


אז עכשיו מה שנשאר זה לחבר הכל, וכך זה עובד:
1. המשתמש מכניס כמות כסף שאותה הוא רוצה להמיר
2. המשתמש בוחר את ערך המטבע ההתחלתי
3. המשתמש בוחר את ערך המטבע שאליו הוא רוצה להמיר, ולוחץ על הכפתור
4. האפליקציה מתחברת לשרת שלנו לדף PHP שהגדרתי, שהוא בתורו מתחבר לדף בגוגל שממנו הוא מחזיר את התשובה.
5. האפליקציה מקבלת את התשובה מהשרת ומציגה אותה למשתמש על המסך.

ובכן נכון שזאת אפליקציה מאוד מאוד פשוטה, ואני גאה בה – זאת האפליקציה הראשונה שלי לאנדרואיד! אם כך מה שנשאר הוא לשלם לגוגל ולהעלות אותה למרקט.
שימו לב שגוגל הרבה יותר נחמדים מאפל לגבי התשלום לחשבון מפתחים. אם אצל אפל זה 100$ לשנה, אצל גוגל זהו תשלום חד פעמי של 25$. אין ספק שהרבה יותר קל להתחיל אצל גוגל, ואני מניח שזה כן גורר המון “מפתחי זבל” שיציפו את המרקט באפליקציות גרועות ולא מועילות בשום אופן, אבל זה כן עוזר למתכנתים מתחילים שעדיין אין להם יותר מידי נסיון וכסף לבזבז על חשבון המפתחים (כבר אמרתי שאצל אפל זה 100$ לשנה?)

בימים הקרובים אני מתכנן לשלם לגוגל ולהעלות את האפליקציה שלי למרקט, עד אז תוכלו להוריד אותה מכאן:
Android Currency Converter (271 downloads)
כדי להתקין את האפליקציה יש להעביר אותה לכרטיס זיכרון של הטלפון, לגשת אליו עם תוכנת סייר קבצים במכשיר (אני ממליץ על Total Commander או Root Explorer) ולהריץ את הקובץ הנ”ל. המכשיר יתקין את התוכנה כרגיל.
אפשרות שניה היא לגשת לבלוג מהטלפון ולהוריד את האפליקציה ישירות לטלפון. בסוף ההורדה יש לגלול למטה את חלון ההתראות וללחוץ על ההתראה של סיום ההורדה.

– אילן

תגובה אחת to “התנסות ראשונה בתכנות לאנדרואיד”

  1. נחמד לשמוע מכם שוב ^_^!
    ומזל טוב על האפליקציה!!

השאר תגובה