سؤال

أنا مطور ويب وأريد نقل منتجات الويب الخاصة بي إلى iPhone. أحد المنتجات مثل خرائط Google: إظهار الخريطة على شاشة الهاتف، يمكنك سحب أو تغيير حجم الخريطة وعرض بعض المعلومات التي نضيفها إلى الخريطة.

أعلم أن هناك بعض التقنيات التي تمكنك من استخدام HTML و CSS و JavaScript لتطوير تطبيقات iPhone الأصلية. لقد حددت بعض:

هل هناك منتجات أخرى مماثلة؟ ما هو الفرق بينهم؟ أيهما أختار؟

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

المحلول

لقد سجلت مع Stackoverflow لغرض التعليق على الجواب الأكثر صوتا في القمة. الشيء السيئ هو stackoverflow لا يسمح للأعضاء الجدد بنشر التعليقات. لذلك لا بد لي من جعل هذا التعليق يبدو وكأنه إجابة.

يحتوي إجابة Rory Blyth على بعض النقاط الصحيحة حول أطر JavaScript المتنقلة. ومع ذلك، فإن نقاطه الرئيسية غير صحيحة. الحقيقة هي أن التيتانيوم والجهاز phonegap أكثر مماثلة من المختلف. كلاهما يعرض وظائف الهاتف المحمول من خلال مجموعة من apis JavaScript، ويعمل منطق التطبيق (HTML، CSS، JavaScript) داخل عنصر تحكم Native WebView.

  1. PhoneGap ليس مجرد غلاف أصلي من تطبيق ويب. من خلال APIs PhoneGap JavaScript، يحتوي "تطبيق الويب" على وظائف الهاتف المحمول مثل تحديد الموقع الجغرافي وكاميرا التسارع أو جهات الاتصال وقاعدة البيانات ونظام الملفات وما إلى ذلك أساسا أي وظيفة التي يوفرها الهاتف المحمول SDK يمكن "سد" جافا سكريبت العالم. من ناحية أخرى، فإن تطبيق الويب العادي الذي يعمل على متصفح الويب المحمول ليس لديه حق الوصول إلى معظم هذه الوظائف (الأمن هو السبب الرئيسي). لذلك، تطبيق PhoneGap هو أكثر من تطبيق جوال من تطبيق ويب. يمكنك بالتأكيد استخدام PhoneGAP لالتفاف تطبيق ويب لا يستخدم أي واجهات برمجة تطبيقات PhoneGAP على الإطلاق، ولكن هذا ليس ما تم إنشاؤه PhoneGap.

  2. لا يجمع التيتانيوم رمز HTML أو CSS أو JavaScript في "بت". يتم تعبئتها كموارد للحزمة القابلة للتنفيذ، مثل ملف صورة مضمن. عند تشغيل التطبيق، يتم تحميل هذه الموارد في عنصر تحكم UIWebView والتشغيل هناك (كما JavaScript، وليس بتات أصلية، بالطبع). لا يوجد شيء مثل رمز التحويل البرمجي الجافا سكريبت إلى الأصلي (أو إلى الهدف - ج). يتم ذلك بنفس الطريقة في phonegap كذلك. من وجهة نظر المعمارية، فإن هذين الأطرتين متشابهان للغاية.

الآن، هل هم مختلفون؟ نعم. أولا، يبدو أن التيتانيوم ميزة أكثر ثراء من phonegap من خلال سد المزيد من وظائف الهاتف المحمول إلى JavaScript. الأكثر ملحقة، لا يعرض PhoneGAP العديد من مكونات UI (إن وجدت) إلى JavaScript. من ناحية أخرى، لدى Titanium، من ناحية أخرى، واجهات برمجة تطبيقية شاملة واجهة المستخدم التي يمكن استدعاؤها في JavaScript لإنشاء وتحكم في جميع أنواع عناصر التحكم OI الأصلية. Utilizaing هذه apis ui، يمكن أن يبدو تطبيق التيتانيوم أكثر "أصلية" من تطبيق PhoneGap. ثانيا، يدعم PhoneGAP المزيد من منصات الهاتف المحمول من التيتانيوم. APIs PhoneGAP أكثر عام ويمكن استخدامها في منصات مختلفة مثل iPhone، Android، BlackBerry، Symbian، إلخ. التيتانيوم يستهدف في المقام الأول iPhone و Android على الأقل الآن. بعض واجهات برمجة التطبيقات الخاصة بها هي منصة محددة (مثل iPhone UI APIS). سوف يؤدي استخدام واجهات برمجة التطبيقات هذه إلى تقليل القدرة عبر النظام الأساسي للتطبيق الخاص بك.

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

