פיתוח אפליקציות

קבל הצעת מחיר➘

פיתוח אפליקציות לאנדרואיד

פיתוח אפליקציות לאנדרואיד – הפלטפורמה המועדפת?

המתכון הטוב ביותר להפיכה לכישלון גוגל פליי (Google Play) מוחלט, הוא להעלות אפליקציה שלא רק זוללת זיכרון וסוללה, אלא גם בעלת ממשק איטי. סביר להניח שתכונות אלה יבטיחו חוויית משתמש עצלה, שתבטיח ביקורות גרועות ממשתמשים, שיובילו למוניטין ירוד, אפילו במידה והאפליקציה נראית נהדר מבחינה עיצובית ובעלת רעיון ייחודי.

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

אנדרואיד לוגו

41% מפתחים עבור אנדרואיד. מה ייחודי בבניית אפליקציות לאנדרואיד?

Java מעניק לאנדרואיד יתרון יחסי

מחקרים מראים שתהליך בניית האפליקציות לאנדרואיד מהיר יותר מהמתתחרים בפלטפורמת OS, הודות לכלים משופרים ושילוב פלטפורמות פיתוח.

היכרות עם Java היא מפתח עבור יכולת מפתחי אפליקציות לפתח מעט מהר יותר עבור פלטפורמת מובייל Android של גוגל, יחסית למתחרי iOS של Apple או פלטפורמות Windows phone של מיקרוסופט.

[1] כחלק מסקר חצי שנתי בתחום פיתוח למובייל שנערך מטעם תאגיד Evans Data, שכלל השתתפות של 464 מפתחי אפליקציות מרחבי העולם, 41% ממפתחי אפליקציות שמפתחים עבור אנדרואיד טענו שפרוייקט בניית אפליקציית אנדרואיד טיפוסית ערכה לא יותר מחודש. זאת בהשוואה ל- 36% שטענו את אותו הדבר לגבי iOS, ו- 34% שטענו זאת לגבי Windows phone.

Evans Data מייחסים את היתרון היחסי של אנדרואיד בכישורי הפיתוח של Java, שממונפים על ידי מפתחי אפליקציות לאנדרואיד. שפת Objective-C הפחות מוכרת, משמשת עבור אפליקציות iOS, אף על פי ששפה זו צוברת פופולריות רבה לאחרונה. אפליקציות Windows Phone משתמשות בשפת תכנות כמו C# ו- Visual Basic שנחשבות בין הבולטות ביותר.

  • "אנו רואים הרבה שמפתחים רבים מגלים עניין רב באנדרואיד לאחרונה, ואני סבור שהניסיון הרב שיש להם בפיתוח אפליקציות בעזרת Java בא לידי ביטוי בפיתוח לאנדרואיד," אומר אנליסט Even Data, מיכאל רסלן.

פיתוח אפליקציות לטאבלטים: אנדרואיד, ווינדוס או iOS?

כמוכן, סקר נוסף מטעם התאגיד מצא שפלטפורמת אנדרואיד הייתה פלטפורמת הפיתוח לאפליקציות העיקרית עבור טאבלטים. 84% מהמפתחים שנשאלו אודות פיתוח לטאבלטים טענו לפיתוח עבור אנדרואיד, לעומת 62% עבור iOS ו- 52% עבור ווינדוס. למרות שרוב מפתחי האפליקציות מתמקדים במספר פלטפורמות וגדלי מסכים, כש- 74% מהם מבצעים תאימות לשלל גדלי מסכים לפני העלאת האפליקציות. רוב האפליקציות המפותחות היום בשוק מתוכנתות עבור עסקים וייעול שירותים, לפי דבריו של רסלן.

סקר Evens מצא שמפתחי אנדרואיד, שמפתחים עבור מגוון ספקים בניגוד לבניית אפליקציות לספק iOS יחיד, בסופו של דבר מוצאים עצמם עוסקים לא מעט בבדיקות, וניפוי שגיאות. עם זאת, המפתחים מפצים על פערי זמן העבודה בחלקים אחרים של מחזור הפיתוח. בכל הפלטפורמות, בדיקות וניפוי שגיאות עורכים זמן רב, מלבד Firefox OS ו- Tizen, בהם תכנות הקוד הוא החלק שגוזל את רוב הזמן.

בניית אפליקציות לאנדרואיד

טיפים עבור מפתחי אפליקציות לאנדרואיד: 3 טיפים לתהליכון (Threading) יעיל

טיפ מס' 1. ייצוא פעילויות לתהליכונים ברקע

כיוון שברירת המחדל של כל פעילויות האפליקציה היא להתבצע על גבי התהליכון הראשי (UI thread) בחזית, היענות האפליקציה עלולה להיפגע, שעלולה לגרור תקיעות, באגים, מסכי "קפואים" ואפילו שגיאות מערכת.

על מנת לחזק יכולות תגובה, מומלץ להעביר משימות מתמשכות וארוכות (לדוגמה, פעילות רשת או מאגר נתונים וחישובים מורכבים) מהתהליכון הראשי לתהליכון רקע נפרד. הדרך היעילה ביותר לבצע זאת היא ברמת Class. תוכלו להשתמש ב- AsyncTask class או Intentservice class לצורך ארגון פעילויות הרקע. ברגע שיישמתם Intentservice, הוא פועל כשהוא נחוץ ומטפל בבקשות (Intents) באמצעות תהליכון פועל.

בעת שימוש ב- Intentservice, מומלץ לשקול כמה מגבלות:

  • ה- class לא מציג תוצאות ל- UI, כך שאם ברצונכם להציג תוצאות למשתמשים, השתמשו ב- Activity.
  • רק בקשה אחת מועבדת בכל סבב.
  • לא ניתן להפריע לבקשת עיבוד.

טיפ מס' 2. איך להמנע מ- ANR (ראשי תיבות: "Application Not Responding") ולהשאר רספונסיבים

אותה הגישה של הנקודה הקודמת, גם כאן, תציל את המשתמשים שלך מאפליקציה נתקעת שאינה מגיבה. מה שמומלץ לעשות הוא ליצור תהליכון רקע פעיל על ידי הרחבת AsyncTask ויישום שיטת ()doInBackground.

אופציה נוספת היא ליצור תהליכון (Thread) או HandlerThread class משלך. זכור כי אם לא הגדרת עדיפות "background" ל- thread, הוא יאט את האפליקציה מאחר ועדיפות ברירת המחדל זהה ל- UI thread.

טיפ מס' 3. איך ליזום שאילתות בתהליכונים נפרדים

תצוגת הנתונים היא לא מיידית. עם זאת, ניתן לזרז את התהליך על ידי שימוש ב- CursorLoader, שמאפשר ל- Activity איטראקציה רציפה עם המשתמש בזמן ששאילתה עוברת עיבוד ברקע.

חמוש באובייקט זה, האפליקציה תיזום תהליכון רקע נפרד עבור כל  שאילתת ContentProvider, ותחזיר תוצאות ל- Activity ממנו השאילתה נקראה רק כאשר השאילתה סיימה.

המשך גלישה נעימה,

צוות Dapps – חברה לפיתוח אפליקציות.

[1] מקור: דו"ח Evens Data המלא.