ستتعلم في هذا الدليل كيفية البدء في تطوير تطبيقات Android، أي تطبيقات الهاتف المحمول على منصة Android Eclipse + SDK. يوجد اليوم العديد من الطرق لتطوير وإنشاء تطبيقات الهاتف المحمول لنظام Android. تفتح الأجهزة المعقدة وأجهزة الكمبيوتر اللوحية ومنصات البرامج المتنوعة (Symbian OS وiOS وWebOS وWindows Phone 7...) مساحة لا نهاية لها للمطورين.
لذا، فإن قائمة التطبيقات للبدء في تطوير تطبيقات الهاتف المحمول لنظام Android ضخمة. ما هي المنصة التي يجب أن تختارها؟ ما هي لغة البرمجة التي يجب أن أتعلمها؟ ما هي مجموعة التطبيقات التي يجب اختيارها لتخطيط المشروع؟ في هذا الدليل، ستتعلم كيفية البدء في تطوير تطبيقات الهاتف المحمول لمنصة Android، وهو نظام التشغيل المفتوح للهواتف المحمولة من Google.
Android عبارة عن منصة مفتوحة تعتمد على Linux kernel. يتم تثبيته على آلاف الأجهزة من مجموعة واسعة من الشركات المصنعة. يوفر Android تطبيقات لجميع أنواع المعدات التي يمكنك تخيلها على شكل أجهزة محمولة حديثة - البوصلات الرقمية وكاميرات الفيديو ونظام تحديد المواقع العالمي (GPS) وأجهزة الاستشعار وغير ذلك الكثير.
تتيح لك أدوات تطوير Android المجانية البدء بسرعة في إنشاء تطبيقات مجانية أو شبه مجانية. عندما تكون مستعدًا لعرض تطبيقك للعالم، يمكنك نشره عبر Android Market. يتطلب النشر في Android Market رسم تسجيل لمرة واحدة (25 دولارًا في وقت كتابة هذا التقرير)، وعلى عكس متجر تطبيقات Apple (الذي يتشدد بشدة فيما يتعلق بالمؤهلات)، يجعل تطبيقك متاحًا للتنزيل والشراء بعد مراجعة سريعة - ما لم التطبيق يكسر القواعد والقانون.
فيما يلي بعض الميزات الأخرى في Android SDK التي تقدم فوائد لك كمطور:
كفى كلامًا - فلنبدأ في تطوير تطبيقات Android!
قبل أن تبدأ في كتابة تطبيقات لنظام Android، تحتاج إلى تنزيل SDK لمنصة Android. تحتوي كل منصة على نسختها الخاصة من Android SDK، والتي يتم تثبيتها على أجهزة المستخدمين. بالنسبة للإصدار Android 1.5 والإصدارات الأحدث، هناك منصتان: Android Open Source Project وGoogle.
يعد مشروع Android مفتوح المصدر نظامًا أساسيًا مفتوح المصدر، ولكنه لا يتضمن ملحقات Google مثل خرائط Google. إذا كنت لا ترغب في استخدام Google API، فلن تكون وظيفة خرائط Google متاحة لتطبيقك. ما لم يكن لديك سبب محدد للقيام بذلك، فإنني أوصي بأن تستهدف إحدى منصات Google، حيث سيسمح لك ذلك باستخدام امتدادات Google الخاصة.
بمجرد تنزيل كل شيء بنجاح، تكون جاهزًا لبدء التطوير لنظام Android.
يساعدك Eclipse New Project Wizard على إنشاء تطبيق Android عن طريق إنشاء ملفات وأكواد جاهزة للتشغيل على يمين الكتلة. هذه طريقة سريعة للتأكد من أنها تعمل ونقطة انطلاق جيدة عند البدء في تطوير التطبيقات:
بعد النقر فوق "إنهاء"، سيقوم Eclipse بإنشاء مشروع Android جديد، جاهز للتشغيل والتطوير على Android. هل تتذكر عندما طلبت من Eclipse إنشاء نشاط يسمى BrewClockActivity؟ هذا هو الرمز الذي يستخدمه Android بالفعل لتشغيل التطبيق. سيتم عرض الكود الذي تم إنشاؤه كرسالة بسيطة بنمط "Hello World".
اسم الحزمة هو معرف لتطبيقك. عندما يحين وقت نشر النتيجة في Android Market، سيتم استخدام هذا المعرف لتتبع تحديثات التطبيق، لذلك من المهم التأكد من أن هذا المعرف فريد. على الرغم من أننا نستخدم الاسم com.example.brewclock هنا، إلا أنه بالنسبة للتطبيق الحقيقي، سيكون من الأفضل اختيار شيء مثل com.yourcompanyname.yourapplication.
إصدار Min SDK (الاسم يتحدث عن نفسه) هو الإصدار الأقدم من Android الذي سيتم تشغيل التطبيق عليه. مع كل إصدار جديد لنظام Android، تضيف SDK أساليب مختلفة وتغيرها. عند تحديد إصدار SDK، يعرف Android (وAndroid Market) أن تطبيقك سيعمل فقط على الأجهزة التي تعمل بإصدار نظام Android الأساسي المحدد والإصدارات الأحدث.
الآن دعونا نحاول تشغيل تطبيقنا في Eclipse. نظرًا لأن هذا هو التشغيل الأول، فسوف يسألك Eclipse عن نوع المشروع الذي تعمل معه:
سيحاول Eclipse تشغيل التطبيق على جهاز Android. ومع ذلك، في هذه المرحلة، ليس لديك أي أجهزة تعمل بنظام Android، لذلك لن يتم تشغيل المشروع وسيُطلب منك إنشاء جهاز Android افتراضي جديد (AVD).
يحاكي جهاز Android الظاهري (AVD) بيئة Android، سواء كان هاتفًا محمولاً أو كمبيوترًا لوحيًا. يمكنك إنشاء العدد الذي تريده من أجهزة AVD، باستخدام إصدارات مختلفة من نظام التشغيل Android. لكل AVD، يمكنك تكوين معلمات الجهاز المختلفة، مما يشير إلى وجود لوحة مفاتيح فعلية، ودعم GP، ودقة الكاميرا، وما إلى ذلك.
قبل تشغيل التطبيق، يجب عليك إنشاء أول جهاز AVD خاص بك باستخدام Platform SDK (Google API, 1.6).
دعونا نفعل ذلك الآن:
حاول تشغيل التطبيق مرة أخرى (Ctrl + F11). سيقوم Eclipse الآن بإنشاء مشروعك وإطلاق AVD جديد. تذكر أن AVD يحاكي بيئة Android تمامًا، ولا يتعين عليك حتى ملاحظة عملية التمهيد البطيئة إلى حد ما كما هو الحال مع جهاز حقيقي. لهذا السبب، بمجرد أن يصبح AVD جاهزًا للعمل، فمن الأفضل إبقاء النافذة مفتوحة أثناء الانتهاء من البرمجة طوال اليوم.
إحدى الخطوات الأولى لإنشاء أي برنامج على الإطلاق هي تصميم واجهة المستخدم. إليك رسمًا قصيرًا لتطبيقنا:
سيتمكن المستخدم من ضبط وقت الغليان بالدقائق باستخدام الزرين + و-. عندما يضغط على ابدأ، سيبدأ الوقت في العد التنازلي لعدد الدقائق المحدد. إذا قام المستخدم بإلغاء عملية الغليان بالضغط على الزر مرة أخرى، فسيتم زيادة الوقت عندما يصل المؤقت إلى 0.
يمكن العثور على واجهة مستخدم Android، أو السطح، الموضح في وثائق XML، في مجلد res/layouts. تم الإعلان عن كود القالب، الذي تم إنشاؤه بالفعل بواسطة Eclipse، في res/layouts/main.xml، وكما لاحظت، فهو قيد التشغيل بالفعل في المحاكي.
يمتلك Eclipse أداة تخطيط خاصة به تتيح لك إنشاء واجهة سحب وإفلات عبر الشاشة. ومع ذلك، في بعض الأحيان يكون من الأسهل كتابة الواجهة بتنسيق XML واستخدام تخطيط رسومي لمعاينة النتائج.
دعونا نفعل ذلك الآن عن طريق تغيير main.xml وفقًا للرسم أعلاه:
الآن لنغير محتويات ملف main.xml إلى ما يلي:
# /res/layouts/main.xml
كما ترون، هناك الكثير من الملفات في Android XML، ولكن هذا سيسمح لك بالتحكم في كل عنصر تقريبًا على الشاشة.
إحدى أهم عناصر واجهة المستخدم في Android هي حاويات التخطيط، مثل LinearLayout المستخدم في هذا المثال. هذه العناصر غير مرئية للمستخدم، ولكنها تعمل كحاويات لعناصر أخرى مثل Buttons وTextViews.
هناك عدة أنواع من تخطيطات التخطيط، يستخدم كل منها لإنشاء أنواع مختلفة من التخطيطات. مثل LinearLayout وAbsoluteLayout، يسمح TableLayout بواجهة قائمة على الشبكة. يمكنك قراءة المزيد حول هذا الأمر في قسم تخطيط الكائن العام في وثائق API.
بعد حفظ التخطيط، حاول تشغيل التطبيق في المحاكي بالضغط على Ctrl + F11، أو انقر فوق أيقونة التشغيل في Eclipse. الآن، بدلاً من رسالة "Hello World"، سترى أن Android يعرض الآن واجهة التطبيق.
إذا قمت بالضغط على أي زر فسوف تضيء كما هو متوقع، ولكن لا تفعل أي شيء آخر غير ذلك. لنواصل كتابة التعليمات البرمجية باتباع واجهة التخطيط:
# /src/com/example/brewclock/BrewClockActivity.java ... import android.widget.Button; import android.widget.TextView; تعمل الفئة العامة BrewClockActivity على توسيع النشاط ( /** الخصائص **/ زر محمي لـ BrewAddTime؛ محمي لزر BrewDecreaseTime؛ محمي Button startBrew؛ محمي TextView BreCountLabel؛ محمي TextView BrewTimeLabel؛ ...)
بعد ذلك، سنقوم بتغيير استدعاء onCreate. تحدث هذه المكالمة عند تشغيل تطبيق ما على نظام Android. في التعليمات البرمجية التي تم إنشاؤها بواسطة Eclipse، يقوم onCreate بإنشاء عرض نشاط على R.layout.main. هذا هو سطر التعليمات البرمجية الذي يخبر Android بفك تشفير تخطيط مستند XML وعرضه للمستخدم.
في Android، يعد R كائنًا خاصًا يتم إنشاؤه تلقائيًا لتوفير الوصول إلى موارد مشروعك (التخطيطات والصفوف والقوائم والأيقونات...) داخل التعليمات البرمجية. يتم تعيين معرف خاص لكل مورد. في ملف التخطيط (أعلاه) هذه هي سمات @+id XML. سنستخدمها لربط الأزرار وTextViews في تخطيطنا:
# /src/com/example/brewclock/BrewClockActivity.java ... الطبقة العامة BrewClockActivity يمتد النشاط ( ... public void onCreate(Bundle saveInstanceState) ( super.onCreate(savedInstanceState); setContentView(R.layout.main); / / ربط عناصر الواجهة بالخصائص BrewAddTime = (Button) findViewById(R.id.brew_time_up); BreweDecreaseTime = (Button) findViewById(R.id.brew_time_down); startBrew = (Button) findViewById(R.id.brew_start); ) findViewById(R.id.brew_count_label); BrewTimeLabel = (TextView) findViewById(R.id.brew_time)) )
لاكتشاف وقت الضغط على الأزرار، نحتاج إلى الاستماع إليها. قد تكون على دراية بمستمعي رد الاتصال، أو عمليات الاسترجاعات، من أطر عمل أخرى مثل Javascript/JQuery أو Rails.
يوفر Android آلية مماثلة من خلال توفير واجهات المستمع، مثل OnClickListener، التي تحدد الأساليب التي سيتم تشغيلها عند وقوع حدث ما. ستقوم واجهة OnClickListener بإخطار تطبيقك عندما ينقر المستخدم على الشاشة أو زر معين. بالإضافة إلى ذلك، يجب عليك إخبار كل زر عن ClickListener:
# /src/com/example/brewclock/BrewClockActivity.java ... // تأكد من عدم الاستيراد // `android.content.dialoginterface.OnClickListener`. import android.view.View.OnClickListener; الطبقة العامة BrewClockActivity توسع النشاط تنفذ OnClickListener ( ... public void onCreate(Bundle saveInstanceState) ( ... // إعداد ClickListeners BrewAddTime.setOnClickListener(this); BrewDecreaseTime.setOnClickListener(this); startBrew.setOnClickListener(this); ) .. public void onClick(View v) ( // TODO: أضف كودًا للتعامل مع نقرات الأزرار ) .
بعد ذلك، سنضيف رمزًا يتعامل مع كل نقرة من الأزرار. سنضيف أيضًا أربع خصائص نشاط جديدة تسمح للمستخدم بتعيين وتتبع أوقات التخمير: عدد مرات التحضير التي تم إعدادها وما إذا كان الموقت قد بدأ أم لا.
# /src/com/example/brewclock/BrewClockActivity.java ... الطبقة العامة BrewClockActivity توسع النشاط تنفذ OnClickListener ( ... protected int BrewTime = 3; protected CountDownTimer BrewCountDownTimer; protected int BrewCount = 0; protected boolean isBrewing = false; . .. public void onClick(View v) ( if(v == BrewAddTime) setBrewTime(brewTime + 1); else if(v == BrewDecreaseTime) setBrewTime(brewTime -1); else if(v == startBrew) ( if( isBrewing) stopBrew(); else startBrew();
لاحظ أننا نستخدم فئة CountDownTimer التي يوفرها Android. وهذا يجعل من السهل إنشاء وتشغيل عداد بسيط وتلقي الإشعارات على فترات منتظمة مع تقدم العد التنازلي. ستستخدم هذا في طريقة startBrew، اقرأ عنها أدناه.
الطرق التالية هي نماذج لسلوك شريط التمرير الخاص بضبط وقت الطهي وبدء الطهي وإيقافه وكذلك العداد. نقوم أيضًا بتهيئة خصائص BrewTime وbrewCount في onCreate.
سيكون من الممارسات الجيدة نقل هذا الرمز إلى فئة نموذج منفصلة، ولكن للتبسيط، سنضيف الرمز إلى BrewClockActivity:
# /src/com/example/brewclock/BrewClockActivity.java ... public class BrewClockActivity يمتد النشاط بتنفيذ OnClickListener ( ... public void onCreate(Bundle saveInstanceState) ( ... // تعيين قيم الشراب الأولية setBrewCount(0 ); setBrewTime(3); /** * قم بتعيين قيمة مطلقة لعدد دقائق التحضير * ليس له أي تأثير إذا كان المشروب قيد التشغيل حاليًا * @param Minutes عدد الدقائق اللازمة للتحضير (عدد الدقائق) (إذا كان (isBrewing) يعود؛ BrewTime = دقائق؛ if(brewTime< 1) brewTime = 1; brewTimeLabel.setText(String.valueOf(brewTime) + "m"); } /** * Set the number of brews that have been made, and update * the interface. * @param count The new number of brews */ public void setBrewCount(int count) { brewCount = count; brewCountLabel.setText(String.valueOf(brewCount)); } /** * Start the brew timer */ public void startBrew() { // Create a new CountDownTimer to track the brew time brewCountDownTimer = new CountDownTimer(brewTime * 60 * 1000, 1000) { @Override public void onTick(long millisUntilFinished) { brewTimeLabel.setText(String.valueOf(millisUntilFinished / 1000) + "s"); } @Override public void onFinish() { isBrewing = false; setBrewCount(brewCount + 1); brewTimeLabel.setText("Brew Up!"); startBrew.setText("Start"); } }; brewCountDownTimer.start(); startBrew.setText("Stop"); isBrewing = true; } /** * Stop the brew timer */ public void stopBrew() { if(brewCountDownTimer != null) brewCountDownTimer.cancel(); isBrewing = false; startBrew.setText("Start"); } ... }
تقوم الأجزاء الخاصة بـ Android فقط من هذا الرمز بإنشاء تعيينات تسمية باستخدام طريقة setText. في startBrew، نقوم بإنشاء وتشغيل CountDownTimer لبدء العد التنازلي ثانية بثانية عند انتهاء عملية التخمير/الغليان. لاحظ أننا نقوم بتعريف مستمعي CountDownTimer (onTick وonFinish). سيتم استدعاء onTick كل 1000 مللي ثانية (ثانية واحدة)، بينما سيتم استدعاء onFinish عندما يصل المؤقت إلى الصفر.
لإبقاء هذا البرنامج التعليمي لتطوير Android بسيطًا، قمت عن عمد باستخدام التصنيفات مباشرة في الكود (على سبيل المثال، "Brew Up!"، "Start"، "Stop"). هذه في الواقع ليست ممارسة جيدة، لأنها تجعل من الصعب العثور على هذه السلاسل وتغييرها في المشاريع الكبيرة.
يوفر Android طريقة رائعة لإبقاء سلاسلك النصية منفصلة عن رمز كائن R الخاص بك. يسمح لك R بتعريف كافة سلاسل التطبيق في ملف XML (res/values/strings.xml)، والذي يمكن الوصول إليه في التعليمات البرمجية عبر رابط. على سبيل المثال:
# /res/values/strings.xml
الآن إذا كنت تريد تغيير Brew Up! شيء آخر، تحتاج إلى تغييره مرة واحدة في ملف strings.xml. إذا كان تطبيقك يحتوي على العشرات من ملفات التعليمات البرمجية، فإن وجود تسميات في مكان واحد أمر منطقي جدًا!
لقد انتهينا من كتابة الكود، وحان الوقت "لتجربة" التطبيق. اضغط على "Run" أو Ctrl + F11 لتشغيل BrewClock في المحاكي. إذا سار كل شيء على ما يرام، فسترى واجهة الإعداد وستكون جاهزًا لتحضير الشاي! حاول ضبط أوقات تحضير مختلفة واضغط على ابدأ للعد التنازلي.
في هذه المقدمة القصيرة لتطوير Android، قمت بتنزيل وتثبيت Android SDK والمكون الإضافي Eclipse Android Development Tools (ADT). لقد قمت بإعداد محاكي أو جهاز افتراضي لاختبار تطبيقاتك. لقد قمت أيضًا بإنشاء تطبيق Android يعمل والذي سلط الضوء على عدد من المفاهيم الأساسية , والتي ستستخدمها عند تطوير تطبيقات Android المستقبلية.
نأمل أن يثير هذا شهيتك لإنشاء تطبيقات الهاتف المحمول والتجربة في هذا المجال المثير. يوفر Android طريقة رائعة لكتابة التطبيقات لمجموعة من الأجهزة المحمولة الحالية والمستقبلية. إذا كنت قد كتبت بالفعل تطبيقًا صالحًا لهذه المنصة، فلا تنس إخبارنا بذلك في التعليقات!
كيف ولماذا لإنشاء تطبيق للهاتف المحمول. لا يعد تطبيق الهاتف المحمول مجرد أداة للتواصل والحصول على المعلومات الضرورية أو وسيلة لقضاء وقت الفراغ، ولكنه أيضًا فرصة لكسب المال والحفاظ على الصورة والقيام بأنشطة فعالة. مع الحد الأدنى من الاستثمار أو مجانًا تمامًا، يمكنك إنشاء تطبيقات الهاتف المحمول التي تلبي احتياجات المستهلك وهي في الأساس متصفح الهاتف المحمول الخاص بك الذي يفتح موقع الويب الخاص بك فقط.
ولادة أي منتج تبدأ بفكرة إنشائه. يبني المبدع الفكرة على ما هو أكثر دراية به. فكر في اهتماماتك وهواياتك. إذا كنت تسافر كثيرًا أو تزور أماكن عامة مختلفة في مدينتك، فلماذا لا تنشئ تطبيقًا يعتمد على هذه المعرفة؟ أنشئ تطبيقات لحساب السعرات الحرارية وتطبيقات رياضية إذا كانت لديك خبرة وثيقة في علم التغذية أو الرياضة. إذا كنت مهتمًا دائمًا بعلم التنجيم، فيمكنك إنشاء تطبيق مخطط النجوم.
تكتسب تطبيقات الهاتف المحمول زخمًا كل يوم، ووفقًا لبعض التوقعات، يمكنها أن تحل محل متصفحات الإنترنت ومواقع الويب تمامًا.
حاول التفكير خارج الصندوق والتوصل إلى فكرة ليس لها منافسين، أو على العكس من ذلك، قم بتحليل أفكار مماثلة وإنشاء تطبيق سيكون أفضل وأكثر ملاءمة وأكثر فائدة للمستخدمين.
يتم استخدام متصفحات الهاتف المحمول والويب من قبل كل مستهلك لحركة مرور الهاتف المحمول تقريبًا. يتضمن ذلك جميع أنواع الخرائط والملاحة والألعاب وخدمات معالجة الصور عبر الإنترنت والمكتبات وأماكن تخزين المعلومات والأخبار ومشغلات الموسيقى وبرامج مشاهدة الفيديو وغير ذلك الكثير. . يمكن للبرنامج الذي تم إنشاؤه للاستخدام على الهاتف المحمول أو الهاتف الذكي أن يكون مدفوعًا أو مجانيًا، وينقسم أيضًا إلى أنواع، اعتمادًا على المهام التي يتم حلها:
إذا لم تكن Euroset أو Megafon، أو بوابة الإنترنت AliExpress، فقد ترغب في كسب المال عن طريق إنشاء التطبيق الخاص بك. أسهل طريقة هي إنشاء تطبيق مدفوع. ولكن هنا عليك أن تسأل نفسك بعض الأسئلة:
فقط من خلال حساب عدد المستخدمين الذين من المحتمل أن يكونوا مهتمين بتطبيقك بشكل صحيح، يمكنك حساب المبلغ التقريبي الذي يمكنك كسبه.
خيارات تحقيق الدخل الأخرى:
لديك فكرة، ولكن ليس لديك خبرة في البرمجة، فالخيارات التالية تناسبك:
الأرخص لا يعني السوء، لكنه يعني المزيد من المخاطرة: يمكنهم أن يقدموا لك طلبًا ممتازًا، ولكن قد تحصل أيضًا على موظف عديم الضمير.
تعتمد تكلفة تطوير التطبيق على نوعه، وتختلف بشكل كبير حسب رغبات العميل ويمكن أن تتراوح من 2.5 ألف إلى 10 ملايين روبل. أغلى التطبيقاتكقاعدة عامة، تعد من أكثر الكتب مبيعًا لفترات طويلة من الزمن.
لمعرفة التكلفة التقريبية لتطوير تطبيقك، يمكنك الانتقال إلى موقع howmuchtomakeanpp.com. لا تتردد في تقسيم السعر الناتج على 3 ومعرفة تكلفة الشركات المصنعة الروسية. يمكنك الاطلاع على أمثلة للطلبات المكتملة وتكاليفها على موقع Crew.co.
إذا كان لديك الحد الأدنى من مهارات البرمجة على الأقل، فيمكن لمصممي تطبيقات الهاتف المحمول عبر الإنترنت مساعدتك. انتبه فيها إلى النظام الذي يتم كتابة تطبيق الهاتف المحمول من أجله، على سبيل المثال، لأجهزة iPhone أو Nokia Corporation، Android، Java. النظام الأكثر شعبية هو أندرويد. تشبه خوارزمية إنشاء تطبيق جوال خوارزمية إنشاء مواقع الويب. لكن ضع في اعتبارك على الفور أنه إذا كنت ترغب في إنشاء شيء فريد من نوعه إلى أعلى درجة، فإن تطويرك سيتطلب إما المال أو استثمارًا جادًا للوقت.
إذا اقتربت من تطوير تطبيقك بشكل صحيح: ادرس العروض الشائعة في السوق، وأنشئ منتجًا يثير اهتمام عامة الناس، واستخدم التطبيقات لأنظمة تشغيل مختلفة - يمكنك كسب حوالي 100000 دولار شهريًا.
أظهرت دراسة أجرتها Giga OM Pro أن ما يقرب من نصف مطوري تطبيقات الهاتف المحمول الذين شملهم الاستطلاع لا يكسبون أكثر من 200 دولار شهريًا. ؟ أولاً، عليك أن تقرر ما الذي ستستثمره في المشروع: الوقت أو المال.
إذا كنت تخشى الثقة بالمطورين، ولا تريد الاعتماد عليهم ودفع الكثير مقابل الدعم وتحديث البرنامج، فقم بإنشاء التطبيق بنفسك.
باستخدام المصممين على الانترنتمن الممكن حقًا إنشاء تطبيقات جوال وظيفية وعالية الجودة. وفي المستقبل، ينبغي الإعلان عنها ونشرها على Google Play وAppStore. تولد عمليات شراء التطبيقات دخلاً أقل بنسبة 25% من عمليات الشراء داخل التطبيق، وفقًا لأبحاث شركة Apple، ولكنها تزيد بنسبة 30% عن الإعلانات داخل التطبيق وغيرها من الطرق لكسب المال.
يزدهر سوق تطبيقات الأجهزة المحمولة، لذا حان الوقت لتكون جزءًا منه. أصبحت التطبيقات الآن منتشرة في كل مكان وتؤدي عددًا غير محدود من الوظائف. قبل بضع سنوات، كان إنشاء تطبيق يعني تعلم لغات برمجة معقدة، حيث كان عليك البدء عمليًا من الصفر. مع تطور تكنولوجيا التطبيقات، ظهرت أدوات جديدة تسمح لأي شخص بإنشاء تطبيق كامل الوظائف في دقائق معدودة. لمعرفة كيفية القيام بذلك، تابع القراءة.
الجزء 1
تصميم التطبيقتحديد الغرض من التطبيق.يركز التطبيق الجيد على هدف واحد ويحسنه. تحديد الحاجة التي سوف يلبيها طلبك. سيساعدك هذا على تحديد الجمهور المستهدف، بالإضافة إلى الوظائف المطلوبة.
قم بعمل بعض الرسومات.تعتمد حياة التطبيق وموته على تصميمه وسهولة استخدامه. اقض بعض الوقت في إنشاء بعض الرسومات التخطيطية لما ستبدو عليه كل نافذة في تطبيقك. استخدم الأسهم لإظهار التحولات من نافذة إلى أخرى.
ألق نظرة على تطبيقات أخرى مماثلة.انتقل إلى متجر Google Play وابحث عن تطبيقات مشابهة لما تحاول تحقيقه. حاول أن تفهم ذلك واكتشف ما الذي ينجح وما الذي لا ينجح. لا تخف من استعارة أفكار التصميم والإلهام من التطبيقات الناجحة.
الجزء 2
اختيار البرمجياتعرض تجريبي لكل خدمة.توفر معظم برامج بناء التطبيقات الشائعة عروضًا توضيحية يمكن أن تعطيك فكرة عن كيفية عمل البرنامج. بفضلهم، يمكنك فهم ما إذا كان التطبيق مناسبًا لاحتياجاتك.
جرب عدة برامج مختلفة.تحتوي معظم البرامج المذكورة أعلاه على إصدارات مجانية أو تجريبية. استخدمها لمراجعة كل برنامج والعثور على البرنامج الذي يناسب احتياجاتك ومهاراتك.
الجزء 3
إنشاء التطبيق الخاص بكقم بتسجيل الدخول إلى البرنامج الذي تختاره.ستتطلب منك جميع برامج إنشاء التطبيقات تقريبًا التسجيل قبل أن تتمكن من البدء. يمكنك تنزيل البرامج الضرورية أو إنشاء البرامج بالكامل من خلال الموقع الإلكتروني.
ابدأ مشروعًا جديدًا.بمجرد زيارة صفحة الأدوات أو تنزيل البرنامج، ستحتاج إلى بدء مشروع جديد. تختلف العملية من برنامج إلى آخر، ولكنها تتضمن عادةً تسمية التطبيق الخاص بك وإضافة وصف.
اختر موضوعا.قبل البدء في إنشاء تطبيق، ستطلب منك معظم برامج التطوير تعيين سمة أساسية ولوحة ألوان. يمكنك تغيير هذا الإعداد لاحقًا، عندما يكون التطبيق في مرحلة الإنشاء بالفعل.
ضبط تنسيق كل نافذة.بمجرد إضافة بعض الميزات إلى تطبيقك، خذ الوقت الكافي لتخطيط كل نافذة حتى يتمتع تطبيقك بمظهر متماسك. يجب أن يكون شريط العنوان في نفس المكان، ويجب أن يظهر المحتوى في الأجزاء المناسبة من الشاشة.
حدد الرموز لوظائفك.يمكنك تعيين رموز لكل وظيفة من وظائف التطبيق الخاص بك. يمكنك الاختيار من مكتبة الأيقونات التي تأتي مع العديد من البرامج، أو يمكنك تصميم وتحميل أيقونة خاصة بك. ستساعد الرموز الجيدة في جعل تطبيقك مميزًا وتساهم في المظهر العام للتطبيق.
إن تعلم لغة جديدة وبيئة التطوير هو الحد الأدنى المطلوب منك إذا كنت تريد كتابة أول تطبيق للهاتف المحمول الخاص بك. سيستغرق الأمر أسبوعين على الأقل لرسم قائمة المهام الأساسية لنظام Android أو iOS دون نسخ المثال من الكتاب. لكن لا يمكنك إتقان Objective-C أو Java وما زال بإمكانك تطوير تطبيقات للهواتف الذكية بسرعة إذا كنت تستخدم تقنيات مثل PhoneGap.
إذا كنت قد درست بعناية الابتكارات التي تنتظرنا في نظام التشغيل Windows 8، فربما لاحظت أنه سيكون من الممكن تطوير التطبيقات في HTML5 بموجبه. الفكرة، في الواقع، ليست جديدة - فالتقنيات التي تطبق نفس النهج على منصات الهاتف المحمول تتطور بسرعة فائقة. أحد هذه الأطر، والذي يسمح لك بتطوير تطبيقات للهواتف الذكية باستخدام مجموعة من HTML وJavaScript وCSS المألوفة!، هو PhoneGap. التطبيق المكتوب بمساعدته مناسب لجميع الأنظمة الأساسية الشائعة: iOS وAndroid وWindows Phone وBlackberry وWebOS وSymbian وBada. لن تحتاج إلى معرفة تفاصيل البرمجة لكل منصة (على سبيل المثال، Objective-C في حالة iOS)، أو التعامل مع واجهات برمجة التطبيقات وبيئات التطوير المختلفة. كل ما تحتاجه لإنشاء تطبيق جوال متعدد المنصات هو معرفة HTML5 وواجهة برمجة تطبيقات PhoneGap الخاصة. في هذه الحالة، لن يكون الإخراج عبارة عن صفحة HTML غبية "مؤطرة" في واجهة التطبيق، لا! تتيح لك واجهة برمجة التطبيقات (API) الخاصة بالإطار استخدام جميع إمكانيات الهاتف تقريبًا المستخدمة عند التطوير باستخدام الأدوات الأصلية: الوصول إلى مقياس التسارع والبوصلة والكاميرا (تسجيل الفيديو والتصوير الفوتوغرافي) وقائمة جهات الاتصال ونظام الملفات ونظام الإشعارات (الإشعارات القياسية على الهاتف) والتخزين وما إلى ذلك. وأخيرًا، يمكن لمثل هذا التطبيق الوصول بسهولة إلى أي عنوان عبر النطاق. يمكنك إعادة إنشاء عناصر التحكم الأصلية باستخدام أطر عمل مثل jQuery Mobile أو Sencha، وسيبدو البرنامج النهائي وكأنه مكتوب باللغة الأصلية (أو تقريبًا) على هاتف محمول. من الأفضل توضيح ما سبق عمليًا، أي كتابة طلب، لذلك أقترح عليك البدء في التدرب على الفور. تتبع الوقت - لن يستغرق الأمر أكثر من نصف ساعة لفعل كل شيء.
لنأخذ نظام التشغيل iOS كمنصة مستهدفة - نعم، نعم، الأموال موجودة في AppStore، وفي الوقت الحالي من الأفضل تحقيق الدخل من تطوراتك هناك :). لكن اسمحوا لي أن أوضح الأمر على الفور: نفس الشيء، دون تغييرات، يمكن القيام به، على سبيل المثال، لنظام Android. لقد فكرت لفترة طويلة في المثال الذي يجب مراعاته، لأنني لم أرغب في كتابة أداة أخرى لتتبع قائمة المهام. لذلك قررت إنشاء تطبيق يسمى "Geographic Reminder"، وهو برنامج ملاحي يمكن وصف غرضه في عبارة واحدة: "أخبرني عندما أكون هنا مرة أخرى". يحتوي AppStore على العديد من الأدوات المساعدة التي تتيح لك "تذكر" المكان الذي أوقف فيه المستخدم السيارة. إنه نفس الشيء تقريبًا، فقط أبسط قليلاً. يمكنك الإشارة إلى نقطة ما على خريطة المدينة، وتعيين نصف قطر معين لها، وبرمجة رسالة. في المرة التالية التي تقع فيها داخل الدائرة ذات نصف القطر المحدد، سيقوم التطبيق بإعلامك وسيتم حذف النقطة. سنمضي وفقًا لهذه الخطة: أولاً سنقوم بإنشاء تطبيق ويب بسيط، واختباره في المتصفح، ثم نقله إلى نظام iOS باستخدام PhoneGap. من المهم جدًا إنشاء نموذج أولي واختبار الجزء الأكبر من التعليمات البرمجية في متصفح على جهاز كمبيوتر، نظرًا لأن تصحيح أخطاء التطبيق على الهاتف أكثر صعوبة. سنستخدم إطار عمل jQuery JS مع jQuery Mobile (jquerymobile.com) كإطار عمل، وGoogle Maps v3 كمحرك الخرائط. سيتكون التطبيق من صفحتين: خريطة وقائمة النقاط.
بالطبع، jQuery Mobile ليس الإطار الوحيد لإنشاء واجهة الهاتف المحمول. يحتوي موقع PhoneGap على قائمة ضخمة من المكتبات وأطر العمل التي يمكنك استخدامها (phonegap.com/tools): Sencha Touch، وImpact، وDojo Mobile، وZepto.js، وما إلى ذلك.
سأشرح على الفور سبب استخدامنا لـ jQuery Mobile. تزودنا مكتبة JS هذه بعناصر واجهة تطبيقات الهاتف المحمول الجاهزة (أقرب ما يمكن إلى العناصر الأصلية) لمجموعة متنوعة من الأنظمة الأساسية. نريد أن تكون النتيجة تطبيقًا للهاتف المحمول، وليست صفحة من المتصفح! لذا قم بتنزيل أحدث إصدار من JQuery Mobile (jquerymobile.com/download) وانقل ملفات التطبيق الأولى التي نحتاجها إلى مجلد العمل:
من الضروري جعل الموارد محلية في الغالب حتى لا يضيع المستخدم الإنترنت عبر الهاتف المحمول في المستقبل. الآن نقوم بإنشاء إطار الصفحة في ملف Index.html. يصف الكود أدناه الجزء العلوي من الصفحة مع الخريطة، ونقش "التذكير الجغرافي" وزر "النقاط".
صفحة الخريطة
تعد سمة الصفحة data-dom-cache = "true" ضرورية لضمان عدم إلغاء تحميلها من الذاكرة. يستخدم زر النقاط data-transition="pop" بحيث يتم فتح صفحة قائمة النقاط بتأثير النافذة المنبثقة. يمكنك قراءة المزيد حول كيفية تنظيم صفحات jQuery Mobile في دليل جيد (bit.ly/vtXX3M). وقياسا على ذلك، نقوم بإنشاء صفحة تحتوي على قائمة النقاط:
صفحة قائمة النقاط
بالنسبة لزر "الخريطة"، سنكتب أيضًا data-transition="pop"، لكننا سنضيف سمة data-direction="reverse" بحيث تفتح صفحة "Map" بتأثير "Fade". سنكتب نفس السمات في قالب النقطة. هذا كل شيء، إطارنا جاهز.
نحتاج الآن إلى عرض الخريطة، والتي سنستخدم من أجلها واجهة برمجة تطبيقات خرائط Google القياسية، والتي تستخدمها ملايين المواقع المختلفة:
var latLng = new gm.LatLng(this.options.lat, this.options.lng); this.map = new gm.Map(element, ( Zoom: this.options.zoom, // حدد مركز التكبير الأولي: latLng, // قم بتعيين المركز الأولي MapTypeId: gm.MapTypeId.ROADMAP, // الخريطة العادية DisableDoubleClickZoom: صحيح، // تعطيل التكبير التلقائي عن طريق النقر / النقر المزدوج على DisableDefaultUI: true // تعطيل جميع عناصر الواجهة ));
هنا Gm هو متغير يشير إلى كائن خرائط Google. لقد علقت على معلمات التهيئة جيدًا في الكود. الخطوة التالية هي رسم علامة رجل على الخريطة:
This.person = new gm.Marker(( الخريطة: this.map, icon: new gm.MarkerImage(PERSON_SPRITE_URL, new gm.Size(48, 48)) ));
يتم استخدام عنوان كائن الشخص من صور Google البانورامية كـ PERSON_SPRITE_URL. عنوانه الثابت هو Maps.gstatic.com/mapfiles/cb/mod_cb_scout/cb_scout_sprite_api_003.png . سيقوم المستخدم بإضافة نقاط من خلال النقر على الخريطة، لذلك لرسمها سنستمع إلى حدث النقر:
Gm.event.addListener(this.map, "click", function (event) ( self.requestMessage(function (err, message) ( // الطريقة التي تُرجع النص الذي أدخله المستخدم if (err) return; // الطريقة يضيف نقطة إلى قائمة النقاط النشطة ويرسمها على الخريطة self.addPoint(event.latLng, self.options.radius, message); self.updatePointsList(); خطأ شنيع)؛
أقدم معظم التعليمات البرمجية - ابحث عن الباقي على القرص. بعد ذلك نحتاج إلى تعليم التطبيق كيفية تحريك أيقونة المستخدم على الخريطة. في النموذج الأولي، نستخدم Geolocation API (الذي يستخدم أيضًا في متصفحات سطح المكتب):
إذا (navigator.geolocation) ( // تحقق مما إذا كان المتصفح يدعم وظيفة تحديد الموقع الجغرافي gpsSuccess(pos) ( var lat, lng; if (pos.coords) ( lat = pos.coords.latitude; lng = pos.coords.longitude; ) else ( lat = pos.latitude; lng = pos.longitude; ) self.movePerson(new gm.LatLng(lat, lng)); // انقل رمز المستخدم ) // كل ثلاث ثوانٍ نطلب الموضع الحالي لـ نافذة المستخدم.setInterval (وظيفة () ( // طلب الموقع الحالي navigator.geolocation.getCurrentPosition(gpsSuccess, $.noop, ( EnableHighAccuracy: true,maximAge: 300000 )); , 3000);
يستخدم الأسلوب movePerson إجراء getPointsInBounds() بسيط للتحقق مما إذا كان المستخدم في أي نقطة نشطة. السؤال الأخير - أين يتم تخزين قائمة النقاط؟ قدم HTML5 القدرة على استخدام localStorage، لذلك دعونا لا نهملها (سأترك لك اكتشاف هذه الأجزاء من الكود بنفسك، والتي قمت بالتعليق عليها جيدًا). لذا، فإن التطبيق الذي يعمل في المتصفح جاهز!
كما قلت من قبل، يجب أن يتم تصحيح الأخطاء في الغالب على الكمبيوتر. المتصفح الأنسب لاختبار تطبيقات الويب على جهاز الكمبيوتر هو Safari أو Chrome. بعد تصحيح الأخطاء في هذه المتصفحات، يمكنك التأكد من أن التطبيق الخاص بك لن يعمل في متصفح الهاتف المحمول. كلا هذين المتصفحين متوافقان مع معظم متصفحات الويب على الأجهزة المحمولة لأنهما مبنيان على محرك WebKit مثلهما تمامًا. بعد إزالة جميع الأخطاء، يمكنك البدء في تشغيل تطبيق الويب للجوال مباشرة على هاتفك. للقيام بذلك، قم بتكوين خادم الويب الخاص بك (حتى Denwer أو XAMPP) بحيث يخدم الصفحة التي تم إنشاؤها، وافتحه في متصفح هاتفك المحمول. يجب أن يبدو التطبيق مشابهًا لما هو موضح في الشكل. من المهم أن نفهم هنا أن تطبيق الهاتف المحمول المستقبلي الذي تم تجميعه لمنصة الهاتف المحمول باستخدام PhoneGap سيبدو متطابقًا تقريبًا، باستثناء أنه لن يتم عرض شريط التنقل في المتصفح على الشاشة. إذا كان كل شيء على ما يرام، فيمكنك البدء في إنشاء تطبيق iOS كامل من الصفحة. يرجى ملاحظة أننا لم نتطرق حتى إلى PhoneGap وIDE لتطوير الأجهزة المحمولة حتى هذه اللحظة.
لإنشاء تطبيق لنظام التشغيل iOS، تحتاج إلى جهاز كمبيوتر يعمل بنظام التشغيل Mac OS 10.6+ (أو جهاز افتراضي على نظام التشغيل Mac OS 10.6)، بالإضافة إلى بيئة تطوير Xcode مع تثبيت iOS SDK. إذا لم تكن حزمة SDK مثبتة لديك، فسيتعين عليك تنزيل صورة قرص من موقع ويب Apple تتضمن Xcode وiOS SDK (developer.apple.com/devcenter/ios/index.action). ضع في اعتبارك أن الصورة تزن حوالي 4 جيجابايت. بالإضافة إلى ذلك، ستحتاج إلى التسجيل على موقع Apple الإلكتروني كمطور (إذا كنت لن تنشر تطبيقك في AppStore، فيمكن تجاوز هذا الشرط). باستخدام هذه المجموعة، يمكنك تطوير التطبيقات بلغة iOS الأصلية Objective-C. لكننا قررنا اتخاذ حل بديل واستخدام PhoneGap، لذلك ما زلنا بحاجة إلى تثبيت حزمة PhoneGap iOS. ما عليك سوى تنزيل الأرشيف من خارج الموقع (https://github.com/callback/phonegap/zipball/1.2.0)، وفك ضغطه وتشغيل برنامج التثبيت في مجلد iOS. عند اكتمال التثبيت، يجب أن يظهر رمز PhoneGap في قائمة مشاريع Xcode. بعد الإطلاق، سيتعين عليك ملء عدة نماذج، ولكن قريبًا جدًا سترى مساحة عمل IDE مع تطبيقك الأول. للتحقق مما إذا كان كل شيء يعمل، انقر فوق الزر "تشغيل" - يجب أن يبدأ محاكي iPhone/iPad مع تطبيق قالب PhoneGap. سيقوم البرنامج المجمع بإنشاء خطأ يفيد بأنه لم يتم العثور على ملف Index.html - وهذا أمر طبيعي. افتح المجلد الذي قمت بحفظ ملفات المشروع الأساسية فيه وابحث عن المجلد الفرعي www فيه. اسحبه إلى المحرر، وانقر على أيقونة التطبيق في القائمة الموجودة على اليسار وفي النافذة التي تظهر، حدد "إنشاء مراجع المجلدات لأي مجلدات مضافة". إذا قمت بتشغيل البرنامج مرة أخرى، يجب أن يعمل كل شيء. يمكننا الآن نسخ جميع ملفات النموذج الأولي الخاص بنا إلى مجلد www. لقد حان الوقت لتعديل النموذج الأولي الخاص بنا للعمل على هاتف ذكي باستخدام معالجة PhoneGap.
أولاً، تحتاج إلى تضمين phonegap-1.2.0.js في ملف الفهرس الخاص بك. يتيح لك PhoneGap تحديد قائمة المضيفين المتاحين للزيارة. أقترح إعداد مثل هذه "القائمة البيضاء" على الفور. في قائمة المشروع، افتح Supporting Files/PhoneGap.plist، وابحث عن عنصر ExternalHosts وأضف إليه المضيفين التاليين الذين سيصل إليهم تطبيقنا (هذه هي خوادم خرائط Google): *.gstatic.com، *.googleapis.com، Maps .جوجل كوم. إذا لم تقم بتحديدها، فسيعرض البرنامج تحذيرًا في وحدة التحكم ولن يتم عرض الخريطة. لتهيئة إصدار الويب من تطبيقنا، استخدمنا حدث DOMReady أو مساعد jQuery: $(document).ready(). يُنشئ PhoneGap حدثًا جاهزًا للأجهزة، مما يشير إلى أن الجهاز المحمول جاهز. أقترح استخدام هذا:
Document.addEventListener("deviceready", function () ( new Notificator($("#map-canvas")); // إذا لم يكن لدى المستخدم إنترنت، // أخبره بذلك if (navigator.network.connection. type = == Connection.NONE) ( navigator.notification.alert("لا يوجد اتصال بالإنترنت"، $.noop, TITLE); ) ), false);
لنقم بتعطيل التمرير: document.addEventListener("touchmove", function (event) ( events.preventDefault(); ), false);
بعد ذلك، سنقوم باستبدال جميع مكالمات التنبيه والتأكيد بالمكالمات الأصلية التي يوفرها لنا PhoneGap:
Navigator.notification.confirm("هل تريد إزالة النقطة؟"، الوظيفة (button_id) ( if (button_id === 1) ( // الضغط على الزر "موافق" self.removePoint(point); ) ), TITLE);
آخر شيء نحتاج إلى تغييره هو كتلة التعليمات البرمجية التي تحرك رمز المستخدم حول الخريطة. يعمل كودنا الحالي أيضًا، لكنه يعمل بشكل أقل مثالية (يحرك الرمز حتى لو لم تتغير الإحداثيات) ولا يوفر بيانات غنية مثل نظير PhoneGap:
Navigator.geolocation.watchPosition(function (position) ( self.movePerson(new gm.LatLng(position.coords.latitude,position.coords.longitude)); ), الوظيفة (خطأ) ( navigator.notification.alert("code: " + error.code + "\nmessage: " + error.message, $.noop, TITLE); ), ( التردد: 3000 ));
هذا الرمز أكثر أناقة - فهو يُنشئ حدثًا فقط عندما تتغير الإحداثيات. انقر فوق الزر "تشغيل" وتأكد من أن التطبيق الذي أنشأناه للتو يعمل بشكل مثالي في جهاز محاكاة جهاز iOS! لقد حان الوقت لبدء التشغيل على جهاز حقيقي.
قم بتوصيل جهاز iPhone أو iPod أو iPad بجهاز كمبيوتر يعمل بنظام Xcode. سيكتشف البرنامج جهازًا جديدًا ويطلب الإذن باستخدامه للتطوير. فلا فائدة من رفضها :). اسمحوا لي أن أكرر مرة أخرى: من أجل تشغيل تطبيق مكتوب على iOS، يجب أن تكون مطور iOS معتمدًا (بمعنى آخر، أن تكون مشتركًا في برنامج مطور iOS). لن يزعجك هذا إلا إذا كنت تقوم بتطوير تطبيقات لمنتجات Apple مع منصات أخرى (Android وWindows Phone) فكل شيء أبسط بكثير. يتمتع أولئك الذين يدرسون في إحدى الجامعات بفرصة الوصول إلى البرنامج مجانًا بفضل بعض المزايا. يجب على الجميع دفع 99 دولارًا سنويًا للمشاركة في البرنامج. تُصدر Apple شهادة يمكنك من خلالها توقيع الرمز الخاص بك. يُسمح بتشغيل التطبيق الموقع على نظام iOS وتوزيعه في متجر التطبيقات. إذا لم تكن طالبًا، وما زلت تشعر بالأسف مقابل 99 دولارًا مقابل تجارب بريئة، فهناك طريقة أخرى - لخداع النظام. يمكنك إنشاء شهادة موقعة ذاتيًا للتحقق من الرمز وتشغيل برنامج الهاتف المحمول على جهاز iOS مكسور الحماية (لن أتطرق إلى هذا الأمر، لأن كل شيء موصوف بأكبر قدر ممكن من التفاصيل في هذه المقالة: bit.ly/tD6xAf) . بطريقة أو بأخرى، سترى قريبًا تطبيقًا يعمل على شاشة هاتفك المحمول. أوقف ساعة الإيقاف. ما المده التي استغرقتك؟
إلى جانب PhoneGap، هناك منصات أخرى تسمح لك بإنشاء تطبيقات الهاتف المحمول دون استخدام اللغات الأصلية. دعونا قائمة أروع اللاعبين.
يمكن لـ Titanium إنشاء تطبيقات بشكل أساسي لأجهزة Android وiPhone، ولكنها تدعي أيضًا أنها تدعم BlackBerry. بالإضافة إلى الإطار نفسه، يوفر المشروع مجموعة من الأدوات الأصلية وIDE. يمكنك تطوير التطبيقات على Titanium مجانًا، ولكن سيتعين عليك الدفع مقابل الدعم والوحدات الإضافية (بدءًا من 49 دولارًا شهريًا). يصل سعر بعض وحدات الطرف الثالث إلى 120 دولارًا سنويًا. يدعي مطورو Appcelerator Titanium أنه تمت كتابة أكثر من 25 ألف تطبيق بناءً على إطار العمل الخاص بهم. يتم توزيع الكود المصدري للمشروع بموجب ترخيص Apache 2.
تدعم هذه التقنية الأنظمة الأساسية الرئيسية - iOS وAndroid. يهدف الإطار بشكل أساسي إلى تطوير اللعبة. بالطبع، يطالب المطورون بتحسين عالي الجودة على برنامج OpenGL. لا تحتوي المنصة على نسخة مجانية، والسعر باهظ للغاية: 199 دولارًا سنويًا للحصول على ترخيص لمنصة واحدة و349 دولارًا سنويًا لنظامي iOS وAndroid. تقدم كورونا بيئة تطوير متكاملة (IDE) ومحاكيات الأجهزة الخاصة بها. تتم كتابة تطبيقات كورونا بلغة مشابهة لجافا سكريبت.
لقد أنشأنا تطبيق ويب بسيطًا للهاتف المحمول وقمنا بنقله إلى نظام iOS باستخدام PhoneGap في بضع خطوات بسيطة. لم نكتب سطرًا واحدًا من كود Objective-C، لكننا حصلنا على برنامج ذي جودة جيدة، ونقضي الحد الأدنى من الوقت في النقل وتعلم واجهة برمجة تطبيقات PhoneGap. إذا كنت تفضل نظامًا أساسيًا آخر، على سبيل المثال Android أو Windows Mobile 7، فيمكنك بنفس السهولة، دون أي تغييرات في هذه الأنظمة الأساسية، إنشاء تطبيقنا (لكل منها يوجد دليل تمهيدي جيد وفيديو تعليمي: phonegap.com/) يبدأ) . للتحقق من جدوى المنصة، يمكنك الاطلاع على التطبيقات الجاهزة على PhoneGap، والتي جمعها مطورو التكنولوجيا في معرض خاص (phonegap.com/apps). في الواقع، يعد PhoneGap منصة مثالية لإنشاء نموذج أولي على الأقل لتطبيق مستقبلي. مزاياها الرئيسية هي السرعة والحد الأدنى من التكاليف، والتي تستخدم بنشاط من قبل الشركات الناشئة المحدودة في الموارد من جميع النواحي. إذا فشل التطبيق، ولسبب ما لم تعد راضيًا عن عناصر HTML+JS الداخلية، فيمكنك دائمًا نقل التطبيق إلى لغة أصلية. لا يسعني إلا أن أقول إن PhoneGap تم تطويره في الأصل بواسطة Nitobi كمشروع مفتوح المصدر (يوجد المستودع على GitHub: github.com/phonegap). سيظل الكود المصدري مفتوحًا، على الرغم من أن Adobe اشترت Nitobi في أكتوبر الماضي. هل يجب أن أقول ما هي الآفاق المستقبلية للمشروع بدعم مثل هذا العملاق؟