تم التحديث 8/13/2010: رابط إلى إجابة موظف التيتانيوم على سؤال ميكي.

تحديث 12/04/2010:قررت إعطاء هذا المنشور مراجعة سنوية للحفاظ على معلوماتها الحالية. العديد من الأشياء لديها تغييرات في السنة التي جعلت بعض المعلومات في المنشور الأول القديم.

جاء أكبر تغيير من التيتانيوم. في وقت سابق من هذا العام، أصدر Appcelerator Titanium 1.0، الذي غادر بشكل كبير من إصداراته السابقة من وجهة نظر المعمارية. في 1.0، لم يعد التحكم UIWebView قيد الاستخدام. بدلا من ذلك، يمكنك استدعاء APIs التيتانيوم لأي وظائف UI. هذا التغيير يعني أشياء زوجين:

  1. تطبيقك UI يصبح مواطنا تماما. لا يوجد المزيد من الويب واجهة المستخدم في تطبيقك منذ تولي واجهات برمجة التطبيقات من التيتانيوم الأصلية السيطرة على جميع احتياجات UI الخاصة بك. تيتانيوم يستحق الكثير من الائتمان عن طريق الرائدة في حدود "واجهة المستخدم الأصلية عبر المنصة". إنه يمنح المبرمجين الذين يفضلون مظهرهم ويشعروا بمواد واجهة المستخدم الأصلية ولكن لا يحبون لغة البرمجة الرسمية بديلا.

  2. لن تتمكن من استخدام HTML أو CSS في تطبيقك، حيث انتهى عرض الويب. (ملاحظة: لا يزال بإمكانك إنشاء عرض ويب في التيتانيوم. ولكن هناك عدد قليل من ميزات التيتانيوم التي يمكنك الاستفادة منها في طريقة عرض الويب.)التيتانيوم سؤال وجواب: ماذا حدث ل HTML & CSS؟

  3. لن تتمكن من استخدام مكتبات JS الشهيرة مثل JQuery التي تفترض وجود كائن DOM. تواصل استخدام Javascript بلغة الترميز الخاصة بك. ولكن هذه هي تقنية الويب الوحيدة التي يمكنك استخدامها إذا أتيت إلى Titanium 1.0 كبرنامج ويب.

فيديو التيتانيوم: ما هو الجديد في تيتانيوم 1.0.

الآن، هل تيتانيوم 1.0 تجميع جافا سكريبت في "بت أصلي"؟ لا، أخيرا جاء Appcelerator نظيفا في هذه المشكلة مع مدونة المطور هذه:مشروع مرشدات التيتانيوم: JS البيئة. نحن المبرمجين هم أشخاص أصليون أكثر من تلك الموجودة في قسم التسويق، أليس كذلك؟ :-)

الانتقال إلى phonegap. لا توجد أشياء جديدة لتقولها حول PhoneGap. تصوري هو أن تطوير PhoneGap لم يكن نشطا للغاية حتى قفزت IBM على متن الطائرة في وقت لاحق من هذا العام. جادل بعض الأشخاص بأن IBM يساهم بمزيد من التعليمات البرمجية إلى phonegap من nitobi هو. أن يكون صحيحا أم لا، من الجيد أن نعرف أن PhoneGAP يجري تطويرها النشط.

