מישהו מפבלש לאנדרואיד בקלות?


#1

היום עברתי מסכת ייסורים כשניסיתי לפבלש לאנדרואיד ולבסוף, לאחר המון נסיונות, חיפושים בגוגל, התקנות חוזרות ושגיאות הצלחתי לראות את המשחק במכשיר ואפילו לקבל trace בחלון CMD, אבל יצאתי מבולבל מכל העניין ויש לי הרגשה שזה הולך להיות הרבה פחות נוח מאשר עבודה עם AIR. וכשאני חושב על זה, אז למה בעצם זה כדאי? למה (כשמדובר על פיתוח למכשירי מובייל) לא להשתמש ב-AIR ו-starling ולעבוד בקלות, במהירות ובנוחות שאליה אני רגיל?
אמנם נכון - HTML עובד מדהים עם אותו קוד, אבל אשמח לשמוע גם מכם, אם יש לכם נסיון עם זה, מה אתם חושבים, האם זה שווה את המאמץ הנוסף של לעבור את כל הקשיים של debugging לא אינטואיטיבי…


(מיכאל שלמה) #2

אוקי, גילוי נאות: למעט כמה פעמים שהשתעשעתי עם openFl לא השתמשתי בזה יותר מדי… אני כעת יותר מתעניין בhaxe/js וסרבר סייד, עקב השאלה שלך, סיקרנה אותי מאוד חוויית ההתקנה עליה דיברת ולהלן סיקור החוויה והמסקנות שלי :smile:

תהליך ההתקנה:

  1. חיפשתי בגוגל android openfl וקיבלתי את הדף הזה.

  2. בחרתי כמובן באפשרות הקלה של התקנה אוטומאטית :slight_smile: והרצתי:

    lime setup android

  3. את האמת פה מאוד הופתעתי שזה הוריד והתקין לבד את ה-NDK,SDK,Ant של אנדרואיד וביקש ממני להוריד את ה-JDK (לא לפני ששאל אותי אם אני רוצה שהוא יפתח בשבילי את העמוד המתאים ב-Oracle!).

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

  5. ניסיתי לקמפל את משחק הפונג לאנרואיד - ונתקלתי בשגיאה הבאה:

    Unable to resolve project target ‘android-16’

  6. חיפשתי בגוגל והתוצאה השלישית (הדף השני בו ביקרתי) היה זה בו גיליתי שני מכשולים הקשורים ל-openFl.

  7. המכשול הראשון, כפי שמצויין בדף, openFl, כברירת מחדל, משתמש בגירסא 16 של Android Api, אבל ה-Manager SDK מוריד אוטומאטית (משום מה) את גירסא 19, ולכן אנחנו צריכים להגדיר ידנית ב-project.xml שאנחנו רוצים להשתמש בגירסא 19 (אני חושב שזה היה אמור להיות רשום איפשהוא בדף ההתקנה של openFl - אני אנסה להכניס את זה) - בכל מקרה, הפיתרון הוא להוסיף ב-project.xml (אני הוספתי מתחת ל-meta תג אבל אני לא חושב שזה משנה…):
    <android target-sdk-version="19" />

  8. המכשול השני (גם הוא ופתרונו מצויינים בדף שבסעיף 6), שכנראה ה-Android מחייב שה-package יהיה לפחות על “ילד” אחד ולכן שיניתי את ה-package שב-Meta תג ל- package="com.try.PongGame" - פתירת סעיפים 6-7 לקח לי 10 דקות.

  9. לאחר מכן, נתקלתי בתקלה נוספת:
    com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK. It is currently set to "D:\java"

  10. לפתור את התקלה הזו לקח לי לפתור כשעה (ולא לפני שראיתי סירטון של הודי מסביר איך להתקין JDK במבטא מצחיק :smile: ), לבסוף התברר שכל הבעיה הייתה שהקובץ שהורדתי מהאתר של Oracle ירד בצורה פגומה. כשהורדתי אותו וניסיתי להפעיל אותו הוא פתח לי cmd שחור וזהו, אני חשבתי שזו התנהגות נורמאלית, לאחר הסירטון המרתק של ההודי התברר לי שלא ולכן הורדתי את ה-JDK שוב מהאתר של Oracle.

  11. ניסיתי לקמפל ו… עבד :smiley:

מסקנות:

אוקי, קודם כל הופתעתי מאוד מהאופן שבו openFl מטפלת בכל ההורדות של רכיבי האנדרואיד הנוספים שנדרשים, לא הייתי צריך לצאת לשום גורם שלישי, הכל התבצע באופן אוטומאטי, אני בהחלט מסכים שאי איזכור בדף ההתקנה את 2 הגדרות הנוספות שצריך לבצע ב-Project.xml יכול לגרום לצרות צרורות - הבעיה השלישית שלקח לי את רוב הזמן הייתה בעיה בהורדת הקובץ ולא קשורה ל-openFl או תהליך ההתקנה כלל!
סה"כ אני חושב שתהליך ההתקנה היה פשוט.

