الجمعة، 30 أبريل 2010

دراسه تحليليه لمنصات التشغيل في الهواتف النقاله والأجهزه الكفيه

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

سوف يتم الاشاره الى الهواتف النقاله والأجهزه الكفيه في هذه الدراسه بكلمه "الهواتف النقاله" وسوف أتغاضى عن الفرق بينهما.

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

حصة السوق لأشهر منصات التشغيل
ان أول ملاحظه سوف نلاحظها أن الموضوع هنا يختلف عنه في أجهزه الحواسيب الشخصيه، هنا كل منصه لها حصه قريبه من الأخرى رغم سيطره Symbian على السوق حاليا, والنقطه الملاحظه هي سهوله تقلب السوق وتغير الحصص وهو المتوقع حدوثه هذا العام والعام المقبل.
هذه الاحصائيه حتى الربع الثاني من عام 2009. وكما هو ملاحظ فان السيطره ما زالت حتى الأن لنظام Symbian المنتشر بصوره كبيره على هواتف Nokia. رغم ظهور منصات تشغيل جديده مثل Android وانتعاش نسبه ال iPhone.

Symbian
نظره عامه
هي المنصه الأكثر انتشارا حاليا، لها ما يقارب نصف حصه السوق. يدار هذا النظام من قبل ال Symbian Foundation. وهي منظمه غير ربحيه تقوم باداره النظام وتضم العديد من الأعضاء أشهرهم Nokia, Sony Ericsson, Motorola, Samsung وغيرهم الكثير. تم فتح الشيفر المصدريه للنظام في 4 فبراير 2010. يوجد Store يمكن المستخدمين من تحميل تطبيقات ال Symbian على أجهزه ال Nokia وهو Ovi Store.

اصدارات النظام
سوف نتحدث في هذه النقطه عن اصدارات نظام ال Symbian والمرتبطه ارتباطا وثيقا بأجهزه النوكيا لأنها الأكثر انتشارا وهي التي تهمنا، ( لن أتحدث عن UIQ ).
  1. Series 60 V1.
  2. Series 60 V2: Initial Release, Feature Pack 1, Feature Pack 2.
  3. Series 60 V3: Initial Release, Feature Pack 1, Feature Pack 2.
  4. Series 60 V5.
  5. Series 80.


ان الفرق بين البرمجه في نظام ال S60 V1 لم يختلف عنه كثيرا في النظام الذي يليه الا وهو S60 V2. أما النسخه الثالثه وهي ما يسمى اليوم بأجهزه الجيل الثالث من نوكيا فانه حدث تغير شاسع في طريقه التطوير كما أنه البرامج القديمه التي كانت تعمل على النسخ القديمه من النظام لم تعد متوافقه مع النظام الجديد.

عند صدور النسخه الجديد وهي ال S60 V5 كان من أهم المميزات الي أضافتها توفر خاصيه اللمس في الأجهزه التي تعمل عليها وكان الهدف من وجودها هو منافسه ال iPhone الذي بدأ يطغي في الساحه. من أشهر الأجهزه التي تعمل عليه هذه المنصه هي ال Nokia N97 و Nokia 5800 Express Music.

اما Series 80 فهي نزلت على عدد قليل من الأجهزه ولم تلق النجاح الذي لاقته ال S60.

خيارات التطوير المتاحة
  1. Symbian C++: Native language
  2. Open C/C++
  3. JME
  4. Flash Lite
  5. Python
  6. Web Runtime (WRT)
  7. Qt

RIM BlackBerry
نظرة عامة
هي المنصه الثانيه في الترتيب ولها ما نسبته 20.9 % من حصه السوق، طورت من قبل شركه RIM وهو نظام مغلق المصدر. جافا هي اللغه الرئيسه للتطوير على النظام وله Store يسمى AppWorld وهو يعمل على الأجهزه التي تحمل نظام 4.2 أو نظام لاحق. في الشهر الماضي - ابريل 2010 - أعلنت RIM ظهور نظامها الجديد الذي يحمل الرقم 6.0 وهو أحدث نظام لها.


اصدارات النظام
  1. 4.2
  2. 4.3
  3. 4.5
  4. 4.6
  5. 4.7
  6. 5.0
  7. 6.0
بدأت ظهور الأجهزه التي تدعم اللمس منذ الاصدار 4.7 ويجدر الاشاره الى أنه كسر التوافقيه مع الانظمه السابقه اي انه عليك اعاده ترجمته (Compile) برامجك مرتين لكي تعمل على كلا القسمين من الأنظمة.