تواصل PhoneGAP أن تضع نفسها على تقنيات الويب، وهي HTML، CSS و JavaScript. لا يبدو مثل PhoneGap لديه أي خطة لسد ميزات UI الأصلية إلى JavaScript كما تفعل التيتانيوم. في حين أن واجهة المستخدم واجهة المستخدم لا تزال تتخلف عن واجهة المستخدم الأصلية على الأداء والمظهر الأصلي والشعور، فإن هذه الفجوة مغلقة بسرعة. هناك اتجاهان في تكنولوجيات الويب التي تضمن ميزة مشرقة إلى Web Mobile Web من حيث الأداء:

  1. محرك JavaScript ينتقل من مترجم إلى جهاز افتراضي. JavaScript هي JIT التي تم تجميعها في التعليمات البرمجية الأصلية لتنفيذ أسرع. Safari JS Engine: Squirrelfishish Extreme

  2. يتم تقديم صفحة الويب للانتقال من الاعتماد على وحدة المعالجة المركزية لاستخدام تسريع GPU. تصبح المهام المكثفة الرسومية مثل انتقال الصفحة والرسوم المتحركة ثلاثية الأبعاد أكثر سلاسة بمساعدة تسريع الأجهزة. GPU تسارع المركبات في الكروم

يتم تسليم هذه التحسينات التي نشأت من متصفحات سطح المكتب إلى متصفحات المحمول بسرعة. في الواقع، نظرا لأن نظام التشغيل iOS 3.2 و Android 2.0، أصبح عنصر التحكم Web Mobile Web أكثر أداء وصديقة HTML5. مستقبل الويب المحمول واعد حتى اجتذبت طفلا كبيرا إلى المدينة: أعلنت JQuery مؤخرا عن إطار الويب المحمول. مع JQuery Mobile يوفر أدوات UI، وتوفير PhoneGAP ميزات الهاتف، فإنهما يقوم اثنان مجتمعين بإنشاء منصة الويب المثالية للهاتف المحمول في رأيي.

يجب أن أذكر أيضا سينشا تاتش كإطار غادجت ويب آخر على شبكة الإنترنت. تم إصدار Sencha Touch الإصدار 1.0 مؤخرا بموجب نموذج الترخيص المزدوج يتضمن GPLV3. تعمل Touch Sencha بشكل جيد مع PhoneGap تماما كما يفعل JQuery Mobile.

إذا كنت غوت مبرمج (مثلي)، قد ترغب في التحقق GWT Mobile., ، مشروع مصدر مفتوح لإنشاء تطبيقات الويب المحمولة مع GWT. يتضمن غلاف GWT PhoneGap الذي يتيح استخدام PhoneGap في GWT.

نصائح أخرى

من ما تجمعته، إليك بعض الاختلافات بين الاثنين:

  • PhoneGAP ينشئ أساسا مغلفات أصلية لما لا يزالون تطبيقات الويب. وبعد إنه يبصق مشروع Whateveryourplatformis، يمكنك بناءه ونشره. إذا كنا نتحدث عن iPhone (وهو المكان الذي أقضي وقتي)، فلا يبدو أنه مختلف عن إنشاء قاذفة تطبيق الويب (اختصار يحصل على أيقونة Springboard الخاصة به، حتى تتمكن من تشغيله (مثل) التطبيق الأصلي). لا يزال "التطبيق" نفسه HTML / JS / ETC.، ويعمل داخل عنصر تحكم متصفح مستضاف. ما يوفر PhoneGAP وراء هذا هو جسر بين JavaScript و APIs الأجهزة الأصلية. لذلك، تكتب JavaScript ضد PhoneGap Apis، ثم يقوم PhoneGap ثم بإجراء المكالمة الأصلية المناسبة. في هذا الصدد، يكون يختلف عن نشر تطبيق ويب قديم عادي.

  • يأتي مصدر التيتانيوم إلى أجزاء أصلية. هذا هو، HTML / JS / ETC. لا يتم إرفاقها ببساطة بمشروع ثم استضافتها داخل عنصر تحكم متصفح الويب - يتم تحويلها إلى تطبيقات أصلية. هذا يعني، على سبيل المثال، أن واجهة تطبيقك ستتكون محلي مكونات واجهة المستخدم. هناك طرق للحصول على نظرة أصلية - ويشعر دون وجود تطبيق أصلي، ولكن ... حسنا ... ما الكابوس الذي يتحول عادة.

يشبه الاثنان في أنك تكتب كل الأشياء الخاصة بك باستخدام تقنيات الويب النموذجية (HTML / JS / CSS / BLAH BLAH BLAH)، وأن تحصل على وظائف أصلية من خلال Apis JavaScript مخصص.

