التيتنيوم × الكوردوفا

لكل مطوري ومبرمجي الانترنت

السلام عليكم ورحمه الله وبركاته،،

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

  • الفريم ورك كوردوفا هو فريم ورك مبني على الجافا سكرتبت وتاجز الاتش تي ام بالكامل ويمكن اضافه ما تريد من مكتبات الجافا سكربت بالاضافة إلى الجي كويري موبايل لأنه بالاساس يستخدم ما يسمى بالـ webview لعرض جميع العناصر المرئية بالبرنامج ويمكن اضافه محتويات البرنامج أو المعلومات المطلوبة من قواعد البيانات عن طريق الاجكس او $.getjson function ومن ثم حقن هذه المعلومات او الداتا بين تاجز الاتش تي ام ال.

  • قمت ببناء برنامج بالكامل عن طريق الكوردوفا ورغم أن البرنامج كان يعمل بشكل صحيح 100% ولكن طريقة عرض البرنامج كانت مختلفة تماما عن التطبيقات المسماه بالـ native والمبنية على اساس الـ java أو الـ c++ لأنها تستخدم مكتبات الـ java الملحقة بنظام التشغيل android.

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

وبعد فترة ليست بالطويلة بدأت ابحث عن انظمة فريم ورك خاصة بالموبايل يمكن عن طريقها عمل compiler or parse لمكتبات الجافا لاعطاء اوامر لاستخدام الـ native libraries الموجودة اصلا في نظام التشغيل android. وبالفعل وجدت الحل بل وتعمقت فيه رغم صعوبته الشديدة وتعقيداته بل والقلق اصلا من التجربة السابقة التي كنت غير راضي عنها تماما.

ووجدت الحل في TITANIUM Appcelerator

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

لست في مرحلة الاحتراف الكامل لهذا الفريم ورك ولكن في طور ما قبل الاحترافية لأن هناك الكثير من الامور المتداخلة في هذا الفريم ورك التي يمكن استخدامها على سبيل المثال لا الحصر مكتبات BACKBONE JS + UNDERSCORE JS والتي تسهل عملية استرجاع البيانات من قواعد البيانات وتخزينها والاتصال بها عن طريق RESTFUL ROUTES WITH LARAVEL API.

اسأل الله عز وجل ان يكون في هذه الكلمات البسيطة بعض الاستفادة للاخوة الكرام مطوري ومبرمجي الويب.

والسلام عليكم ورحمه الله وبركاته،،،

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

كانت تجربتني مع الكورفوفا

عند اطلاق التطبيق كان يعمل بشكل ممتاز ولكن بعد ان تم تحميله من قبل ١٠٠٠ مستخدم بدأ يتخبط ولايحفظ البيانات والكثير من المشاكل التي من المفترض ان لا تحدث ولكن هذا بسبب انه كان ليس باللغة الاساسية

وايضاً تطويره اصبح صعب جداً واستخدام المكاتب يزيد تعقيداً.

ماكان مني الا ان اوقفت المشروع وازلت البرنامج من المتجر لعدم قدرتي تلبيت طلبات المستخدمين في الشكاوي والتقيمات السيئة وكان هذا درس لي ان اتجه للغة الاساسية للنظام.

والان بعد اتجاهي للغة الاساسية للنظام اصبح تطوير التطبيق اسهل مما تتخيل بل وصل لدرجة الامتاع واستخدام المكاتب كيفما تشاء ودعم اخر التحديثات والكثير من الامور المعقدة تم حلها والحمدلله تقيم البرامج التي انجزتها مستقر

كلامك ممتاز طبعاً ال native app من المتوقع أن يكون آداءه متفوق و لكن هذا لا يعنى أن مكتبات مثل كوردوفا غير فعاله , فهى فعالة فى حالة أردت عمل تطبيق بسيط و أنت غير مضطر إلى تعلم الجافا

سمعت من فترة عن ال titanium حتى أنه هنا فى مصر له معجبين و مبرمجين كثر جداً جداً و له Events تقام و ندوات و مؤتمرات تقام عندما يتم إصدار جديد و قد كنت مدعواً إلى أحدى هذه الندوات منذ سنتين

سأعمل على قراءة المزيد عنه إن شاء الله

لا أنصح بتايتانيوم. أما phonegap أو cordova فهو مصنوع لهدف معين واستخدام معين وهو أنك تعرف html5 بشكل جيد وتريد توفير وقت التطوير ووقت تعلم objective c و adt. فإذا كنت بدأت بوضع jquery و jquery touch و jquery mobile وغيرها عوضا عن الاستفادة من HTML5 مباشرة فإنك تطلب المشاكل وستحصل عليها. فإذا لم تستفد من HTML5 فأنصح بعمل تطبيق native وابتعد عن تايتانيوم.

أخي العزيز

كمبرمج يجب أن يكون حدثيك دائما بدلائل وبراهين يرجى وضع أسباب نصحك بعدم استخدام التيتنيوم

مع الوضع في الاعتبار ان حديثي وحديث غيري في الموضوع من واقع استخدام الفون جاب بسبب انحصار استخدامه على الويب فيو على اختلاف التيتنيوم الذي يقوم بتحويل كومبيلر خصيصا لاستخدام عناصر النيتف