שאלה מצויינת! יתרון מובהק של הקס היא קלות ונוחות הפיתוח. בהקס מאוד נפוץ לפתח את התוכנית ליעד שמתקמפל הכי מהר(בד"כ Neko), ורק בסוף לשנות ליעד שאתה באמת רוצה, לאחר שקימפלתי את ה-Pong לאנדרואיד רציתי לעשות כמה שינויים, כמו להוסיף יכולת טאצ’ וכל מיני traces אבל זה היה קצת מעצבן כי כל קימפול לקח בערך 10 שניות (במצב Debug) אז פשוט הפכתי את היעד ל-html5 בדקתי שאני מצליח לזהות טאצ’ ע"י הדפדפן בדקתי את הכל במהירות וביעילות (זמן הקימפול ל-HTML5 הוא חצי שניה…) ורק כשהכל היה מוכן יצאתי לאנדרואיד.

להפך! כל העיניין בהקס הוא למחוק את השיטה של פיתוח לפי פלטפורמה! ו… פשוט תתרכז בלפתח את האפליקציה שלך…

  • אחד הקשיים הגדולים של הקס בפרט וכל משהו חדשני בכלל הוא לגרום לאנשים
    להפסיק את ההרגל שלהם, אם אתה רגיל היום לקנות דרך paypal יהיה לך קשה
    לעבור לחברת סליקה אחרת גם אם היא מציעה צורת תשלום נוחה/משתלמת/מגניבה
    יותר.
  • אני לא מכיר כ"כ את Air (למען האמת הגעתי להקס אחרי שניסיתי לקמפל פרוייקט מ- FlashDevelop ל-Air והסתבכתי) ויכול להיות שחוויית הפיתוח (למובייל) היא אכן טובה יותר, אבל עד כמה שאני זוכר Adobe הם לא בדיוק שייכים לקרן הפילנתרופית של ביל גייטס והכלים שלהם עולים הרבה כסף ואז אחרי X זמן הם מוציאים גירסא חדשה ורוצים עוד כסף… לא טוב ליהודים… הקס חינמית
  • חוויית הפיתוח והכלים כל הזמן משתפרים! לדוגמא חבר מהקהילה מפתח עכשיו את hxScout (לא התבלבלת זה המקביל של Adobe Scout) ובימים אלה הוא עובד על להתאים את זה ל-OpenFl וגם באופן כללי,אני חושב ש-Open Source מתפתחים בצורה מהירה יותר מהחברות המסחריות ולכן לאט לאט ניראה שאולי הקס הופכת למתחרה ל-Adobe גם בתחום הכלים.

אז לסיכום של הסיכום:smile: , אני חושב שכן כדאי לך לפתח בהקס גם למובייל, אבל בסופו של דבר הקס זה בראש ובראשונה חווית פיתוח ואם אתה מרגיש שחוויית הפיתוח שלך נפגעת והשימוש בהקס למובייל יותר מזיק לך (בגלל חוסר בכלים וכו’) מאשר מועיל לך, אז אולי באמת כדאי לך להישאר לבינתיים(!) בחממה של Air ו- Starling.


#3

תודה מיכאל על התשובה העמוקה והמפורטת!!
יכול מאד להיות שבגלל הבלבול הראשוני + הבעיות ששנינו נתקלנו בהן + הצורך לשנות הרגלים אני נבהל מהר מדי. אני אמשיך לנסות עוד קצת לפני שאתייאש בשלב זה. בינתיים מה שחשוב לי זה דווקא לא להתמקד בפיתוח אפליקציה, אלא בבדיקת האפשרויות הקיימות ובפרט היכולת לקמפל לפלטפורמות שונות (שזה אמור להיות החוזק העיקרי של הקס) בלי למרוט את כל השערות מהגוף לאורך זמן :smile: .
אתמול עברתי לבדוק איך זה לעבוד עם haxeFlixel וגם שם נתקלתי בלא מעט בעיות. אני עדיין על זה, כי נראה לי ששווה להצליח בזה כדי לחסוך זמן פיתוח בעתיד.


(מיכאל שלמה) #4

בשמחה! אני שמח שאתה ממשיך לחקור את הקס, אני מאמין שבמוקדם או במאוחר גם אתה תתאהב :smiley:
לגבי haxeFlixel, לא יצא לי לעבוד איתה בכלל אבל אני יודע שהרבה חברות גדולות משתמשות וזו הספרייה הכי פופולרית ל-openFl בה כך שזה אמור להיות חלק יחסית, אם יש לך שאלות/תהיות/מסקנות או סתם בא לך לשתף אשמח לשמוע וללמוד!