ولكن، مرة أخرى، تطبيقات phonegap (phongapps؟ أنا لا أعرف ... هل هذا اسم غبي؟ من الأسهل أن أقول - أعرف أن الكثير) أبدأ حياتهم كتطبيقات ويب وإنهاء حياتهم كتطبيقات ويب. على iPhone، HTML / JS / ETC. يتم تنفيذه للتو داخل عنصر تحكم UIWebView، و APIS PhoneGap JavaScript APIs يتم توجيه مكالمات JS الخاصة بك إلى واجهات برمجة التطبيقات الأصلية.

تصبح تطبيقات التيتانيوم تطبيقات أصلية - يتم تطويرها للتو باستخدام Web Dev Tech.

ماذا يفعل هذا في الواقع يعني?

  1. سوف تطبيق التيتانيوم نظرة مثل التطبيق "الحقيقي" لأنه في النهاية يكون تطبيق "حقيقي".

  2. سيبدو تطبيق PhoneGap مثل تطبيق ويب يستضيف في عنصر تحكم متصفح لأنه في النهاية يكون يتم استضافة تطبيق ويب في عنصر تحكم المستعرض.

ايهم اصح بالنسبة لك؟

  • إذا كنت ترغب في كتابة تطبيقات أصلية باستخدام مهارات ديف الويب، فإن التيتانيوم هو أفضل رهان لك.

  • إذا كنت ترغب في كتابة تطبيق باستخدام مهارات الويب الخاصة بالويب التي يمكنك نشرها بشكل واقعي في منصات متعددة (iPhone، Android، BlackBerry، وأي شيء آخر قرروا تضمينها)، وإذا كنت تريد الوصول إلى مجموعة فرعية من ميزات النظام الأساسي الأصلي (GPS، التسارع، إلخ.) من خلال API JavaScript موحد، ربما يكون PhoneGap ما تريد.

قد تسأل: لماذا أرغب في كتابة phonegapp (لقد قررت استخدام الاسم) بدلا من تطبيق ويب مستضاف على الويب؟ لا يمكنني الوصول إلى بعض الأجهزة الأصلية ميزات بهذه الطريقة، ولكن أيضا الحصول على راحة نشر على شبكة الإنترنت الحقيقية بدلا من إجبار المستخدم على تنزيل تطبيقي "الأصلي" وتثبيته؟

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

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

على أي حال، باستثناء حقيقة أن Web Dev Tech متورط، فإن PhoneGAP والتيتانيوم مختلفان للغاية - إلى حد أن تكون قابلة للمقارنة بشكل سطحية فقط.

أكره تطبيقات الويب، من قبل، وإذا كنت تقرأ مراجعات متجر تطبيقات iTunes، فإن المستخدمين جيدة جدا في اكتشافها. لن أسم اسم أي أسماء، لكن لدي زوجين "تطبيقات" على هاتفي الذي ينظر وتشغيله مثل القمامة، لأنها لأنها تطبيقات الويب التي يتم استضافتها داخل مثيلات UiWebView. إذا كنت أرغب في استخدام تطبيق ويب، فسأفتح Safari، وكنت تعرف، انتقل إلى واحد. اشتريت iPhone لأنني أريد أشياء iPhone-y. لا أملك أي مشكلة في استخدام التطبيق، ويقول، تطبيق Google Google Snazzy داخل Safari، لكنني أشعر بالخداع إذا قمت بتسليم Google للاطلاع على إشارة مرجعية على Springboard من خلال تقديم تطبيق ويب كواحد.

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

أنا آخذ دورة في تطوير أندرويد / iPhone وقد أمضينا 8 أسابيع مع التيتانيوم (ليس بدوام كامل) (الإصدار كان التيتانيوم 1.4.2 والوقت حوالي نوفمبر 2010). هنا تجربتي.

iPhone الروبوت الاستهداف المزدوج

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

