פורסם: 03/09/2015 - 11:46
נושא ההודעה: Mobile native crossplatform development
|
שלום,
אני עובד עם לינוקס בלבד. (אין לי וינדוס או מק)
אני רוצה לפתח אפליקציה למובייל גם לIOS וגם ANDROID .(אם אפשר גם WINDOWS PHONE ).
מה ההמלצות ? איזה כלים/שפות ?
חיפוש בגוגל מביא לא מעט :
https://trigger.io
nativescript
reactnative
phonegap
titanium
אין לי מושג איפה להתחיל,מה כדאי.
אפשר בגלל לפתח NATIVE לIOS רק בלינוקס?
או שאני חייב לקנות IPHONE וMAC ...?
מעדיף להמנע מJAVA אם אפשר..
תודה
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 12:24
נושא ההודעה: Re: Mobile native crossplatform development
|
אורח : |
מעדיף להמנע מJAVA אם אפשר..
תודה |
סתם מסקרנות - אפשר לשאול למה?
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 12:42
נושא ההודעה: -
|
JAVA זה עולם ומלואו...נראה לי יקח לי לא מעט זמן להכנס לזה.
חוץ מזה שאני לא ממש אוהב את השפה/כלים (נגעתי בזה מזמן בתקופת התואר..)
אבל אם אני יצטרך לעבוד עם השפה כי זה הכי מומלץ לאנדרויד אני יעשה את זה.
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 13:16
נושא ההודעה: Re: -
|
אורח : | JAVA זה עולם ומלואו...נראה לי יקח לי לא מעט זמן להכנס לזה.
חוץ מזה שאני לא ממש אוהב את השפה/כלים (נגעתי בזה מזמן בתקופת התואר..)
אבל אם אני יצטרך לעבוד עם השפה כי זה הכי מומלץ לאנדרויד אני יעשה את זה. |
אצטרך*, אעשה*
בהצלחה מעבר להיות גרמר נאצי, אין לי שום ידע מועיל בפיתוח אפליקציות...
אבל לפי מיטב ידיעתי לאנדרויד מפתחים בג'אווה, אז יהיה לך קצת קשה להימנע מג'אווה אם תרצה שהאפליקציה שלך תעבוד בפלטפורמה שלהם..
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 13:47
נושא ההודעה:
|
אפשר לתכנת בפייתון לאנדרואיד
http://kivy.org/#home
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 14:12
נושא ההודעה:
|
ברשימה שהזכרת מופיע גם phonegap - פיתוח בHtml/javascript. (לפי הידוע לי רק לאנדרואיד).
על כל פנים - פיתוח "רשמי" לאייפון יתבצע רק בobjective C ורק על מחשבים שמריצים mac-osx.
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 14:21
נושא ההודעה:
|
עקרונית השפה שבה נכתבה האפליקציה לא כל כך משנה, הקוד עובר קומפילציה לפני שהוא נשלח למכשיר. המקום שזה כן משפיע זה כשהאפליקציה צריכה לפנות לספריות המערכת של android/ios ואז יותר מסובך לפנות לספריות שכתובות בשפה אחרת, בהרבה מקרים כשרוצים לכתוב קוד שירוץ על יותר ממערכת אחת אז משתמשים בשכבות תיאום כאלו ותלויים בשכבות האלה שלא תמיד מתעדכנות בזמן. בקיצור זה אפשרי ואולי מפשט למפתח את חלק מהדברים אבל זה גם מביא איתו אוסף של בעיות חדשות.
אחת השאלות העיקריות לפני שבוחרים סביבת פיתוח (ושפה) זה לשאול האם האפליקציה חייבת להשתמש ב-native ui של המערכת. אפליקציות שכתובות ב-phonegap למשל מציגות ממשק html שלא ממש נראה ומרגיש כמו אפליקצית אנדרואיד\ios רגילה. בנוסף לזה לכל מערכת יש קונבנציות ממשק קצת שונות ויש צורך לעשות התאמות ספציפיות אם רוצים שהמשתמשים באמת ירגישו בבית.
לגבי ios ו-mac, בעיקרון כדי להעלות אפליקציה ל-app store יש תהליך שחייבים לעשות על mac אבל חברות (כמו phonegap) מספקות שרותים כאלו אם משתמשים בפלטפורמה שלהם. אני קצת סקפטי לגבי היכולת לפתח אפליקציה טובה בלי להכיר לעומק את המערכת שהיא אמורה לרוץ עליה ולעשות בדיקות של האפליציה על החומרה שהיא מיועדת לה.
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 20:09
נושא ההודעה:
|
גילוי נאות - אני מתפרנס מפיתוח שמפליקציות למובייל.
אם זה לשימושך האישי - לך על Phonegap או Cordova. הם לא כאלו רעים לדברים קטנים.
ניסיתי את Xamarin, אבל הוא לא מיסך אותי ממערכת ההפעלה, וגם המחיר היה בשמיים. בינינו - בזמנו, זה אומר לפני שנה, הסביבת פיתוח הייתה ממש לא יציבה.
כיוון שרצינו לתת ללקוחות את הכי טוב שהפלטפורמה יכולה לתת, בסוף אני מפתח שתי אפליקציות. את זאת של אנדרויד כתבתי פעם אחת, ואז זרקתי לפח ומימשתי מחדש בעזרת Fragments. את האפליקציה של ־IOS כתבתי פעם ראשונה ב־ObjC ואז שכתבתי ב־Swift והוספתי תמיכה באייפד.
זה לא לוקח פי שניים יותר זמן לפתח, אלא פי.. 1.75. בערך. אתה לומד את מבני הנתונים של השמפליקציה שלך ואת הבעיות שיש לך ב־UI. אתה גם לומד מתי צריך לגרום לשמליקציה להתנהג שונה מה"אחות שלה", הרי IOS ו־Android מתנהגות שונה, ואנשים מצפים לדברים שונים בכל מערכת הפעלה.
הקוד אצלי ממש דומה, עד כדי כך שאני יכול לפתח באנדרויד (ג'אווה) ואז לפתוח חלון חדש ב־Sublime ולהעתיק את הקוד אל Swift ואז לגרום לו להתקמפל. עשיתי את זה בפיצ'ר האחרון שמימשתי. אני נלחם בבורות שלי בפיתוח במובייל ופחות בשפה.
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 20:19
נושא ההודעה: -
|
אז תכלס צריך IPHONE + MAC , ולפתח בJAVA + SWIFT .
לא הבנתי איך :
ציטוט: | אני יכול לפתח באנדרויד (ג'אווה) ואז לפתוח חלון חדש ב־Sublime ולהעתיק את הקוד אל Swift ואז לגרום לו להתקמפל |
זה 2 שפות וסביבות שונות..
|
|
חזרה לתוכן הדיון |
פורסם: 03/09/2015 - 21:24
נושא ההודעה:
|
elcuco - אם אתה כבר כותב בג'אווה לאנדרואיד, לא יותר פשוט להמיר ל-iOS עם RoboVM?
(לא מכיר לעומק, אבל נשמע שלזה בדיוק נועד)
|
|
חזרה לתוכן הדיון |
פורסם: 04/09/2015 - 07:44
נושא ההודעה:
|
אתה רצית native .
ל native יש שני מובנים :
1. native בשבילך ללינוקס שאתה עובד בו בקוד פתוח .
2. native מבחינת פלטפורמות המכשירים
מכיוון שאיכות האפליקציה (שמיועדת למערכת ההפעלה של הטלפון עצמו\טבלט\מכשיר חכם)
אתה רוצה גישה API נקיה לספריות פיתוח של המכשיר המיועד (native developer library)
אז אתה צריך להשתמש בפלטורמה אכי מתאימה:
על מנת לפתח לאנדרואיד
1. אתה יכול להתקין על לינוקס את android sdk (אנדרואיד sdk רץ על כל מערכת הפעלה win\mac\linux)
2.סביבת עבודה שמתאימה לפיתוח ב java
זה יכול להיות
eclipse EE
eclipse for java developer
netbeans
intelijidea
ואו עורכי טקסט
sublime text
atom editor\code
vim
emacs
תשלום לחנות אפליקציות של GOOGLE
לבסוף שיש לך אפליקציה סופית אפשר להעלות אותה ל google play וצריך לשלם משהו
תשלום ל apple
אצל אפל צריך ios developer account שזה עולה 100$ לשנה .
אצל אפל בניגוד ל google , אי אפשר בכלל לפתח משהו בלי לשלם להם התוכנה מגבילה אותך
לפיתוח ios
מחשב mac עם osx
סביבית פיתוח xCode של אפל
שפות : objective -c \ swift
רשיון ios developer account
אפשר לעשות טריק כזה אם אין לך חומרת mac
היום המעבדים של אפל הם אינטל , יש דיסקים iso של osx שניתנים להתקין ישירות על pc
חפש "hackintosh" עם כמה bootloader ניתן להתקין osx על pc
חפש ב torrent גרסאות osx ותתקין .
ייתכן שבאותו מחשב תצטרך למחוק את כל הדיסק הקשיח לפני כדי ליצור טבלת מחיצות efs
אבל בכל זאת חסכת לפחות 1000$
אחרי שיש לך osx תתקין xcode ותפתח חשבון מפתחים ב גוגל בעלות של 100$ לשנה .
ועוד משהו אתה צריך מכשיר iphone או טבלט של אפל כדי לבדוק את האפליקציה אם אין לך אז תקנה אחד iphone .
|
|
חזרה לתוכן הדיון |
פורסם: 04/09/2015 - 07:47
נושא ההודעה:
|
אפשר לתמצט לך את זה :
אנדרואיד= כל מערכת הפעלה+android sdk + סביבה ל Java
שפת פיתוח java , אתה צריך מכשיר אנדרואיד על מנת לדבג את האפליקציה.
אפל=מחשב אפל+xcode + חשבון מפתחים של אפל, אתה צריך מכשיר iphone על מנת לדבג את האפליקציה.
|
|
חזרה לתוכן הדיון |
פורסם: 04/09/2015 - 07:51
נושא ההודעה:
|
אפל שפת פיתוח objective-C שזה מעין הכלאה דומה של c עם OOP
אבל מה שבאמת עצוב זה:
שהם (אפל) ממשים את gcc+clang (של gnu) ועדיין אין לנו בלינוקס פתרון !
הם גונבים מאיתנו ומהקוד הפתוח את הטכנולוגיה ואז מכריזים בעלות בדוגמת ה xcode שלהם.
|
|
חזרה לתוכן הדיון |
פורסם: 05/09/2015 - 10:39
נושא ההודעה:
|
Anonymous : | אפל שפת פיתוח objective-C שזה מעין הכלאה דומה של c עם OOP
אבל מה שבאמת עצוב זה:
שהם (אפל) ממשים את gcc+clang (של gnu) ועדיין אין לנו בלינוקס פתרון !
הם גונבים מאיתנו ומהקוד הפתוח את הטכנולוגיה ואז מכריזים בעלות בדוגמת ה xcode שלהם. |
לא רק שזה לא מקוייק, זה לא נכון.
במק לא משתמשים ב־gcc אלא ב־clang, כי אפל לא היו מרוצים זה שגנו עברו אל GPL3ף אז הם החליטו לפתוח קומפילר משלהם על בסיס llvm והוא נקרא clang. המצב דומה למה שהיה עם KHTML שהפך אל WebKit, או איך gcc קיבלו תמיכה ב־objc (כן, אפל כתבו את הקוד הזה ושיחררו GPL2). בוא לא נזכיר את CUPS שגם שייך להם (הם אמנם קנו את החברה... לפחות ככה אני זוכר, ייתכן ואני טועה).
כמו כן, בלינוקס, אתה יכול להתקין clang ולהשתמש בו במקום gcc. תחפש במנהל חבילות שלך. בנוסף, אנשים מנסים לקמפל מחדש את כל דביאן עם clang, ראה כאן:
http://sylvestre.ledru.info/blog/2012/02/29/rebuild_of_the_debian_archive_with_clang
http://sylvestre.ledru.info/blog/2014/09/11/rebuild-of-debian-using-clang-3-5
גם הקרנל ניתן לקימפול על ידי clang. ולכן אני מסיק שהטענה שלך פשוט לא נכונה.
|
|
חזרה לתוכן הדיון |
פורסם: 05/09/2015 - 10:46
נושא ההודעה:
|
Anonymous : | elcuco - אם אתה כבר כותב בג'אווה לאנדרואיד, לא יותר פשוט להמיר ל-iOS עם RoboVM?
(לא מכיר לעומק, אבל נשמע שלזה בדיוק נועד) |
כי המערכות שונות מדי. אז ניתן להמיר BYTE CODE משם לכאן, זה לא אומר שהתוכה תעבוד. בדיוק כמו שאני לא יכול לקרא אל RegisterClassEx בלינוקס, או להשתמש ב־API של BSD ... .התוכנה תתקמפל... אבל לא "תתקשר" (מלשון linking).
כמו כן, ה־UI שונה לחלוטין. באנדרויד יש לי סרגל ניוון בצד שניתן להסתיר והוא משוייך ל־Activity הראשי, זה לא מקובל ב־IOS. ב־IOS השתמשתי ב־Navigation Controller שלם בשביל ה־Fragment המדובר. באנדרויד יש לי תפריט (זה עם השלוש נקודות), ב־IOS אין לי את זה. באנדוירד הסרגל ניווט הוא למעלה, ואילו ב־IOS שמתי אותו למטה (ויש לי גרסאות שונות בשביל IPad או IPhone).
אל תשכח שמחזור החיים של ViewController ו־Activity הם שונים מאוד.
ולבסוף - Push Notifications הם שונים לחלוטין באנדרויד ו־IOS.
המערכות שונות מדי - אל תנסה לחפש משותף. רק חברות ענק (גוגל, מיקרוסופט, פייסבוק ועוד) חושבות על קוד אחיד. בתור מפתח בודד, ההמלצה שלי היא תעשה פרוייקטים נפרדים.
|
|
חזרה לתוכן הדיון |
פורסם: 05/09/2015 - 20:38
נושא ההודעה: -
|
מה החשיבות/משמעות שהפיתוח יהיה NATIVE ? ביצועים?
|
|
חזרה לתוכן הדיון |
פורסם: 05/09/2015 - 21:17
נושא ההודעה: Re: -
|
אורח : | מה החשיבות/משמעות שהפיתוח יהיה NATIVE ? ביצועים? |
תלוי מה .
ביצועים ומורכבות:
אין בעיה שיהיה html5 בתוך view של האפליקציה , אבל לדברים מורכבים יותר אז יש הבדל
אבל יש דברים שאתה חייב לעשות native שאתה רוצה לקבל מידע מהמערכת של המכשיר בזמן אמת ואתה לא רוצה "מתווכים" בדרך.
חוץ מזה שיש לך הרבה פחות ספריות פיתוח library שאתה יכול להשתמש בהם כשאתה non-native
לדעתי כדאי לך להיות native אם האפליקציה שלך אמורה בגרסאותיה הבאות להיות יותר מורכבות. שיש לך תמיכה טובה ותיעוד טוב יותר של API אז עדיף.
|
|
חזרה לתוכן הדיון |
פורסם: 07/09/2015 - 21:51
נושא ההודעה:
|
אם יורשה לי לתרום את שני הסנטים שלי, אני אמנם מפתח, אבל לא מפתח מובייל. לפני כשנה למדתי את התחום לצורך הרצאה שהעברתי, בדגש על Xamarin שהוזכר פה. אני קיבלתי תחושה די טובה עם זמרין, במיוחד עם האפשרות לעבוד ישירות בתוך ויז'ואל סטודיו (פחות רלוונטי לפותח השרשור). מה שכן, המחירים שלהם באמת גבוהים, ופחות מתאימים למפתח עצמאי מתחיל. יש להם גרסת Starter בחינם, עם כמה הגבלות טכניות, שהעיקרית ביניהן היא שגודל הקובץ המקומפל לא יעלה על 128kB. רמת המחירים הבאה היא 25$ לחודש, שזה גם לא נורא כל כך.
היתרון של זמרין הוא שמצד אחד הקוד רץ native על המערכת (בעזרת מונו), וגם נראה טבעי על כל מערכת, משום שאת ממשק המשתמש אתה מפתח בנפרד לכל פלטפורמה, כאשר הלוגיקה העסקית משותפת. כיום גם זה לא מדויק, כי הם פיתחו את Xamarin.Forms, שמאפשר לך לפתח גם את הממשק פעם אחת, והמערכת שלהם מתרגמת אותו לכל פלטפורמה. מצד שני, עם design pattern נכון (מומלץ: MVVM), אתה יכול לשתף 80%-90% מהקוד שלך בין הפלטפורמות, וליהנות מהיתרונות של קוד מנוהל - לא צריך להתעסק עם ניהול זיכרון, עם הסינטקס המוזר, בלשון המעטה, של Objective C, וכד'. אתה בהחלט עשוי להזדקק לקריאות ל-API ספציפי של הפלטפורמה, אבל שוב, עם design נכון ושימוש ב-Dependency Injection, אתה יכול להסתיר את ההבדלים האלה מהקוד שלך די בקלות. מה גם שיש הרבה פלאגינים שכבר עושים את התרגום הזה, כך שהקוד שלך לא מודע להבדלים.
אורח למעלה הזכיר את האפשרות (הבלתי חוקית) להתקין OS X על מחשב PC. עקב תנאי הרישיון של אפל, גם אם אתה מפתח על לינוקס עם מונו/זמרין, אתה עדיין חייב מק כדי לקמפל. אפשר לקנות לצורך העניין מחשב מק מיני, שעולה החל מ-500$. זמרין יתחבר אליו דרך הרשת ויעביר אליו את הקוד לקימפול. תוכל גם לשלוט על המק דרך תוכנת שליטה מרחוק, אז לא תצטרך אפילו לקנות לו מסך.
בזמנו סיכמתי את האופציות השונות הקיימות בשוק, על יתרונותיהן וחסרונותיהן, במצגת שהכנתי. אני מקווה שהיא תעזור: http://www.slideshare.net/TsahiAsher/ss-36524536
|
|
חזרה לתוכן הדיון |
פורסם: 09/09/2015 - 13:44
נושא ההודעה: Re: -
|
Anonymous : | אורח : | JAVA זה עולם ומלואו...נראה לי יקח לי לא אם אני יצטרך לעבוד עם השפה כי זה הכי מומלץ לאנדרויד אני יעשה את זה. |
אצטרך*, אעשה*
בהצלחה מעבר להיות גרמר נאצי, אין לי שום ידע מועיל בפיתוח אפליקציות...
אבל לפי מיטב ידיעתי לאנדרויד מפתחים בג'אווה, אז יהיה לך קצת קשה להימנע מג'אווה אם תרצה שהאפליקציה שלך תעבוד בפלטפורמה שלהם.. |
1. זה לא גרמר זה ספלינג.
2. מקוה שהתואר של הבחור לא בעברית
|
|
חזרה לתוכן הדיון |
פורסם: 29/09/2015 - 20:46
נושא ההודעה: -
|
באותו הקשר, יש למישהו נסיון עם RubyMotion?
לפי המאמר הזה:
http://katanacode.com/blog/posts/12-a-review-of-rubymotion-in-2015
נראה לי שווה להשקיע זמן בלימוד rubymotion לפיתוח iOS וגם אנדרויד ..
מה דעתכם?
|
|
חזרה לתוכן הדיון |
פורסם: 30/09/2015 - 00:37
נושא ההודעה:
|
RubyMotion זו סביבת פיתוח סגורה ומסחרית שעובדת רק על מאק, לא נראה לי שתמצא מישהו שהתנסה בה.
מעיון קצר באתר נראה שהשפה אולי משותפת אבל ה-API נשאר ספציפי לכל פלטפורמה ותצטרך ללמוד בנפרד גם את הספריות של גוגל וגם של אפל. אם הכוונה היתה שתוכל לכתוב אפליקציה אחת שתעבוד ב-iOS וגם באנדרויד אז זה לא זה, אני גם בספק שזה יחסוך זמן לימוד כשכל התיעוד והדוגמאות שתמצא יהיו בשפות אחרות שתצטרך להתאמץ ולהבין.
|
|
חזרה לתוכן הדיון |
|