Apple iPhone
نظرة عامة
يحتل المرتبه الثالثه في السوق، مطور من قبل شركه Apple وهو نظام مغلق المصدر. يمتاز بشكله الرائع الذي يجذب الناس اليه. يوفر خاصيه اللمس المتعدد. Objective C هي لغه التطوير الوحيده للنظام ونظام Mac OS هو النظام الوحيد الي يمكنك التطوير عليه. لا يمكن للمستخدمين رسميا تحميل البرامج الا من خلال AppStore.


تجدر الاشاره الى أن AppStore هو أول متجر الكتروني يطلق لبيع تطبيقات الهواتف النقاله وهو يعد من أنجح المتاجر الالكترونيه على الاطلاق لذلك تنبهت الكثير من الشركات لهذا الموضوع وسعوا الى انشاء افكار مشابهه ومنهم Nokia, BlackBerry, Android وغيرهم الكثير.

من الملفت للنظر أنه لا يدعم جافا ولا Adobe Flash وهو ما سبب خلافات كبيره بين Sun و Apple وبين Adobe و Apple.

في التاسع من ابريل 2010 قامت Apple بالاعلان عن نظامها الجديد iPhone OS 4.0 ومن أهم المميزات التي سيأتي بها النظام هي ميزه تعدد المهام (Multitasking).



اصدارات النظام
عدد اصدارات النظام مهول جدا, وربما يكون أكثر منصه تشغيل لها هذا العدد من الاصدارات. لمزيد من المعلومات راجع الرابط التالي.

Windows Mobile
نظره عامه
يحتل المرتبه الرابعه في الترتيب, مطور من قبل شركه ميكروسوفت وهو نظام مغلق المصدر. له Store يسمى Windows Market Place for Mobile. في الفتره الأخيره بدأ النظام يفقد حصته شيئا فشيئا، لذلك قامت ميكروسوفت بالاعلان عن Windows Phone 7 في 15 فبراير 2010 ومن المفترض أن يكون النظام الجديد نقله نوعيه وسوف تعتمد عليه في العوده الى السوق بقوه.



من أهم الخصائص التي سيقدمها هو ربطه مع XBox Live. سوف لن يقوم بدعم تعدد المهام مبدئيا ولن يدعم القص واللص ، لكن ميكروسوفت سوف تقوم بدعم هاتان الخاصيتان لاحقا عبر خاصيه التحديث التلقائي للهاتف. سوف يتم التطوير له باستخدام XNA و Silverlight مع ال .NET. سوف لن يسمح النظام الجديد بتنزيل التطبيقات الا من خلال ال Windows Market Place وهي سياسه تشابه سياسه Apple والى الأن لا يوجد الا هاتان الشركتان اللتان تفرضان هذا الشرط.

خيارات التطوير المتاحة
  1. C++, native language
  2. .NET Framework
  3. Qt
  4. JME - CDC
  5. JME - CLDC
  6. JavaFX
  7. Qt
  8. Python
Android
نظره عامة
يحتل المرتبه الخامسه في الترتيب، وهو نظام مفتوح المصدر يدار ويطور من قبل ال Open Handset Alliance وهي منظمه تضم أكثر من 65 شركة. له Store يسمى Android Market ويسمح للمستخدمين بتحميل تطبيقات ال Android. جافا هي لغه التطوير الرئيسه للنظام رغم أنه يمكن كتابه أجزاء من التطبيقات باستخدام C++.





النظام يستخدم نسخة معدله من ال Linux Kernel تم تعديلها من قبل Google. هذه النسخه تختلف عن باقي توزيعات ال Linux بشكل كبير حيث أنها لا تحتوي على native X Window System ولا على جميع مكتبات GNU القياسية، وهذا من شأنه تصعيب عمليه اعاده استخدام تطبيقات ال Linux الحاليه على ال Android.

نظام Android لم يستعمل نسخ الجافا المعروفه من JavaSE أو JavaME وهو ما يمنع التوافقيه بين تطبيقات Android وتطبيقات الجافا الحاليه. Android لم يستخدم من جافا الا طريقه الكتابه أو ما يسمى ال Syntax. هناك امكانيه لرؤيه JavaFX على Android.



هذا المقطع يعرض JavaFX على Android ومنذ ذلك الوقت لم أسمع عن هذا الأمر أي جديد.


التوقعات
  1. Symbian
  2. Android
  3. iPhone
  4. Windows Mobile
  5. BlackBerry

اصدارات النظام
  • Android 1.0
  • Android 1.1
  • Android 1.5
  • Android 1.6
  • Android 2.0
  • Android 2.0.1
  • Android 2.1
أترككم مع هذا العرض لأهم مميزات Android 2.0


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

خيارات التطوير
  • C/C++
  • Qt
  • Java
  • Python
  • Ruby
  • Mono