لقد قام الكثير من الأشخاص في الفصل بتطبيقات iPhone، ولا يمكنهم عملهم على نظام Android بدون إعادة كتابة كبيرة. قمت بتطوير تطبيق أطفال بسيط يسمى Animap (انظر Android Market / AppStore في السويد) وبدأ التطوير تحت Windows. بمجرد أن يعمل الهدف الذي يعمل بنظام Android، فقد فتحت المشروع على نظام التشغيل X. لا يظهر أي أشياء بناء لجهاز iPhone، فقط لنظام Android. تحتاج إلى بدء مشروع مستهدف مزدوج ضمن نظام التشغيل X. (موافق، قمت بنسخ الملفات ذات الصلة إلى مشروع جديد). المشكلة التالية - لا تعمل الرسوم المتحركة على iPhone (يعملون على نظام Android). لا تعمل أحداث التمرير نفسها على iPhone. (أي على أندرويد تحصل على الحدث UNTOUCH عند توقف المستخدم عن التمرير وإطلاق إصبعهم من الشاشة، وهذا لا يحدث على iPhone).

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

تحميل وبرنامج الإعداد

يجب عليك اتباع التعليمات إلى الرسالة. لا تحاول استخدام جافا 64 بت. لن يقوم بتجميع تطبيق DetchenSink 1.4.0 التجريبي. (1.3 يعمل موافق!) يجب عليك وضع الملفات مباشرة على محرك الأقراص C كأسماء طويلة سيجعل البرنامج الخارجي لا يتلقى جميع معلمات سطر الأوامر إذا وصلوا إلى فترة طويلة. (غرامة للبرامج الصغيرة على الرغم من) 1/3 من الأوقات، تتوقف Toolchain ببساطة ويجب أن تضغط "إطلاق" مرة أخرى. ثم من المحتمل أن تعمل ... غير موثوق بها للغاية. لن يتم العثور على المحاكاة عند بدء التشغيل ثم يجب عليك ببساطة قتل ADB.EXE مع CTRL + ALT + DELETE وإعادة المحاولة.

إتصال شبكة

على شبكة WiFi-WiFi، تخسر أحيانا من اتصال مباشر وتعطل التيتانيوم عليك (واجهة ترجمة / النشر) إذا لم يكن لديك اتصال إنترنت يعمل، فلن يبدأ الأمر لأنه لا يمكن تسجيل الدخول إلى خوادمهم.

api.

CSS، HTML و jQuery هو نسيم مقارنة بهذا. يشبه التيتانيوم أي API واجهة المستخدم الرسومية القديمة الأخرى، وتحتاج إلى تعيين بعض الخصائص لكل زر / حقل / إلخ. الحصول على خطأ في حقل هو سهل، تذكر جميع الخصائص التي يجب تعيينها؟ هل تهديتها بأحرف كبيرة في المكان المناسب؟ (نظرا لأن هذا لم يتم القبض عليه من قبل المحول البرمجي، ولكن سيتم اعتباره خطأ في وقت التشغيل إذا كنت محظوظا لاختبار هذا الجزء)

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

توثيق

تحمل العديد من صفحات API رمز أندرويد، ولكن سيعود فقط إلى NULL فقط عند محاولة إنشاء عنصر التحكم. إنهم ليسوا متاحون ببساطة على منصة Android على الرغم من الرموز. في بعض الأحيان، يذكر أندرويد لعدم دعم طريقة معينة، ولكن بعد ذلك هو API بأكمله مفقود.

حوض المطبخ

التطبيق التجريبي. هل ذكرت أنه لا يترجم إذا وضعته في مجلد مشروع Eclipse الخاص بك لأن المسار يصبح طويلا؟ يجب وضعها على محرك الأقراص C الخاص بك في مجلد الجذر. أنا حاليا استخدم رابط رمزي (mklink / j ...)

طرق غير موثقة

يجب عليك استخدام الأشياء بالأسئلة كعلامة .SetteXT ('Hello World') لتغيير ملصق موثوق به ولكن هذا غير موثق على الإطلاق.

تصحيح

Titanium.api.info ("المطبوعات هي الطريقة الوحيدة لتصحيح")؛

التحرير

لا تتوفر واجهات برمجة التطبيقات بأي شكل جيد حتى لا تتمكن من الحصول على إكمال رمز عادي بمساعدة وما إلى ذلك. في الكسوف. aptana الرجاء المساعدة!

المعدات

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

