سؤال

لقد قمت بتطوير لغة C++ منذ عدة سنوات، ولكن في هذه الأيام أنا مهندس برمجيات Java في المقام الأول.نظرًا لأنني أملك جهاز iPhone، وأنا على استعداد للاستعداد لشراء جهاز MacBook الشهر المقبل، وأنا مهتم بشكل عام بالبدء في تطوير نظام التشغيل Mac (باستخدام Objective C)، اعتقدت أنني سأطرح هذا السؤال:ماذا بعد؟

وبشكل أكثر تحديدًا، ما هي الكتب التي يجب أن أختارها، وهل هناك أي موارد على الويب يمكن لبعض الأشخاص توجيهي إليها؟بعض الكتب التي أخطط لشرائها:

هل من أحد مطلع على هذه العناوين؟أخيرًا، سأكون مهتمًا جدًا بملخص لما يجب أن أكون مستعدًا لتوقعه، بمجرد أن أبدأ هذه الرحلة.باعتباري شخصًا يقوم بالتطوير في Java باستخدام IntelliJ IDEA، ما هي بعض الاختلافات الرئيسية التي سألاحظها عندما أنتقل إلى كتابة كود ObjectiveC في Xcode؟ما الفرق بين تطوير سطح مكتب Mac OS وتطوير iPhone؟اعتدت على جمع البيانات المهملة في Java، ما الذي يجب أن أعرفه عن إدارة البيانات المهملة/إدارة الذاكرة في ObjectiveC.هل هناك أي مشكلات خاصة باللغة الأخرى يرغب أي شخص في الإشارة إليها؟ماذا عن بناء واجهات المستخدم؟هل هو أقرب إلى Swing، حيث يقوم بإنشاء ملفات موارد Visual C++ التي تتفاعل معها التعليمات البرمجية، أم أنه يشبه إلى حد كبير بعض معرفات borland IDE التي ستنشئ تعليمات برمجية لواجهة المستخدم الرسومية؟

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

المحلول

بعد شراء الكتابين المذكورين في سؤالك، أوصي بـ Cocoa Programming لنظام التشغيل Mac OS X كوسيلة سريعة لتعلم اللغة وإطار عمل Cocoa، وربما تكون أسرع طريقة لبدء إنتاج تطبيقات حقيقية في Cocoa.انا اوصي بشده به.تعد البرمجة في Objective-C 2.0 كتابًا مرجعيًا رائعًا، ولكن إذا كنت تعرف لغة C بالفعل، فلن يكون هناك الكثير الذي ستعلمه لك والذي لا يمكنك تعلمه من الكتاب الآخر.ومع ذلك، إذا كنت بحاجة إلى قائمة بجميع الكلمات الرئيسية المحجوزة في Objective-C، فهذا هو الكتاب الذي يجب أن تذهب إليه.

يمكن إنشاء واجهة المستخدم بالكامل برمجيًا، ولكن ستجد أنه من الأسهل استخدام Interface Builder، الذي يأتي مع XCode، لتصميم واجهة المستخدم.سوف ينتهي بك الأمر مع رمز أقل بكثير.باستخدام الارتباطات، يمكنك أيضًا إزالة التعليمات البرمجية التي لا تتعلق بشكل مباشر بتصميم الواجهة.التفاصيل موجودة في كتاب Cocoa Programming for Mac OS X.

الشيء الوحيد الكبير الذي أفتقده في Java هو واجهة برمجة تطبيقات المجموعة.في Cocoa، تحصل فقط على NSSet وNSArray وNSDictionary، ولا يوجد أي نظير للواجهة القابلة للمقارنة.هذه الفئات أيضًا غير قابلة للتغيير، ولكن لها إصدارات قابلة للتغيير مثل NSMutableArray.

