اقتراحات لإدخال تطوير الهاتف المحمول - iPhone SDK ، Android SDK ، Mono Touch أو Titanium؟

StackOverflow https://stackoverflow.com/questions/2653122

سؤال

أنا أدخل تطوير الهاتف المحمول. لقد كنت أعمل في المقام الأول في .NET منذ أن خرج 1.0 في بيتا. قبل ذلك ، كنت في الغالب رجل C ++ و Delphi وما زلت أشباش في C ++ من وقت لآخر. أقوم بتطبيقات الويب إلى حد ما ، لذا فأنا يتقن بشكل معقول مع JavaScript و JQuery و CSS. لقد قمت أيضًا ببعض طلبات Java. لقد بدأت برمجة الويب مع CGI وأعيش في الغالب في عالم ASP.NET MVC هذه الأيام.

أحاول تحديد النظام الأساسي/نظام التشغيل والأداة للاختيار. أنا مهتم بحجم السوق المتاح لتطبيقي وكذلك تسويق المهارات التي سألتقطها.

التطبيقات التي أفكر فيها ستعمل على كل من الهواتف والوسادات. ستلعب بعض جوانب ما يدور في ذهني بشكل أفضل على الشاشات الأكبر التي ستكون متوفرة على منصات.

فيما يلي الخيارات التي أفكر فيها:

  1. Apple iPhone/iPad باستخدام Apple SDK النقي (الهدف-C)
  2. Apple iPhone/iPad باستخدام Mono Touch (C#)
  3. Android باستخدام Pure Android SDK (Java)
  4. منصات متعددة تستخدم شيئًا مثل التيتانيوم لإنشاء تطبيقات أصلية من تقنيات الويب (HTML و CSS و JavaScript)
  5. منصات متعددة باستخدام تطبيقات الويب HTML5 التي تعمل في المتصفح (HTML و CSS و JavaScript).

الخيار الذي سوف تختار؟ هل لديك اقتراح مختلف؟ ما هي إيجابيات وسلبيات؟

هل كانت مفيدة؟

المحلول

أعتقد أن لديك تغطية جميع الخيارات تقريبًا ، اسمحوا لي أن أشارك رأيي في كل منهما.

  1. يجدر أن تبدأ بأولوية قصوى حيث أن الطنانة الآن أيام.
  2. وفقًا لـ iPhone OS 4 Developers ، القسم 3.3.1 ، ستسمح Apple فقط بتطبيقات تم تطويرها في البرنامج النصي C/C ++ و Java. لن أقترح عليك أن تضع جهودك في C#.
  3. إنها قيمة ، وإذا كان لديك قبضة جيدة على جافا الأساسية ، فيمكنك أن تكون منتجًا في غضون أيام قليلة. في هذه المرحلة ، قد لا يكون لدى Android حصتها في السوق ولكن رأيي الشخصي هو Android مستقبلي.
  4. تأثير النقطتي 2 على التيتانيوم أيضًا ولكن وفقًا لأحدث تغريدة ، لديهم موافقة من Apple. لست على علم بالواقع الأرضي.
  5. نفس النقطة رقم 2

إنه جيد ، إذا بدأت التركيز على إطار برمجة iPhone و Android في هذه المرحلة. ومع ذلك ، إذا كان لديك وقت يمكنك الاستثمار على BlackBerry Rim أيضًا ، حيث لديك خلفية Java.

مرحبا بكم في الهاتف الذكي ديف. قون

شكرًا،

راجنيكانت

نصائح أخرى

إذا كنت تستهدف iPhone/iPad ، فإن التغييرات في اتفاقية iPhone SDK التي يتم إدخالها مع iPhone OS 4.0 وحالة SDK الجديدة التي يُسمح لك فقط بتقديم التطبيقات إلى متجر التطبيقات المكتوبة في C/ C ++/Objective-C ، أو JavaScript إذا كان WebApp.

تحتاج إلى أخذ هذا في الاعتبار ، لأن طبقات التوافق ، والمترجمين المتقاطعين ، جميعهم يبدو أنهم سيحظرون بموجب الاتفاقية الجديدة ، والتي تشمل أشياء مثل Monotouch ، Adobe's Flash CS5 ، PhoneGap ، إلخ.

أطر عمل منصة متقاطعة يجب أن تنظر إليها:

PhoneGap QuickConnet

قد تكون أفضل حالًا التمسك بتطبيقات الويب إذا كنت تتطلع إلى جعلها منصة ؛ الهاتف الذكي الرئيسي OSS - OPHONE OS و Android و WebOS ، مع نظام Blackberry OS الذي يشاع أنه يلي - يستخدم كل شيء عارض WebKit ، وسيكون لديك وقت أسهل في جعل الأشياء التي لا تشعر بالغريبة على كل منصة أكثر مما لو كنت "إعادة استخدام أحد الأطر لكتابة رمز منصات منصة ظاهريًا. هذه هي الحالة بشكل خاص عندما تأخذ في الاعتبار تغييرات Apple الأخيرة على اتفاقية ترخيص SDK الخاصة بها: قد لا تكون أدوات مثل Monotouch و PhoneGap قابلة للاستخدام في الحصول على الأشياء في متجر التطبيقات الخاصة بهم.

أردت فقط تغطية نقطة إعادة. Android v iPhone Development. اسمحوا لي أن أكون مقدمًا وأقول إنني لم أتطور لنظام Android ولكن لدي على iPhone. ومع ذلك ، فإننا نمتلك هاتفًا قائمًا على Android و iPhone في منزلنا ، حتى أتمكن من التحدث كمستخدم لكليهما.

بقدر ما تذهب التطبيقات ، أجد تطبيق تطبيقات iPhone أسهل وممتعة (للمستخدم النهائي). الكثير من تطبيقات Android كريهة حقًا. هذا لا يعني أن تطبيقات iPhone ليست كذلك ، لكن واجهة iPhone الطبيعية تدعمهم حقًا إلى حد ما. واجهة Android ليست مميزة على الإطلاق. كمستخدم نهائي ، أفضل جهاز iPhone ويجب أن يكون هذا مهمًا لمطور يحاول اختيار منصة.

في الآونة الأخيرة ، كان هناك الكثير من Flak للذهاب نحو Apple لتغيير TOS ، والمطورين يقولون إنهم سينتقلون إلى Android. أقول - التمسك بجهاز iPhone لأن iPad يخلق ضجة وهي فرصة فريدة لك. باعتباري شخصًا استخدم Titanium و Objective-C لإنشاء تطبيقات ، أقترح أن تلتزم بمجموعة الأدوات الأصلية. سوف يستغرق الأمر وقتًا أطول للتعلم ، لكنك ستتعلم أنماط التصميم الصحيحة بدلاً من التيتانيوم الذي لا يعلمك حتى أنماط JS الجيدة أن تكون صادقًا (ليس كثيرًا MVC هناك).

هناك الكثير من الأشياء التي يجب مراعاتها. أولاً عليك أن تسأل نفسك سؤالين:

  1. ما هي الأنظمة الأساسية ونوع المستخدمين الذين تريد تغطيته.
  2. هل تحتاج إلى التواصل مع الهاتف (GPS ، SMS وما إلى ذلك ...) أو تحتاج فقط إلى بعض معالجة البيانات الأساسية ووجهات النظر.

إذا كنت بحاجة إلى الوصول إلى ميزات الهاتف ، فعليك تطوير تطبيق فعلي يعمل على الهاتف. الرهان الأكثر أمانًا هنا هو جافا لأنه يعمل على جميع الهواتف تقريبًا. ولكن حتى Java خارج أدوات منصة Cross الموحدة في الآونة الأخيرة. وضعت Apple قيودًا على iPhone و iPad و MS أيضًا غير واضحة بالنسبة لي مع أحدث Windows Phone 7.

الآن إذا كنت بحاجة فقط إلى عرض البيانات ومعالجتها ، فقد تكون HTML طريقة صالحة. إنها تفيد كونها منصة متقاطعة ولن تواجه جميع الهواتف الأحدث مشكلة في عرض HTML الأساسي. JavaScript أو أشكال أكثر تعقيدًا لا تزال مشكوك فيها. لا يزال بالنسبة لي هو المستقبل للتطبيقات الموجهة للبيانات حيث أن دعم الويب سيتحسن فقط ، بما في ذلك Javascipt. أما بالنسبة لـ HTML5 ، فأنا أقول أنسى الأمر. سيستغرق الأمر بعض الوقت للانتشار على أجهزة الكمبيوتر المكتبية وعلى الهواتف التي يستغرق الأمر سنوات للوصول إلى هناك بالتأكيد.

لتطوير التطبيقات الأصلية لمجموعة كبيرة من الهواتف هو chalange إلى حد كبير ويستغرق الكثير من العمل وربما فريق كبير. لذلك مرة أخرى يعتمد الأمر على المهمة التي عليك القيام بها. أيضًا إذا كنت تقوم بتطبيقات Bussines عالية الطرف ، فيمكنك فقط استهداف Blacberry و Windows Mobile وشيء آخر. لا أعرف مدى انتشار iPhone و Android في عالم Bussines. أنا لا أظهر كثيرا.

هذه ستكون الإرشادات الخاصة بي. من الواضح إذا استطعت ، التمسك بتطبيقات الويب.

مستقل للمطور الجديد الزراعي ، التي لا تزال آثارها غير معروفة (على سبيل المثال ، افترض الناس أن PhoneGap و AppCellerator قد ماتوا وهو ليست الحقيبه، ليست القضيه) ؛ لا تزال أفضل حالًا في ذهني تستهدف Objective-C على منصة iPhone OS.

الشيء هو أن هناك الكثير من الأطر القوية للغاية في الكاكاو. باستخدام Objective-C ، تتعلم أيضًا التفكير مثل مصممي الإطار ، مما يعني أنه سيكون لديك وقت أسهل بكثير في فهم الأنماط المستخدمة ، وأيضًا مع مرور الوقت تعلم كيفية توقع القدرات والأسماء في إطار العمل ، لديك فهم أوضح أكثر من المعايير الأسلوبية قيد الاستخدام.

أنت أيضًا مستعد على الفور للاستفادة من القدرات الجديدة داخل اللغة والأطر (مثل الكتل أو المهام المتعددة) بدلاً من انتظار الكاتب (الكاتب) الإطاري لمعرفة كيفية تقديم بعض الميزات الجديدة لك. بالنظر إلى تسريع ميزات المنصة ، قد يكون ذلك ميزة كبيرة.

أيضًا ، على المستوى الشخصي - أنت ببساطة أفضل حالًا كمبرمجة ، كلما زادت اللغات التي تفهمها بعمق ، وكلما دفعت خارج منطقة الراحة الخاصة بك لتعلم شيء جديد حقًا. يساعد هذا التوسع عقلك بطرق أخرى ويجعلك مفكراً أكثر مرونة.

ليس لدي أي شيء ضد أولئك الذين يستخدمون لغات أخرى مثل Mono على المنصة ، وأعتقد فقط أنه من المنطقي استخدام الأدوات واللغات الأساسية التي تستهدفها. إذا كنت سأنتقل إلى تطوير Android ، فسوف أتحول إلى كل جافا في نبضات القلب بدلاً من البحث عن جسر موضوعي.

إذا قررت الذهاب إلى مسار Objective-C ، فكر في عدم أخذ نهب في Monotouch ، كأداة تعليمية ، بسبب كل الخبرة التي لديك مع C#.

أن تكون قادرًا على تعلم الإطار أولاً ، ثم الانتقال إلى اللغة يبسط التعلم كثيرًا. مع Monotouch ، ستتمكن من تعلم جميع أطر عمل iPhone التي ستحتاج إلى تعلمها (Uikit ، إلخ) باللغة التي تعرفها بالفعل ، وكذلك تعتاد على أدوات مثل Builder وبعض Xcode.

التقاط OBJ-C بعد أن تعرف بالفعل أن الإطار جيدًا يجعل الأمور أسهل كثيرًا. أنا أفعل ذلك الآن. واعتمادًا على الجدول الزمني والقمر ومزاج ستيف جوبز ، قد ينتهي بك الأمر إلى أن تنتهي أبدًا من الاضطرار إلى الذهاب إلى OBJ-C على الإطلاق .. :)

في أحد تعليقاتك ، تذكر أنك تملك droid ، وتحبها ، وتفضل نهج Google. في سؤالك ، فأنت تذكر أنك مطور Java - بالطبع ، يمكنك دائمًا أن تتعلم Objective -C كـ Java dev كما فعلت ، لكنني مرة أخرى أنا أحب iPhone تمامًا. يبدو أنك في حالة حب تمامًا مع Android ، لذلك أقول تطبيق شغفك على ذلك وصنع بعض تطبيقات Android. لا أعتقد أنك ستقوم بعمل جيد على iPhone ، خاصةً دون فهم أو شغف كبير للمنصة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top