بعض الأشياء الإيجابية

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

  • bugdatabase.

  • إنه مفتوح أيضا. يمكنك ببساطة أن ترى أنك غير بمفرده ويقوم بديلة بدلا من 4 ساعات أخرى تنفق على التجربة والخطأ.

  • تواصل اجتماعي

  • يبدو أن نشط في منتدياتهم.

البق

  • التيتانيوم 1.4 ليس خلافيا. وبعد هذا يعني أنه إذا كنت تستخدم مؤشرات الترابط (استخدم عنوان URL: الخاصية في مكالمة CreateWIndow) وبرنامج مثل المواضيع تعمل وإرسال الأحداث مع البيانات ذهابا وإيابا، فهي تعمل على الكثير من الأشياء الغريبة جدا - الخفيفة، المفقودة نوافذ، الكثير من الأحداث، عدد قليل جدا من الأحداث، إلخ. هذا يعتمد كل شيء على التوقيت، وضع صفوف التعليمات البرمجية بترتيب مختلف قد تعطل أو يشفي التطبيق الخاص بك. إضافة نافذة في ملفات أخرى في ملفات أخرى تنفصل عن تطبيقك .js الإعدام ... هذا أيضا Trashes Descripterures الداخلية في التيتانيوم، لأنها في بعض الأحيان يمكنها تحديث البيانات الفراغية الداخلية في Paralell، والكتابة فوق قيمة تغيير فقط مع شيء آخر.

الكثير من المشاكل التي أجريتها مع التيتانيوم تأتي من خلفيتي في أنظمة الوقت الفعلي مثل OSE الذي يدعم مئات المواضيع والأحداث والرسالة التي تمر بالرسالة. من المفترض أن يعمل هذا في Titanium 1.4 ولكنه ببساطة لا يفعل ذلك بشكل موثوق.

  • يموت JavaScript (وهو جديد بالنسبة لي) بصمت على أخطاء وقت التشغيل. هذا يعني أيضا أن الحشرات الصغيرة والشائعة، مثل خطأ إملائي اسم متغير أو قراءة في مؤشر Null-لا تعطل عندما يجب أن تصحيح ذلك. بدلا من ذلك، توقف أجزاء برنامجك عن العمل، على سبيل المثال EventHandler، لأنك في غير محله / اغتزم حرفا.

  • ثم لدينا المزيد من الأخطاء البسيطة في التيتانيوم، مثل بعض المعلمات لا تعمل في الوظائف (وهي شائعة جدا في نظام أندرويد على الأقل).

  • نسخة تجريبية وسرعة تصحيح الأخطاء أثناء تشغيل مطور العظيم على العديد من أجهزة الكمبيوتر، لاحظت أن الاختناق هو القرص الصلب. يقوم محرك الأقراص SSD على جهاز كمبيوتر محمول يجعل دورة البناء حوالي 3-5 مرات بشكل أسرع من محرك 4200 دورة في الدقيقة. على سطح المكتب، فإن وجود محركات أقراص مزدوجة في RAID 1 (وضع الشريط) يجعل بناء حوالي 25 في المائة أسرع من محرك أقراص واحد مع وحدة المعالجة المركزية أسرع إلى حد ما، كما أنه يدق الكمبيوتر المحمول محرك SSD.

ملخص

  • من التعليقات في هذا الموضوع، يبدو أن هناك قتال من أجل عدد منصات أداة مثل هذا يمكن أن يقدم التطبيق. يبدو أن عدد API هو نقطة البيع الرئيسية.

هذا يضيء كثيرا عندما تبدأ في استخدامه. إذا نظرت إلى BugTracker Open BugTracker ترى أن عدد الأخطاء يحتفظ بزيادة أسرع من عدد الأخطاء الثابتة. عادة ما تكون هذه علامة على أن المطورين يستمرون بإضافة المزيد من الوظائف، بدلا من التركيز على زيادة عدد الأخطاء.