في الواقع، لم ألعب مع Garbage Collection في Objective-C 2.0.في الإصدارات السابقة من Objective-C، تمت معالجة إدارة الذاكرة من خلال أساليب الاحتفاظ والتحرير والإصدار التلقائي.تم إنشاء الكائنات بعدد الاحتفاظ 1.يعد الاحتفاظ بهذا العدد المتزايد، وتحريره، وتحرير الكائنات تلقائيًا أكثر تعقيدًا بعض الشيء.مرة أخرى، كتاب برمجة الكاكاو يشرح ذلك جيدًا.يعد تجميع البيانات المهملة أحد الخيارات، وإذا تم تشغيله، فإن أساليب الاحتفاظ والتحرير والإصدار التلقائي لا تفعل شيئًا.ومع ذلك، إذا كنت تكتب مكتبة أو إطار عمل ليستخدمه الآخرون، فيجب عليك برمجته كما لو تم إيقاف تشغيل تجميع البيانات المهملة.وبهذه الطريقة يمكن للتطبيقات استخدامها سواء كانت ميزة جمع البيانات المهملة قيد التشغيل أم لا.

أما بالنسبة لموارد الويب، http://cocoadevcentral.com/ هو موقع رائع يحتوي على دروس للمبتدئين.ويكي CocoaDev في http://www.cocoadev.com/ يحتوي على معلومات مفصلة حول الكثير من المواضيع، وعادةً ما يمكنك العثور على بعض المعلومات والأشخاص المفيدين في القائمة البريدية لـCocoa-dev http://lists.apple.com/mailman/listinfo/cocoa-dev

يختلف تطوير iPhone قليلًا، والتفاصيل مقيدة باتفاقية عدم الإفشاء.ومع ذلك، إذا حصلت على موافقة Apple للوصول إلى مركز مطوري iPhone، فقد قدمت Apple بعض العروض العامة الرائعة عبر الفيديو حول الاختلافات، والتي توجهك إلى الوثائق التي تحتاجها للانتقال من برمجة Mac OS X إلى برمجة iPhone OS X.

نصائح أخرى

احصل على برمجة الكاكاو لنظام التشغيل Mac OS X.سيتم الرد على معظم أسئلتك من خلال هذا الكتاب.يمكنك أيضًا البدء في القراءة كن XCoder و الكاكاو ديف سنترال.

لا يزال iPhone SDK خاضعًا لاتفاقية عدم الإفشاء (NDA)، لذا لن تتمكن من العثور على أي موارد عبر الإنترنت حول هذا الموضوع باستثناء تلك التي توفرها Apple.

تعتمد واجهة المستخدم الخاصة بـ Cocoa على MVC.يمكنك استخدام Interface Builder لتصميم طرق العرض الخاصة بك ثم ربطها بالنماذج ووحدات التحكم الخاصة بك.الهدف C هو مزيج من C وSmalltalk.

هناك خيار آخر متاح لك وهو jaiPhon، والذي يسمح لك بكتابة تطبيقات Java التي يتم ترجمتها إلى iPhone-speak في وقت الإنشاء.

لا أعرف ما إذا كان متاحًا بعد، أو إذا كان منتجًا تجاريًا أو أي شيء آخر، ولكنه مثير للاهتمام على الرغم من ذلك.

http://www.jaiphon.com/

تحقق من هذا أيضًا:

http://www.xmlvm.org/overview/

إنه مشروع يحاول أن يكون قادرًا على ترجمة البرامج المكتوبة بمجموعة متنوعة من اللغات المصدر إلى مجموعة متنوعة من اللغات المستهدفة.إحدى حالات الاختبار الأولية كانت كتابة برامج بلغة Java وتشغيلها على جهاز iPhone.مشاهدة الفيديو على الموقع أمر يستحق العناء.

مع هذا القول، لم أجربه.يبدو المشروع تجريبيًا تمامًا، ولا يوجد الكثير من النشاط على موقع SourceForge الخاص بهم.

هل أنت على دراية بالأقواس المربعة؟

وهنا أ مختصر مبرراته من وجهة نظري.آمل أن يكون هذا قد يساعد أيضا.

أعتقد أنك ستشعر بالعار عند الانتقال من IntelliJ إلى Xcode.ولكن هذا فقط من منظور الأداة.أحضر ملابس إضافية (TextMate+FScript)!

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