الخلاصه يجب وضع أسباب ودلائل على نصائحك

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

كنت أظن أن مجرد فهم ال use case الذي صمم phonegap من أجله يكفي لتفسير المشكلة أيضا لا يوجد ما يمنع أن يكون العرض الرئيسي للتطبيق (صندوق المحتوى) هو فقط ب HTML5 والقوائم والتبويبات والتصفح (السحب للجانب لعرض قائمة كما في تطبيق google+ وغيرها) native بمعنى كل شيء يظل خيارا يستخدم عندما يكون له فائدة وهذا ليس الحال في titanium حيث إما هو في كل شيء أو لا شيء.

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

أقتبس منها

تجربتنا مع titanium كانت مخيبة جدا فهي باختصار حل وسط يعطيك عيوب العالمين عيوب جافاسكربت javascript وعيوب تطوير تطبيقات أصيلة Native apps. تطوير التطبيقات بهذه الطريقة من المفترض أن يمر بمراحل بينية ثم يعطيك تطبيق أصيل في النهاية.

الهدف من الدخول في هذه المرحلة الإنتقالية هي استخدام معرفة سابقة عن الموظفين لتسريع نقلهم إلى هذا العالم الجديد. فإذا كان هناك الكثير من الموظفين الذين يجيدون جافاسكربت فإنك ستقول لهم لن تختلف الأمور كثيرا سنستخدم لغتكم المحموبة جافاسكربت كل شيء سيكون على مايرام. لكن سريعا ما ستكتشف أنه لا يمكنك وضع صندوق بوسم div ثم السماع للنقرات عليه عبر onclick بل عليك تعلم مكتبة طويلة عريضة غير قياسية تستخدم صيغة جافاسكربت لكنها ليست جافاسكربت التي تعودت عليها. وجافاسكربت لغة قذرة (كحال بيرل) يصعب القيام عليها لفترة طويلة long term maintenance وسرعان ما يتحول كودها إلى معكرونة ومن السهل على موظف غير سعيد أن يحول الكود إلى جحيم لمن بعده (مثلا كود جافاسكربت لخدمة وثائق غوغل يصل للمتصفح لكن هذا لم يقدم أي أفضلية لمنافسيه لأنه كود معقد قصدا obfuscated).

كانت تجربة مريعة فالتطبيق النهائي كثير الإنهيار وبطيء وذاكرته تسرب ودورة التطوير بطيئة يتطلب توليد التطبيق تصنيفه وهذا يستهلك الكثير من الوقت.

وحتى لا تحصل خيبة الأمل كالتي حصلت معك عند استخدام phonegap كتبت

هناك الكثير من مكتبات جافاسكربت تسهل عليك دخول هذا العالم مثل jQt و jquery mobile و Sencha Touch وغيرها فإن جذبتك صفحاتهم البراقة حضر نفسك لأكبر مقلب وأكبر خيبة أمل. موارد الهواتف الجوالة المحدودة لا تتحمل كل هذا بل إنها لا تتحمل jquery يمكنك استخدام مكتبة zepto.js عوضا عن jquery فهي متوافقة معها وأخف بكثير إلا أنها تظل ثقيلة بعض الشيء. كذلك يمكنك تعطيل الإنتظار لمدة 300 ميلي-ثانية حتى تستجيب النقرة انظر fastclick.

وذكرت تقنية مناسبة مثل قوال mustache و handlebarsjs.com

للاسف كلامك كله مغلوط علمياً وناتج عن عدم دراية

التيتنيوم عبارة عن MVC

model + view + controller

وحتى الموديل يستطيع أن يتحدث بـ restful api

ويمكن استخدام tss وهو تماما مثل css وذلك لاعطاء مميزات لكل عنصر من عناصر ال view

التيتيوم له نوعين من البرمجه البرمجه العاديه وهي عدم استخدام mvc

والبرمجه بواسطة استخدام alloy concept

وإن كان MVC هذا لا يغير من حقيقة أنه شيء جديد وتعلمه يساوي (من حيث الكلفة المستثمرة في ذلك من ساعات الموظفين) تعلم ال native بمعنى ليس له أفضلية "الألفة"

بل عليك تعلم مكتبة طويلة عريضة غير قياسية تستخدم صيغة جافاسكربت لكنها ليست جافاسكربت التي تعودت عليها.

كذلك لا يمكن تجربته في المتصفح بل عليك القيام بدورة إضافية فوق دورة تصنيف ال native يعني تعمل compile من كودك إلى كود native ثم تعمل compile للكود ال native

ودورة التطوير بطيئة يتطلب توليد التطبيق تصنيفه وهذا يستهلك الكثير من الوقت.

يا عزيزي انا اقولك لك ان تتحدث عن عدم درايه وانا مصر على ما اقول

اولاً حديثك عن تعلمه فهل تعلم لغة جديدة من البدأ ام تعلم التيتنيوم الذي هو مبني اصلا على اسس برمجه الجافا سكربت .

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

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

وشكراً