كمستشار يحاول تقديم تطبيقات بسيطة إلى حد ما لمددات متعددة اللاعبين لعملاء - لست متأكدا من أن هذا هو في الواقع أسرع من القيام بتطوير التطبيق الأصلي على نظامين. ويرجع ذلك إلى حقيقة أنه عندما تكون سريعا في السرعة، فأنت سريع مع التيتانيوم، ولكن بعد ذلك فجأة تنظر إلى أسفل وتجد نفسك في حفرة عميقة جدا، لا تعرف عدد الساعات التي يجب أن تنفقها لمدة عدة ساعات. يمكنك ببساطة عدم الوعد وظيفة معينة لموعد نهائي / وقت / تكلفة معينة.

عن نفسي: تم استخدام ثعبان لمدة عامين مع Wxpython. (أن واجهة المستخدم الرسومية غير متناسقة، ولكن لا تنهار أبدا مثل هذا. قد يكون لي أنه لم يكن مفهوما نموذج الخيوط المستخدمة من قبل جافا سكريبت وتيتانيوم، لكنني لست وحدي وفقا لمنتديات المناقشة المفتوحة، وكائنات واجهة المستخدم الرسومية فجأة باستخدام السياق الخطأ / عدم التحديث .. ؟؟؟) قبل أن يكون لدي خلفية في برمجة C و ASM للأجهزة المحمولة.

تحرير - تمت إضافة جزء مع الأخطاء وعدم كونه مؤمنا مؤكدا] [تحرير - الآن بعد أن عملت معها لمدة شهر +، معظمها على جهاز الكمبيوتر ولكن البعض على نظام التشغيل X أيضا. وأضاف iPhone و Android Dual Thirting. تمت إضافة نسخة تجريبية وخطأ سرعة دورة الدورة.

يستخدم Corona SDK (ANSCA Mobile) LUA بلغة الترميز. انظر lua.org لأكثر من لوا.

بينما نخطط لإضافة مزيد من تكامل الويب وعناصر مواطن واجهة المستخدم، فإن تركيزنا سوف يميل إلى أن يكون على تطبيقات كثيفة الرسومات، مثل تطوير اللعبة، بدلا من التقنيات القائمة على الويب. بمعنى آخر، نحن لا نتصور الناس يكتبون تطبيقات Corona بالكامل في جافا سكريبت / أتش تي أم أل / مئوية.

لقد كنت أعمل مع التيتانيوم لأكثر من أسبوع الآن وأشعر أنني أشعر أنني بحالة جيدة حول ضعفها.

1) إذا كنت آمل أن تستخدم نفس الرمز على منصات متعددة حظا سعيدا! سترى شيئا مثل الخلفية ومدهشا حتى تعرف على إصدار Android لا يدعمه. ثم يجب أن تعود إلى استخدام صورة متدرجة، قد تستخدمه جيدا لكلا الإصدارين لجعل الكود أليس كذلك؟

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

3) لقد ألقيتك في الظلام، وسوف تتعطل الأمور وعليك البدء في التعليق الرمز، ثم عندما تجدها، لا تستخدمها أبدا. هناك بعض الأخطاء الواضحة، مثل الاتجاه والنسب النسبية على نظام Android كانت مشكلة لأكثر من ستة أشهر.

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

5) التيتانيوم آي فون مقابل محركات جافا سكريبت الروبوت مختلفة تماما. في إصدار Android، يمكنك تنزيل ملفات JavaScript عن بعد، وتشمل واستخدام المكتبات مثل Mootools، JQuery وما إلى ذلك. كنت في الجنة عندما وجدت هذا لأنني لم يكن لديك للحفاظ على تجميع تطبيق Android الخاص بي. تستغرق عملية تثبيت Android APK وقتا طويلا! iPhone لا شيء ممكن، أيضا إصدار iPhone يحتوي على محرك جافا سكريبت أسرع بكثير.

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

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

لماذا لا يوجد تطبيق ويب؟ عند سوق المدخل سوق أندرويد هواتف أندرويد بطيئا فظيعا في توليد WebView ويستهلك الكثير من الذاكرة التي يمكن أن تستخدمها للقيام بمنطق أكثر تعقيدا.

إليك تحليل أكثر حداثة وعمقا ل Appcelerator و PhoneGap: http://savagelook.com/blog/portolio/a-deeper-look-at-appelerator-and-phonegap.