باختصار يمكن أن تطور عليه كما تطور على توزيعه Linux الاعتياديه. ونتيجه للنجاح الذي لاقته قامت Intel بالتعاون مع Nokia باصدار منصه MeeGo وهي نسخه معدله من Mameo لكي تعمل بكفاءه عاليه على معالجات Intel.



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

بيئات التطوير
  • Objective C
  • Symbian C++
  • C/C++
  • RIM's Java
  • Android's Java
  • Java ME
  • Java FX
  • Qt
Objective C
  • سهوله التعلم: صعبة نسبيا وهي تختلف قليلا عن لغة ال C المعروفة.
  • المنصات الي تعمل عليها: أجهزه ال iPhone وال iPod وال iPad.
  • التوافقيه: لا أعلمها..
  • تكلفه التطوير: الأدوات مجانيه ولكن تحتاج الى حاسوب Mac والى دفع 99$ للحصول على Signing Keys للمطورين.
++Symbian C
  • سهولة التعلم: صعبه نسيبا فهي تختلف عن لغة ++C التي نعرفها قليلا.
  • المنصات التي تعمل عليها: جميع الهواتف التي تعمل باستخدام منصة Symbian.
  • التوافقية: على الأغلب نسخه منفصله لكل سلسله وهناك تغييرات جذريه بسبب الاختلاف الشاسع بين S60 V2 و S60 V3 ووجود اختلاف بين S60 V3 و S60 V5.
  • تكلفة التطوير: هناك أدوات مجانية وأخرى غير مجانية.
C/C++
  • سهولة التعلم: متوسطة, وسهلة بالنسبه لمطوري Win32.
  • المنصات التي تعمل عليها: Windows Mobile, Windows CE وربما مع بعض التعديلات يمكن تشغيلها على هواتف Nokia باستخدام Open C/C++.
  • التوافقيه: على الأغلب نسخه لكل منصة ولكن التغييرات ليست كبيرة في معظم الأحيان.
  • تكلفة التطوير: يوجد أدوات مجانية تعتمد على سطر الأوامر ويمكن استخدام eMbeded VC++ او Visual Studio Standard Edition.
RIM's Java
  • سهولة التعلم: متوسطة.
  • المنصات التي تعمل عليها: أجهزة BlackBerry فقط.
  • التوافقية: نسختان على الأقل واحدة للأجهزة من 4.2.1 الى 4.6 وأخرى للأجهزه من 4.7 وما يليها بسبب عدم التوافقيه بين هذه الأنظمة.
  • تكلفة التطوير: جميع الأدوات مجانية.

Android's Java
  • سهولة التعلم: متوسطة.
  • المنصات التي تعمل عليها: أجهزة Android فقط بسبب ال Dalvik VM.
  • التوافقية: تختلف بحسب البرنامج ربما تحتاج الى نسخة واحده وربما لأكثر من نسخة اذا احتجت لمكتبات توفرها الأنظمة الجديدة, هناك بعض الشكاوى على اختلاف طريقة عمل البرنامج من جهاز لأخر.
  • تكلفة التطوير: جميع الأدوات مجانية.
Java ME
  • سهولة التعلم: متوسطة.
  • المنصات التي تعمل عليها: أكثر من 2.6 مليار جهاز يدعم جافا حتى الربع الرابع من عام 2009.
  • التوافقية: في معظم الاحيان تحتاج الى العديد من النسخ لكي تحصل على أكبر عدد من الأجهزه. باختصار Write once, debug everywhere.
  • تكلفة التطوير: جميع الأدوات مجانية.
Java FX
  • سهولة التعلم: لا أعلمها.
  • المنصات التي تعمل عليها: الحواسيب الشخصية، متصفحات الانترنت، الهواتف النقالة، أجهزة التلفاز، Play Station3، مشغلات ال Blue-ray، حاليا هي تعمل على أنظمه Windows XP, Windows Vista, Mac وهناك نسخة Beta لل Linux. أما في أجهزة الهاتف فهناك نسخة Beta لل Windows Mobile. ربما نراها على Android.
  • التوافقيه: نرجو أن تكون نسخة واحده لكن لا أظن ذلك.
  • تكلفة التطوير: جميع أدوات التطوير مجانية.
Qt
  • سهولة التعلم: لا أعلمها.
  • المنصات التي تعمل عليها: Embeded Linux, Mac OS X, Windows, Linux, Windows CE, Windows Mobile, Symbian, Maemo, MeeGo.
  • التوافقيه: نرجوا أن تكون نسخة واحدة.
  • تكلفة التطوير: أدوات التطوير مجانية.

