أطلقت اليوم أول تطبيق جوال خاص بي. هذا ما تعلمته

لقد كنت أكتب قليلًا على Medium مؤخرًا ، حيث أشارك في معرفة التصميم والتطوير القيّمة التي اكتسبتها من العمل على تطبيقي الأول ، Crypto Price Tracker الذي أطلقته للتو اليوم ، في 28 يناير.

أردت مشاركة قصتي في العمل على هذا التطبيق من اليوم الذي بدأت فيه حتى اليوم. آمل أن يساعد هذا المنشور المبرمجين الشباب الآخرين ويلهمهم (أو حقًا أي شخص مهتم بصنع منتجات تقنية!) لاكتساب مهارات تقنية قيمة ، وتحديد احتياجات السوق ، وبناء منتجات رائعة بمهاراتهم التي تلبي احتياجات السوق.

معلومات أساسية عني: أنا طالب منزلي أبلغ من العمر 16 عامًا. كنت أتعلم التصميم الرقمي والبرمجة منذ أن كان عمري 13 عامًا. كنت أصغر متدرب في Salesforce في بنغالور في شتاء 2016.

حضرت برنامج MIT Launch الصيفي في صيف 2017 حيث أطلقت أنا وفريقي Universeaty. كانت هذه هي المرة الأولى التي جربت فيها يدي على تطبيقات iOS وأحببت مدى سرعة إنشاء منتجات ملموسة ومشاهدة نتائج عملي عند إنشاء تطبيقات الجوال. كان إحضار أفكاري إلى البرامج أسهل بكثير وأكثر متعة!

لقد بدأت في تعلم تطوير تطبيقات Swift و iOS من الدورات التدريبية عبر الإنترنت على Treehouse و Udemy وشاهدت مقاطع الفيديو على YouTube وتدربت على إنشاء التطبيقات الأساسية. هذا وضع أسس البرمجة الخاصة بي. لقد بدأت في إنشاء تطبيقات أكثر جدية وتعقيدًا بعد بضعة أسابيع من التعلم والممارسة.

في حوالي 20 نوفمبر 2017 ، قررت أنني أرغب في العمل على تطبيق تعقب أسعار العملات المشفرة والتنبيهات وإدارة المحافظ. لقد شاركت قليلاً من القصة حول حافزي هنا. لقد أدركت مؤخرًا أن مشاركة قصتي وبعض الدروس التي تعلمتها خلال رحلتي مفيدة حقًا للآخرين!

ابدء

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

لقد نشرت على Reddit ، ومجموعات Facebook ، و Quora ، وسألت بعض الأصدقاء الذين استثمروا واهتموا بالعملات المشفرة. حصلت على بعض التعليقات القوية على الفكرة وكنت أكثر تعليماً حول احتياجات المستخدمين المستهدفين.

كانت الخطوة التالية هي تصميم التطبيق. لقد بدأت برسم مخططات تدفق المستخدم والأطر السلكية. انتقلت بعد ذلك إلى استخدام برامج التصميم لإنشاء نماذج ونموذج أولي. لقد كتبت قصة مختلفة حول تصميم تطبيقات الأجهزة المحمولة من البداية ، وشاركت صورًا لكل مرحلة من مراحل تصميم تطبيق Crypto Price Tracker.

وكانت النتيجة النهائية لهذه العملية هي:

تطوير متعقب سعر التشفير

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

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

لقد كتبت رمز الشبكة لعرض البيانات من واجهات برمجة التطبيقات التي كنت أستخدمها وأنشأت الواجهة الرئيسية لتطبيقي. ثم انتقلت إلى ميزة "قائمة الرغبات" في التطبيق. الآن ، لحفظ البيانات محليًا في هاتف المستخدم ، تحتاج إلى إنشاء نماذج Core Data - وهو شيء لم أعمل معه من قبل. وظهرت المزيد من الثغرات والتحديات التقنية.

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

في نهاية الأسابيع الثلاثة التي قضيتها في ترميز التطبيق ، تحسنت كثيرًا كمبرمج. لقد تعلمت المفاهيم وقمت بالتدرب فعليًا من خلال إنشاء تطبيق حقيقي. لقد عملت مع عدد من تقنيات ومكتبات وأطر عمل iOS المثيرة للاهتمام.

