אנדרואיד לעומת iOS: באיזו פלטפורמה הוא הכי טוב עבור מפתחים
Makradar של טכנולוגיה / / December 19, 2019
אנדרואיד לעומת iOS. נושא נצחי עבור קרבות מקוונים, אשר יש כבר בהגינות כל podnadoest. אל תמהרו להעביר את הטקסט של המאמר ומיד לעבור השתפכות דעתו בלבד הנכונה על דבריו. היום נדברנו שוב על איזו מערכת היא טובה יותר, אבל בצורה שונה.
מפתחים - אלה שיוצרים חלק מרכזי כל פלטפורמה, יישומים כלומר. זה האיכות של כלי פיתוח, זה מספק פלטפורמה תלויה התוצאה הסופית. אז ובאילו מערכת עדיף לכתוב? תשובה לשאלה זו מפתח יישומים מנוסה, אשר היה צריך להיות מואר ב- App Store, וב- Google Play.
הבחירה של פלטפורמה - בעיה בסיסית עבור כל פרויקט חדש. אנדרואיד או iOS? בהתחשב בחדשות האחרונות כי אנדרואיד השתלט בהצלחה 80% מהשוק, הבחירה הופכת לקשה עוד יותר. זה לא משנה מה מנהלי ולא אחר גם ידע עם ההיבטים הטכניים של העם לנושא לחשוב על זה. דבר נוסף - היזמים.
מה דעתם? היתרון של זה או אחר פלטפורמה תלוי ישירות על יכולתה לשפר את חייהם.
ועל ידי "הם" אני מתכוון "שלנו." בנוסף לפעילות של המחבר ב TechCrunch, אני מפתח ב HappyFunCorp. יתר על כן, לא כל כך מזמן, אני יצרתי דואט opensorsnyh יישומים דרך-מחמד הפרויקט שלה. זהו יישומים אלה אני משתמש לצורך השוואה.
למען הפרוטוקול: היה לי בעבר לכתוב יישומי אנדרואיד ו- iOS כמה, הוא לשימוש אישי לעבודה. בפרט, כתבתי לקוח נייד עבור צובר החדשות שלך Scanvineשאסף סיפורים פופולריים במיוחד מהמדיה חברתית. קוד המקור של היישום שלי ניתן למצוא באתר Github (אנדרואיד | iOS), והיישומים עצמם זמינים Play Google ו חנות App.
ובכן, בואו הקרב מתחיל.
יום רביעי
אתה עדיין יכול לכתוב קוד בעורך טקסט, ורבים עושים עד כה, אלא במונחים של ביצועים הוא יותר שימושי להשתמש IDE (סביבת פיתוח משולבת - IDE).
במקרה של אפל, יש לנו Xcode, ועבודה בסביבה זו - תענוג. היא גמישה, מהירה, חזקה ומסוגלת לעזור, בלי פולשניות מדי. והיא משתפרת, למרות האמצעים הקשים פרנואיד נלקחו על ידי אפל כדי לשמור על שליטה מלאה על יישומי iOS ומכשירים. הבאגים פועלים בצורה חלקה, ו סימולציה - מהיר תגובה.
מה לגבי אנדרואיד? אה, אנדרואיד. כרגע, סביבת הפיתוח בפועל תחת הוא אקליפס, קומץ של אנדרואיד אישית תוספות, וזה רע מגונה. איטי, מסורבל, לא הגיוני, לעתים קרובות בכנות מובן, שנועד קשה, מורכב מדי - בלגן אמיתי. הבאגים שלה הוא כל כך לא נוח כי רוב הזמן אני מבלה ב התעסקות עם יומנים, ואילו עם Xcode בחזקתי באגים כלי-צייד אמיתי. אל תשכחו על אמולטור אנדרואיד, אשר ראשון לוקח כמה דקות כדי להוריד, ואז הוא לא הצליח להתחבר ADB.
כדי להיות הוגן לומר כי גוגל הוא מודע לבעיה זו והם עובדים על חדשים Android Studio IDE:
נכון לעכשיו, Android Studio זמין כמו תצוגה מקדימה מוקדם. פונקציות מסוימות לא להקים, או אינן מיושמות, אשר עלול לגרום לטעויות. אם השימוש במוצר הגמור גורם אי הנוחות שלך, אז אתה יכול להוריד ולהמשיך להשתמש Bundle ADT (תוסף Eclipse עם ADT).
נחמד לראות שהם עובדים על הבעיה, אך עדיין מפתיע - אחרי 4 וחצי שנים לאחר רכישת שלי ראשון אנדרואיד דמוי בלגן עדיין גבול השלמות, אשר הצליח להשיג סביבת פיתוח אנדרואיד.
כאן פועם iOS, ללא תנאי.
קביעת תצורה
תחת מעטה של Xcode ו- Objective-C מוסתרים זוועות לאבקראפט מהתקופה של שנות השבעים תכנות. צוחקים בדיוק, אני צוחק... אבל עדיין. מאקרו, וקבצי כותרת, פרויקטים, מטרות, ערכה והרכבת תצורה, ומבהילה, רשימה מפחידה של פרמטרי הרכבה. ועוד תגליות מדהימות בסגנון של "אוי, קוד הצד השלישי שלך אינו תומך ARC? כל שעליך לעשות הוא להוסיף את -fno-objc-קשת דגל ». בדיוק? לא!
בשנת אנדרואיד יש לך קובץ מניפסט, ו Eclipse הם בדרך כלל לחלוטין בונה מחדש את היישום בכל פעם שאתה שומר קובץ. ברצוני בהירות גדולה יותר כאשר אתה, למשל, מתקבל הודעת שגיאה, בשל העובדה כי כראוי להגדיר את הכלל, אבל זה פגם מינורי. קביעת תצורה של יישום אנדרואיד היא פשוטה ואלגנטית.
כאן פועם אנדרואיד.
עיצוב ממשק
נראה כי אפל היא בהחלט לצאת מנצח. עם המעצב שלהם אתה יכול בקלות ובמהירות לבנות ממשק מחפש פשוט נחמד. הבעיה היא כי כבר עבדתי עם המעצב, פחות אהבתי את זה. זהו עוד פעם כאשר אתה פותח את המורכבות תצורה - כלי אידיאלי ליצירת דברים פשוטים, אבל עם התפתחות דברים פשוטים Application להיות מסובך פתאום, ואני ממש לא אוהב במסכים אלה לוחות סיפור, אשר אפל הוסיפה כ לפני שנה.
ב Android, התאוריה מסופקת כלים להדמיה להשוות, אבל בפועל אתה כותב קבצי XMLהמכיל הוראות ציור כי בכל מוביל מזל מסוים לתצוגה נכונה של הטופס על כל מגוון מסכי פורמטים של מכשירי אנדרואיד. אפל עוברת באותה צורה, ואת שלהם פריסה אוטומטית בבירור חדד עבור מסכי וריאציות הרחבה עתידית על מכשירי ה- iOS.
במקביל, אנדרואיד נותן למפתחים ערכות סמליםבעוד מפתחי iOS נאלצים לפנות שירותי צד שלישיאו לצייר סמלים משלך.
בסיבוב הזה הזוכה לבחור יותר קשה, אבל אני אתן עדיפות iOS משתי סיבות. ראשית, זה עדיין הרבה יותר קל - פשוט גודל מסך 3 (כולל iPad) ו 2 יחס ממדים פורמט. מגוון אנדרואיד בהקשר זה מוסיף למורכבות. הנקודה השנייה היא הפנייה של ברירת מחדל של אלמנטים ויזואליים (pop-up תפריטים, הודעות, וכן הלאה). ב- iOS הכל נראה הרבה יותר אטרקטיבי.
כאן פועם iOS.
שפה
יישומי אנדרואיד כתובים ב- Java, iOS - על Objective-C. יש יוצאים מן הכלל כמו Xamarinאבל ברוב המקרים חלוקים כזו היא תקפה.
למדתי לכתוב ב- Java, ובהתחלה לא חשבתי במיוחד על Objective-C, בעיקר בשל bulkiness שלה.
מחרוזת כמו:
מחרוזת s2 = s1.replace ( "abc", "XYZ");
פונה אליו:
NSString * s2 = [S1 stringByReplacingOccurrencesOfString: @ "ABC" withString: @ "XYZ"];
אבל בתהליך לגלות את השפה מאוד אהבתי. הוא טוב יותר מאשר מנקה Java.
במקרה זה, גם, ישנם יתרונות Java. לדוגמה, שגיאות לאיתור מקור פשוטה. בשנים האחרונות, אנדרואיד כבר מאוד עוד יתרון משמעותי במונחים של איסוף פסולת, כי הוא, טיהור אוטומטית של זיכרון החפץ מיותר, אבל עכשיו iOS יודע את אותו דבר, והוא למעשה יתרון עלו בתוהו. בהתחשב בעובדה כי הניצחון האחרון הולך iOS כאן.
כאן פועם iOS.
API
בשנת אנדרואיד ו- iOS יש ספרייה ענקית של התוכנה זמינה למפתחים, ובדרך כלל, הם דומים למדי: API עבור הפעלת פונקציות טלפון ותקשורת, ה- API עבור גישה לרשת, בארסנל של הצופים, כולל תצוגת האתר עוצמה - כמעט שיבוט של מלא דפדפן.
רוב העבודה נעשה עם הבקרים, וכללי iOS ViewController הוא המקביל של פעילות אנדרואיד.
אילו באמת לא צריך אנדרואיד, משום שהיא מהווה מסגרת נתוני Core מלאה אנלוגית. בסך הכל, המערכת היא מנקה ועוצב טוב יותר. לדוגמה, רק להשוות אלהשני בכיתה ב iOS, אשר מבצעת את רוב העבודה ביישום, עם אלהשלושהשווה כיתות ב Android. בסופו של דבר, אני מעדיף בהרבה לעבודה עם מערכת ההפעלה iOS CollectionViewControllerמאשר עם אנדרואיד ListAdapter.
מדד חשוב נוסף: מספר שורות קוד. הגרסה שלי הבקשה ששתי הפלטפורמות הן כמעט זהה תכונות ופונקציות, אבל ב- iOS ליישם אותם זה לקח 1596 שורות קוד שלי, כולל קבצים בכותרת, וכדי ליצור את הגרסה אנדרואיד עם אותן הפונקציות הנדרשות 2109 שורות. ההבדל הוא 32%.
כאן פועם iOS.
אינטרנט
כיום, הרוב המכריע של יישומים יותר מדריכים לאינטרנט, ולא תוכניות עצמאיות. זוהי נקודה חשובה מאוד, ואת זה צריך להיחשב בנפרד. בארסנל של שניהם יש מערכות מספר הכלים ו- API עבור ליישום שיתוף פעולה עם הרשת. כמו כן הוא הפלטפורמות ליישם כמעט דפדפן מניין, אשר יכולה להיות מובנה בתוך האפליקציה שתרצה לכל מקום שאתה הולך.
החיבורים חייבים לרוץ ברקע ואינו מפריעים עם היישום עצמו. כדי ליישם multithreading ב אנדרואיד בשימוש AsyncTask. זה עובד טוב מאוד ומאפשר קל לקבועאם המשתמש באינטרנט כרגע. iOS מציעה גם יכולה דומה, אך הן מיושמות ברמה יחסית נמוכה ואינן עונות על הצרכים של מפתחים.
עם זאת, יש הרבה ספריות צד שלישי, קוד פתוח, והם עושים את החיים הרבה יותר קל. השתמשתי AFNetworking, וזה עובד בדיוק כמו שזה נקרא בפרסומת.
כאן יכה את ברירת המחדל אנדרואיד ו- iOS באמצעות ספריות צד שלישי.
שיתוף
כמה קל לך לשתף כל יישום מסוים בפייסבוק, טוויטר, Evernote, ושירותים אחרים? נראה כי זה יהיה הסיבוב הראשון שבו אנדרואיד ינצח 100 בנוקאאוט%: יש לו מערכת חזקה של אינטראקציה בין היישומים בשם כוונות, ובאופן כללי, אנדרואיד הוא הרבה יותר נאמן הבקשה להעברת נתונים בין יישומים.
באופן כללי, אפל דביקה מתחרה משמעותית הזדמנויות sharinga. אתה לא יכול לקחת את המילה שלי, לבדוק את קוד הפונקציה "שתף את הסיפור" ב Scanvine על אנדרואיד ו iOS. הסיבה היחידה קוד iOS יותר - נוכחותם בה של מעקב גמיש יותר של Google Analytics, ולא על אנדרואיד.
ואז לצייר.
פיצול
אז אני לא צריך לומר הרבה. עם זאת, גוגל מנסה שימוש אסטרטגית איחוי מעניינתכך שתוך זמן קצר והפריט יהיה צריך לבחון שוב.
כאן פועם iOS.
פרסום הבקשה
פרסום של אפליקציות אנדרואיד הוא פשוט מאוד. כלי ב Eclipse מאפשר לך לבנות את יישום במהירות, ואת בידיים שלך כבר יש קובץ APK. שלח אותו להודעת דוא"ל, לפרסם באינטרנט, או להוריד מ- Google Play, מה שהופך אותו לזמין פני (כמעט) בעולם רק שעה אחת. אזי אפשר לעקוב אחר נתונים סטטיסטי תקנות ההתרסקות-מדווחת עד קו מסוים של קוד, עקב אשר היישום מתרסק. במידת הצורך, ניתן לעדכן לרדד מיידי.
פרסום ב- App Store - זה סיוט. הידיד שלי מייעץ להקצות לפיתוח השנה לפחות יום על המלחמה עם תעודות ופרופילי הפצה. לא משנה כמה פעמים עשית את זה לפני, וכמה קל זה מנסה להפוך את התהליך של הגרסה הבאה של Xcode - אתה עדיין יהיה הרבה בעיות. מטרת יישום הופכת להיות אפילו יותר של בעיה, אלא אם כן אתה משתמש TestFlight. תוסיפו לזה את Connect iTunes, וזה לא הולך לשום השוואה עם מפתחי Google Play Console.
כאן פועם אנדרואיד, ללא תנאי.
הזוכה
זה הופך iOS, יתר על כן עם מרווח מסוים. יש לנו את היתרונות של אנדרואיד, אך באופן כללי כדי לכתוב יישום טוב עבור iOS הוא עדיין הרבה יותר קל מאשר תחת אנדרואיד. תוסיף לזה את העובדה משתמשי iOS יותר פירעון, ואתה מקבל תשובה לשאלה איזו פלטפורמה צריכה להיות בראש סדר עדיפויות של סטארט-אפ. כנראה, הפער יצטמצם לאחר פרסום סטודיו אנדרואיד, ובכך מאפשר לפתור כמה בעיות... אבל לא כל.
אגב, הטלפון הראשי שלי - Nexus 4, ואני שמח מאוד.
(באמצעות)