حسننا لنأخذ الأن وقفه مع المعطيات التي تناولناها. ان أكثر لغة برمجه تغطي أكبر عدد من الأجهزه هي Java ME بلا منازع، فهل هي الخيار الأمثل؟ الجواب بالطبع لا، يوجد العديد من المعطيات التي يجب أخذها بالحسبان فمثلا صحيح أن معظم الأجهزه تدعم Java ME ولكن جزء كبير من هذه الأجهزه هي أجهزه قديمه. كما أن مستخدموا هذه الأجهزه لا يميلون بكثره الى شراء تطبيقات الهاتف النقال بعكس مستخدموا iPhone الذين لا يعيشون دون شراء تطبيقاته ربما فقط من أجل التجربة. Java ME مليئه بالقيود فهي لا تصلح للتعامل مع ال Hardware بشكل مكثف مثل Symbian C++ مثلا. حسنا ماذا عن Symbian C++ ؟ لغه قويه تحررك من قيود Java ME ولكنك سوف تدخل في مشاكل أخرى أولها هي صعوبه اللغه وقله الدعم لها. في الحقيقه هنا في الأردن لا أعرف الى الأن سوى شخص واحد فقط يستطيع عمل برنامج كامل عليها. ثم نتأتي الى مشاكل التوافقيه بين النسخ المختلفه.

حسنا ماذا عن Objective C, Android's Java, RIM's Java ؟ جميع هذه اللغات محصوره في منصات التشغيل التي تعمل عليها فقط ولا تعمل على أي شيء أخر. كنا نتمنى أن تسهل حياتنا كلما تقدم الزمن ولكن الزمن يثبت عكس ذلك، حتى أن Windows Phone 7 سار على نفس الطريق وقرر أن تعمل عليه باستخدام .NET فقط ولا شيء غيرها.

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

نأتي الى أخر خيارين, أدركت Sun أنه يجب عليها استهداف أكبر عدد من المستخدمين ببرامجها ولذلك قررت اطلاق JavaFX اتي تهدف الى توحيد كتابه التطبيقات ليس بين الهواتف فقط وانما بين جميع الأجهزه على اختلافها ان كانت هواتف ام أجهزه تلفاز أم تطبيقات الانترنت وغيرها. لكن بصراحه المشروع يبدو صعب المنال فهي لم تنجح في JavaME كما كان مخططا لها وكان هدفها توحيد التطبيقات على أجهزه الهاتف فقط وظهرت المشاكل على مخلف الأجهزه فكيف ستوحد التطبيقات على كل هذه المنصات في JavaFX. شيء أخر ان نقطه القوه التي ظلت Sun مركزه عليها هو عدد الهواتف التي تدعم JavaME وبخطوه JavaFX هي ببساطه قامت بتصفير العداد لأنه لا يوجد هاتف حالي يدعم JavaME سوف يستطيع ان يدعم JavaFX وانما يمكن ان تظهر على الأجهوة الجديده فقط وهو ما يعني العودة الى نقطه الصفر.

من ناحية أخرى فان Sun أعلنت العام الماضي عن نيتها اطلاق Store خاص بلغة جافا. هذه الخطزة بنظري ربما تقلب بعض الموازين فالمحلات الخاصه ب Apple أو نوكيا هي محلات مقتصره على أجهزة محدده ولكن في Java Store سوف يكون بامكان المطورين بيع برامجهم المكتوبه بلغه جافا بغض النظر عن المنصه التي تعمل عليها هذه البرامج. كما أننا لن ننسى أن Sun سوف تقوم بدفع هذا ال Store عن طريق ال Java Update أي أنه من قبل حتى ظهوره فهو يضمن وجود مليارات المستخدمين عليه لأنهم يملكون جافا على اجهزتهم.



لنأتي الى Qt فهي أيضا تهتم بدعم عدد كبير من المنصات ويمكن عمل برامج عليها تستهدف كل هذه المنصات وهي أسهل من Symbian وأقوى من JavaME أي أنها تمتلك جميع نقاط القوة, النقطة الوحيده التي عليها هي قله عدد أجهزه Nokia التي تعمل عليها وهو ما سيختفي قريبا لأن كل أجهزة Nokia التي تعمل على نظام Symbian سوف يمكنك استهدافها باستخدام Qt من الأن فصاعدا.

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

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

هناك 4 تعليقات:

  1. بصراحة موضوع جميييييييل جدا تستاهل عليه ترقية ;)

    جزاك الله خيرا يا أخي و بوركت

    ردحذف
  2. أهلا بك أخي هويدي، مرورك بموضوعي شرف لي وأشكرك على المجاملة.

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

    ردحذف
  4. السلام عليكم
    ماشاء الله اللهم زد وبارك بصراحه معلومات قيمة جدا قلما نجد مثلها في المواقع العربية وفقكم الله وزادكم علما.

    ردحذف