ما زلت بحاجة إلى التحسين كثيرًا كمطور. يتم تحميل تطبيقي ببطء في بعض الأحيان. إنه ليس التطبيق الأكثر تحسينًا أو الأسرع على الإطلاق. لكنني ما زلت سعيدًا لأنني تمكنت من بناء شيء مفيد وقيِّم.

كانت الخطوة التالية التي خططت لها هي ترجمة تطبيقي إلى 10 لغات. اعتقدت أنه كان سهلاً لأن تطبيقي ليس به نصوص ثقيلة يا فتى ، كنت مخطئا! الترجمة عملية تستغرق وقتًا طويلاً بالنسبة للتطبيقات. أكتب قصة منفصلة لشرح كيفية التوطين تقنيًا.

في نهاية الأسابيع الثمانية (من اليوم الذي بدأت فيه أبحاث السوق) ، قمت بتصميم وتطوير تطبيق بالكامل أظهر أسعارًا في الوقت الفعلي لأكثر من 1000+ عملة مشفرة من 18 بورصة بـ 32 عملة ورقية. كانت هناك رسوم بيانية للسعر (تعرض الأسعار التاريخية من يوم واحد ، وأسبوع واحد ، وشهر واحد ، و 3 أشهر ، وسنة واحدة) ، وإدارة المحفظة ، والتنبيهات المستندة إلى الوقت والمستندة إلى الحد الأدنى. تمت ترجمته إلى 10 لغات. لقد قمت أيضًا بتحسين تطبيقي لجهاز iPhone X.

بمجرد أن أصبح بنائي جاهزًا ، كانت الخطوة التالية هي دعوة المستخدمين للاختبار وتقديم ملاحظات حول التطبيق.

اختبار التطبيق وإرساله

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

كان الإصدار v1.0 جاهزًا للإرسال. كانت 100 لقطة شاشة (5 لقطات شاشة لـ iPhone 5.5 بوصة و 5 لـ iPhone 5.8 بوصة لكل لغة) جاهزة ، وتم ترجمة البيانات الوصفية أيضًا ، وتم إجراء معاينة الفيديو الخاصة بي.

كانت هناك بعض التحديات غير المتوقعة في تحميل معاينة الفيديو لأن معدل الإطارات في الثانية (الإطارات في الثانية) كان مرتفعًا جدًا. في هذه المرحلة ، كنت قد نمت لأتقبل تحديات غير متوقعة وتمكنت من التعامل معها بفعالية. تمكنت من إنهاء كل شيء وإرسال التطبيق للمراجعة في الوقت المحدد.

بعد يومين ، في الساعة 4 صباحًا ، تلقيت رسالة البريد الإلكتروني الخاصة بالرفض.

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

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

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