وهنا مزيد من التفاصيل حول كيفية تختلف برمجيا:http://savagelook.com/blog/portolio/phonegap-is-b-based-appcelerator-is-pure-javascript.

يتم دعم mapkit الأصلي في التيتانيوم

جعل HTML5 الحاجيات THA تبدو وكأنها واجهة مستخدم فون هي شيء واحد، ولكن جعلها تؤدي بشكل جيد على قدم المساواة أمر آخر تماما. أداء الرسوم المتحركة HTML5 (حتى انتقالات عرض عادي)، والتمرير القوائم الطويلة، والاستجابة للإيماءات تشعر لزجة وتشنج. سوف يلاحظ مستخدم iPhone الفرق.

هناك أيضا بعض الاختلافات في أنواع الإيماءات التي تدعمها الأجهزة المختلفة التي تنتج عن النظام الأساسي المشكلات المحددة وقضايا قابلية الاستخدام أيضا.

سوف أبقى مع تطبيقات أصلية في الوقت الحالي أعتقد.

rhomobile رودس (http://rhomobile.com/products/rhodes.) مشابه جدا في النهج إلى phonegap، ولكن هو الإطار الوحيد مع:

  1. نمط وحدة تحكم عرض نموذج (كما توفر معظم أطر الويب)
  2. مدير كائن العلائقية
  3. دعم لجميع الهواتف الذكية الشعبية (بما في ذلك Windows Phone 7)
  4. خدمة تطوير استضافة (وليس مجرد بناء مستضاف): http://rhhohub.com.
  5. مصحح كامل ومحاكي أقل من SDK في IDE Rhostudio IDE
  6. دعم البيانات المتزامنة حاليا

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

فهمي للهاتف هو أنهم يقدمون apis javascript إلى معظم واجهات برمجة التطبيقات فون.

يبدو التيتانيوم أسهل لخلفية مطور الويب. إنه ملف XML بسيط لإنشاء تطبيق TabView أساسي ثم يتم التحكم في كل شيء في منطقة المحتوى بواسطة HTML / JS. أعلم أيضا أن التيتانيوم يوفر بعض الوصول إلى جافا سكريبت إلى بعض الأطر (خاصة الوصول إلى معلومات الموقع ومعرف الهاتف وما إلى ذلك).

تحديث: أضافت التيتانيوم خرائط API في الإصدار 0.8 من إطار عملهم.

يجب أن تتعلم الهدف C وبرنامج التطبيقات الأصلية. لا تعتمد على هذه الأشياء التي تعتقد أنها تجعل الحياة أسهل. تأكد Apple تأكيدا من أسهل طريقة باستخدام الأدوات واللغات الأصلية. بالنسبة إلى 100 سطر من Javascript، يمكنني أن أفعل نفس الشيء في 3 أسطر من التعليمات البرمجية أو بدون رمز على الإطلاق اعتمادا على العنصر. شاهد بعض البرامج التعليمية - إذا فهمت JavaScript ثم الهدف C ليس صعبا. الحلول بائسة ويمكن أن تسحب Apple المكونات في أي وقت يريدون.

من الحلول التي ذكرتها، يبدو أن أيا منهم يعطيك الوصول المباشر إلى إطار mapkit المقدمة في OS 3.0.

نظرا لأن تطبيقات تطبيقات HTML Google ليست جيدة تقريبا مثل MapKit (انظر Google Latitude للمثال)، فمن المحتمل أن تكون أفضل إيقاف تشغيل تطبيق Touch Cocoa الأصلي، أو اختيار حل يمكنك تمديده لإضافة تكامل MapKit. PhoneGAP قابل للتوسيع بهذه الطريقة (إنه مفتوح المصدر لذلك هو افتراضيا)، وقد تكون بعض الحلول الأخرى أيضا.

تحرير: التيتانيوم الآن لديه دعم ل mapkit

لقد حاولت كورونا. كان جيدا حتى اكتشفت أنه لا يدعم تدفق الصوت MP3 الصوت. لذلك، توقفت هناك. أعتقد إذا كنت تريد حقا أن أكون مطورا iPhone App، يجب أن أتعلم OBJ C. كل ما أردت إجراء تطبيق له قائمة بمحطات الراديو وتنقر عليها تشغيلها.

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