Monotouch أو التيتانيوم لتطوير التطبيق السريع على iPhone؟

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

سؤال

كمطور .NET أحلم دائما بإمكانية تطوير تطبيقات مهاراتي الحالية (C #) للحصول على iPhone.

يتطلب كلا البرنامجين Mac و iPhone SDK المثبتة.

كان Appcelerator Titanium أول تطبيق حاولته، ويستند إلى عرض بعض API الأصليين iPhone إلى JavaScript بحيث يمكن استدعاؤه باستخدام تلك اللغة.

يبدأ Monotouch عند 399 دولارا للقدرة على الانتشار على iPhone وليس على محاكاة iPhone بينما التيتانيوم مجاني.

لدى Monotouch (MonoDevelop) IDE مفقود حاليا في التيتانيوم (ولكن يمكنك استخدام أي محرر مثل TextMate، Aptana ...)

أعتقد أن كل من البرنامج تولد في نهاية التطبيق الأصلي مسبقا (أيضا إذا لم أكن متأكدا من حجم التطبيق النهائي على iPhone كما أعتقد أن مكالمات .NET Framework هي Prelilnked في وقت التجميع في Monotouch).

أنا لست متأكدا من التغطية الكاملة لجميع API وميزات iPhone.

يحتوي Titanium أيضا على ميزة تمكين تطوير تطبيق Android ولكن كمطور AC # ما زلت أجد تجربة Monotouch أكثر مثل Visual Studio One.

أي واحد سوف تختار وما هي تجاربك على monotouch والتيتانيوم؟

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

المحلول

مثل أي ما - أو منصة أو لغة أو لغة أو أي من السؤال، يجب أن ينزل حقا إلى ما أنت يريد.

ننسى كل ما إذا كنت ترغب في تطوير نصيحة من النظام الأساسي إذا كنت تريد من النظام الأساسي - من النظام الأساسي - إلخ. إذا كنت مهتما بتعلم الهدف - C، XCode، وأعراض Apple Bits، ثم Goferit. فعلت. لقد كان متعة، ولكن لي كانت الفائدة في تطوير تطبيقات iPhone. تعلم لغة جديدة وإطار وإطار IDE كانت مجرد مكافأة (أحب هذه الأشياء). كان ضروريا أيضا عندما بدأت.

لقد كنت أعمل مع Monotouch منذ إطلاق سراحها، وأنا أحب ذلك. أنا تفضل C # إلى الهدف - ج، وأحب الوصول إلى مجموعة فرعية من إطار .NET (أحادي) التي توفرها Monotouch. هناك بعض الأشياء التي هي ببساطة أسهل في القيام بها مع .NET من الكاكاو (معالجة السلسلة، معالجة التاريخ، اي شى XML، وما إلى ذلك).

كما أنني لا أحتاج إلى التعامل مع العد المرجعي بعد الآن. لقد أفسدت منذ سنوات من عدم وجود الموارد في هذا المستوى. لا أمانع الحاجة إلى التنظيف بعد نفسي، لكنني لا أريد أن أفعل شيئا يدويا أن كل منصة ديف حديثة أخرى استخدمتها بالنسبة لي تلقائيا. بالإضافة إلى ذلك، حتى بالنسبة للهدف المحنك - C ديفس، العد المرجعي ليس بدون عنان. قم بالتمرير من خلال إخراج وحدة التحكم في OS X في وقت ما لمعرفة عدد تطبيقات التطبيقات بسبب مشكلات إدارة الذاكرة (وأنا أعلم - يمكن أن يحدث هذا مع أي تطبيق بشكل أساسي، ولكن من الأسهل بكثير اتخاذ الأخطاء التي تؤدي إلى هذا الموقف عند إرجاعها تم تدمير الاهتمام الذي تم تدمير اهتمامه لمدة اثني عشر ساعة من هذا إذا كان هذا وإذا كان ذلك وإلا وإلا وإلا وبلا بلاه بلاه).

ما زلت أستخدم الهدف - C / XCode - لقد تعلمت حقا مثل أدوات Apple. أشعر بصدق أنهم محرجون وأربان قليلا، ولكن لا يزال متعة.

ولكن ... ثم أحب هذا أيضا:

public string SomeString { get; set; }

أن تفعل الشيء نفسه مع الهدف-ج (على iPhone، على أي حال) يتطلب منك أن تعلن متغير محلي لدعم الخاصية، اكتب إعلان الخاصية، ثم استخدم توجيه "توليف" لإنشاء الخاصية التي تم إنشاؤها لك (اعتمادا فيما يتعلق بسمات العقارات التي تحددها، قد يكون لديك خاصية تلتف على Getters والتعليقات التي تعتني بالعد المرجعي لك - بشكل عام، هذا يكون التوقف الزمني، ولكن طريقة C # هي الفائز الواضح هنا).

هذا مثال واحد فقط حول كيفية جعل Monotouch أسهل حياتك، خاصة إذا كنت معتادا على .NET / Java / Python / لغات أخرى لا تتطلب أن تحصل على أصابعك القذرة مع Memory-Mangement (ما لم تكن تريد) وبعد

فيما يتعلق iPhone-Ness بالقلق، وبصرف النظر عن تشغيل جزء من .NET إلى عالم iPhone، فإن خرائط مساحة الاسم Monotouch ل Cocoatouch، لذلك إذا كنت مشوشا، فهل إذا كنت مشوشا، فقل، فإنه لا يمكنك أن تقفز فقط إلى مستندات Apple على UiviewController. Monotouch .Net-Izes Cocatouch، ولكنه قريب بما يكفي أنه من غير المرجح أن تضغط على جدار (من شأنه أن تضغط أيضا إذا كنت تستخدم Xcode / الهدف - ج). انها بقعة.

التيتانيوم مختلف. لأنهم يحاولون (محاولة) لإنشاء طبقة تجريدية تتيح لك كتابة التطبيق نفسه لعدة منصات متعددة، ستتعامل مع العيوب المعتادة: واجهات برمجة تطبيقات مختلفة تماما، وفقدان المرونة (يمكن أن يقال الشيء نفسه عن Monotouch، ولكن ليس عن بعد درجة)، وبالتالي الاضطرار إلى تعلم منصة جديدة بأكملها (وهذا ما تحاول تجنبه من خلال التجول حول Xcode / الهدف - C / Cocoatouch، أليس كذلك؟).

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

بغض النظر عن أدوات DEV التي تختارها، أنت إرادة ينتهي الحاجة إلى تعلم شيء عن cocatouch. سواء كان Xcode / الهدف - C أو Monotouch أو التيتانيوم، شيئا ما سوف ينكسر أو تذهب جميعا معك، وأنت في النهاية يجب أن تشير إلى وثائق Cocatouch.

إذا كنت أعطي حديثا على تطوير iPhone (الذي لدي، ولن أفعله مرة أخرى)، وإذا كان مناقشة بدائل أدوات ديف أبل (التي سأفعلها)، فأنا ما زلت أشجع بقوة على العمل على الأقل من خلال بعض تطبيقات iPhone الأساسية باستخدام الأدوات الأصلية. ستجعلك مطورا أفضل للمنارة - الفترة. ويمكنك استخدام مرحلة البداية هذه لتحديد ما إذا كنت حتى يريد لاستخدام أي شيء آخر غير البتات المجانية التي توفرها Apple. لا يمكنك. لقد كنت أستخدم Monotouch لأنه يرضيني - ليس لأنه ضروري.

لذلك، لتلخيص عدد قليل من المعايير الأساسية:

  • التفضيل (اللغة / الأطر)

  • الأجهزة (هل تهتم بمنصات غير iPhone أو تعتقد أنك قد في يوم من الأيام؟)

  • الراحة (إذا كنت تحب وتعرف C # أفضل بكثير من الهدف - ج، لا يوجد سبب لعدم الذهاب مع Monotouch)

ولا تستمع إلى Naysayers إلا إذا كانوا في الواقع تستخدم التكنولوجيا التي يتحدثون عنها. على سبيل المثال، لقد قرأت عن التيتانيوم، لكنني لا أختبره - أنا أعرف أنني لا أريد أن أفعل أي شيء معه بسبب تفضيلاتي. هذا لا يجعله "سيئا" - مجرد شيء لا أريده في حياتي.

يمكن أن يكون الحشد الهدف - C نشطاء بشكل مثير للإعجاب. في حين أن هناك الكثير من دوانة متفتح في ذلك، فهناك كذلك، لذلك، وبالتالي كثير منهم يعتقدون الهدف - C و Cocoa و blah blah blah هي آخر أدوات ديف devkind تحتاج إلى أي وقت مضى.

تجاهلهم.

إذا كنت قلقا بشأن الدعم، فأي بعض الأشياء التي يجب مراعاتها:

  • من المرجح أن تظل Apple الحالية، لأنها تجعل هذه غير المرغوب فيه.

  • من المرجح أن يظل مونوتووتش الحالي - قامت اللمحات أحادية بعمل مذهل مواكبة Microsoft، ولا أرى أي سبب لماذا لن يفعلوا نفس الشيء مع Apple. أنا في مهب ما يفعلونه. وعلى الرغم من الافراج عن مونوتوتيش، مثل، قبل خمس دقائق، فإن لديهم بالفعل تحديثا لأشياء iPhone 3.1. إنهم جادون في هذا الأمر، وأعتقد أنهم سحر. انهم الجان كيبلر من عالم ديف. يجلسون في طبقاتهم السرية وكرنك خارج الأشياء (حسنا - ليس الجميع) يحبون ذلك، لكن لا أحد سيحاول القيام به.

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

سأخرج الآن.

الذهاب مع ما تريد. Monotouch هو بديل "آمن" لأشياء Apple. أخشى أن تتخشى التيتانيوم نفس الشيء القديم OUPS - هذا الطريق الفائق من النظام الأساسي - فائقة المستوى - من المنصات - الخيارات غير واقعية لا يمتلك الكثير من التقنيات الأخرى. ولكن إذا كنت تفعل شيئا بسيطا، فلا يوجد أي ضرر في إعطائها بالرصاص، وخاصة بالنظر إلى أنه مجاني خلال فترة بيتا.

imight.

إيقاف حقا الآن ... آمل أن يكون هذا يساعد.

نصائح أخرى

هذه هي طرق ممتعة ومثيرة للاهتمام يمكنك بناء تطبيقات iPhone. ولكن، بالنسبة لتطوير iPhone الأصلي حقا، فإن أفضل رهان الخاص بك هو SDK iPhone المجاني والإكسسوود.

أن نكون صادقين، أصعب الأشياء التي يجب تعلمها هي قدرات الأطر أنفسهم، وليس بناء جملة اللغة. ولكن هذه مشكلة يجب عليك معالجة كلتا الحالتين لأن هذه المعدات / اللغات لا تزال تتطلب منك فهم بعض اتفاقيات الكاكاو (ولمس الكاكاو).

أنا لا أقول هذا كناوب كاكاو / موضوعي-C، ولكن إذا كنت تعرف C (أي dev # dev تفعل)، فلا يوجد أي حاجز للدخول.

بالإضافة إلى ذلك، سيكون لديك إمكانية الوصول إلى أطنان من البرامج التعليمية وعينة من التعليمات البرمجية التي لن تكون متاحة فقط لمترجمات / معرفات النفاثة / اللغات.

نادرا ما يكون تعلم لغة برمجة أخرى أمرا سيئا، وكبرمجة من ذوي الخبرة، لن يكون وقت عملك كبيرا كما تفكر فيه.

لقد قمت بإنشاء مشروع مفتوح المصدر http://propertycross.com. التي تساعد المطورين على اختيار إطار متنقل عبر منصة من خلال إظهار نفس التطبيق الذي تم تنفيذه مع Sencha و Titanium و Xamarin وأكثر من ذلك. يتيح لك هذا المشروع مقارنة مجموعة واسعة من الأطر من حيث تجربة المستخدم النهائي أو التعليمات البرمجية أو IDE وجرابة المطور وغيرها ...

أنا كيندا مثل فكرة توفير وسائل الحصول بسرعة على قبضة على ديف iPhone مع أشخاص تكنو يعرفون بالفعل. أنا شخصيا، كمطور Java، استخدم ISVENRUM (http://www.flexycore.com.). كما تأتي مع IDE، Debugger and Sature، مما يجعلها مريحة حقا للتطوير مع أنها فوائد كل قوة Eclipse Java Plugin. يعتمد هذا على جافا، وهذا يسمح أيضا بإعادة استخدام التعليمات البرمجية الموجودة بالفعل بسهولة من تطبيقات Java الأخرى، والتي يمكن أن تكون مفيدة حقا لتوفير جافا موجودة على جميع المنصات تقريبا (سطح المكتب والهاتف المحمول على حد سواء) ما عدا iPhone. بالإضافة إلى أنه مجاني للمشاريع المصدر المفتوحة.

أفضل النظر في هذا النوع من الحلول، لأنني لا أحب فكرة العودة إلى التطور في emacs :).

أعلم أن هذا موضوع قديم، ولكن في مصلحة البقاء في الإقامة الحالية، فإنه يبدو وكأنه Monotouch وغيرها من الأطر عبر المنصات سوف يحظر في SDK 4.0. وبعد لديك الرهان "الآمن" الوحيد لكتابة تطبيقات iPhone هو استخدام Xcode والهدف - C، على الأقل في الوقت الحالي.

إذا كنت مبرمجا ج # لماذا يجب أن لا تستثمر بعض الأوقات لتعلم الهدف C. بصراحة التحدث، فلن يستغرق الأمر الكثير من الوقت منك. لكنك تشعر أنك جيد للعمل في منصة جديدة مع لغة جديدة. تعلم أشياء جديدة كل العصور fascinates لي.

هناك العديد من الطرق للحصول على الجهاز. ذكرت Apple في ترخيص SDK أن الطريقة المعتمدة الوحيدة للحصول على الجهاز هي عبر C، C ++، Objectivec، وجافا سكريبت.

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

أود أن أقترح أنك تفعل كل ما يجعلك الأكثر حلا لك كمطور. إذا كنت تعرف C # و .NET، يجب أن تذهب مع monotouch. إذا كنت تعرف ObjectiVEC أو منصة Mac، فربما يكون ObjectiVEC طريقة للذهاب. إذا كنت تعرف x وهو على iPhone، حسنا، x هو المكان الذي أقترح فيه أولا.

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