بعض الدروس التي تعلمتها

  1. التوطين فكرة رائعة. حتى الآن ، كنت أندم على قراري بترجمة تطبيقي إلى 10 لغات. لقد كتبت بعض إجابات Quora حول كيف كان الأمر الأكثر استنفادًا للوقت الذي فعلته مع تطبيقي ولا أنصح أي مطور مستقل بدون الميزانية للاستعانة بمصادر خارجية للترجمة. ولكن الآن تغير رأيي. تعد ترجمة تطبيقك من 10 إلى 12 لغة باستخدام الترجمة من Google وإجراء تدقيق لغوي للأصدقاء طريقة رائعة للوصول إلى جمهور أكبر لتطبيقك. تحب Apple أيضًا التطبيقات المترجمة أكثر. لا يمكنك دائمًا الحصول على كل شيء بشكل صحيح وكل سلسلة ممكنة مترجمة. ولكن يمكنك الحصول على 80٪ من النتائج (أي ترجمة نصية) مع 20٪ من العمل.
  2. الناس أكثر استعدادًا لمساعدتك مما تعتقد. أنا ممتن جدًا لوجود عدد من الأصدقاء والموجهين الذين ساعدوني كثيرًا في هذه الرحلة. لكنني ببساطة اندهشت من استجابة الكثير من الغرباء لي عندما تواصلت معهم وساعدتني. في وقت مبكر جدًا من رحلتي ، عندما كان لدي نموذج أولي صغير للواجهة الرئيسية لتطبيقي ، تواصلت مع كارلا وايت بعد أن قرأت كتابها الرائع. لقد أرشدتني وساعدتني بنصيحتها للتطبيق. أثناء تعريب تطبيقي ، كنت بحاجة إلى مصححين لكل لغة للتأكد من أن الترجمات (التي تمت باستخدام ترجمة Google) جيدة ومحددة السياق. علق باسكال على قصتي على ميديوم حيث عرض مساعدته في الترجمات الألمانية. لقد تواصلت معه وفي غضون مهلة قصيرة حقًا ، قام بالفعل بتحرير ترجماتي الألمانية!وقدم الكثير من الغرباء مساعدتهم.

    أحد أهم الأشياء التي يمكن استخلاصها من هذا هو: استعداد الناس لمساعدتك. تواصل معهم ، وكن صادقًا ، وسوف يساعدونك بأي طريقة ممكنة! :د

  3. ملاحظات المستخدم في وقت مبكر بالغة الأهمية. لا تحفزك الكلمات اللطيفة من المعجبين أو المؤمنين بك فحسب ، بل سيعطيك الكثير من المستخدمين الأوائل أفكارًا عن الميزات وتحسينات التصميم وردود الفعل الأكثر قيمة. أحد الأخطاء التي ارتكبتها هو الاختبار في وقت متأخر جدًا. لقد قمت بتحميل التصميم الخاص بي لاختبار TestFlight قبل أسبوع واحد فقط من الإطلاق المخطط له عندما كان التطبيق جاهزًا إلى حد كبير ولم أتمكن من إجراء تغييرات كبيرة. إذا طلبت من المستخدمين بدء الاختبار منذ أسابيع عندما كانت لدي الواجهة الرئيسية للتو ، فقد تلقيت الكثير من التعليقات وكنت سأحسنها. وكررت أنه مقابل كل ميزة رئيسية ، كان تطبيقي أفضل كثيرًا. ذكر عدد غير قليل من المختبرين أشياء كان من الممكن إصلاحها في 2-3 أيام إذا كنت قد أرسلت التصميم للاختبار مسبقًا. لذا فإن نصيحتي للجميع ستكون:اجعل تطبيقك في متناول المستخدمين واطلب منهم اختباره في أسرع وقت ممكن والحصول على تعليقات!

بعض الأدوات المفيدة التي استخدمتها

  1. AppLaunchPad لإنشاء مجموعات متعددة من لقطات الشاشة (للعديد من الترجمة) بشكل أسرع.
  2. كوكوابودس. SwiftyJSON و Alamofire لكتابة كود شبكات أفضل ، مخططات لإنشاء الرسوم البيانية للأسعار. هناك cocoapod لكل شيء تقريبًا!
  3. Firebase لخادم دفع الإشعارات وخادم التخزين المؤقت لتخزين الأسعار كل 5 دقائق لتحديث الرسوم البيانية للأسعار.
  4. اثنين من واجهات برمجة التطبيقات للأسعار: cryptowatch و CoinCap. هذا API لأسعار العملات للتحويل.

إنه شعور رائع أن أتمكن من مشاركة الدروس التي تعلمتها ورحلتي مع جمهور كبير. آمل أن يكون هذا بمثابة مصدر إلهام للآخرين لتجربة تعلم البرمجة وإنشاء التطبيقات أو أي شيء يهتمون به حقًا. سأبدأ شخصيًا بتعلم تعلم الآلة وعلوم البيانات بعد تطبيقي - لذا لا تفعل ذلك يخاف من تجربة المجالات المختلفة! جرب شيئًا صعبًا وشيء يجعلك غير مرتاح. عادة ما تكون الأشياء التي يصعب القيام بها هي الأكثر إثارة للاهتمام والمكافأة في النهاية. :)

إذا كنت تحب قراءة هذا وكان لديك ملاحظات أو أي أفكار لمشاركتها ، فلا تتردد في مراسلتي عبر البريد الإلكتروني [email protected] وإذا أعجبك تطبيقي ، يمكنك تنزيله من متجر التطبيقات من هنا. :)