
لقد حدث أنني كنت خالية من العمل. من ناحية أخرى ، لم أكن معتادًا على الجلوس في وضع الخمول ، لكنني أردت منذ فترة طويلة تجربة شيء جديد.
لم أكن مضطراً للتفكير منذ فترة طويلة ، حيث أنني كنت أتابع تطور الرفرفة لفترة طويلة. لم أكن مشتركًا في تطوير الأجهزة المحمولة قبل ذلك ، لذا كان من المثير للاهتمام مضاعفة التحقق من نفسي - لم أكن مخدرًا تمامًا كمطور. حسنًا ، من الواضح أن المقال مصمم لنفس "الدمى" التي أقوم بها. لن يكون هناك أمثلة وتحليل لكود معين ، بل سيكون هناك وصف للانطباعات العامة.
نظرًا لأن أفضل طريقة لتعلم لغة أو تقنية جديدة هي إنشاء تطبيق صغير ولكنه كامل ، فقد بدأت بتعيين المهمة.
بيان المشكلة
لقد أردت منذ فترة طويلة أن يكون لدي تطبيق على هاتفي يقوم بتشغيل شيء ما على جهاز الكمبيوتر الخاص بي. نوع من لوحة التحكم ، عندما لا تحتاج إلى التبديل بين البرامج ، حرك الماوس للبحث عن القائمة وتنفيذ إجراءات أخرى. بالتأكيد لن تؤذيني شاشة إضافية مزودة بأزرار.
من الواضح على الفور أنه لا يمكنك القيام بهاتف واحد ، فأنت بحاجة إلى إنشاء تطبيق خادم للكمبيوتر. بما أنني أفعل ذلك بنفسي ، يمكنك استخدام ملف اختبار مع قائمة بالأوامر قيد التشغيل التي سيتم عرضها على الهاتف في شكل أزرار. لم يكن هناك تردد في لغة التطوير ، حيث أنني كتبت مؤخرًا على Go وهي مناسبة تمامًا لهذه المهمة.
لذلك ، على الهاتف لدينا صفحتان - تسجيل الدخول وقائمة الأزرار. على الكمبيوتر - أبسط خادم ويب يقوم بتحميل الأزرار عند بدء التشغيل ، يقوم بإرجاع قائمة واحدة في كل مرة ، وإلا ينفذ الأمر المطلوب. للبساطة ، يمكنك القيام بافتراض واحد - يجب توصيل الهاتف عبر شبكة Wi-Fi بنفس الشبكة مثل الكمبيوتر.
وبالطبع ، يجب أن يكون كل شيء مفتوح المصدر (الروابط في النهاية) ، بحيث يكون لدى الأشخاص المهتمين شيء ينتقدونه.
رفرفة
بما أن جانب الخادم لم يكن صعبًا ، فقد قررت أن أبدأ بالرفرفة. إذا كانت هناك صعوبات ، فلن تضطر إلى كتابة أي شيء على Go أيضًا. ذهب تثبيت Flutter دون مفاجآت ، على الرغم من أنني ما زلت مضطرًا لتثبيت Android Studio. منذ أن استخدمت Visual Code ، قمت أيضًا بتثبيت ملحقات إضافية هناك. عند إنشاء مشروع ، لا يُنشئ Flutter مشروعًا فارغًا ، لكن برنامجًا على مستوى العالم Hello ، والذي يمكن إطلاقه فورًا إذا رغبت في ذلك. والسؤال هو كيف لمشاهدته. حاولت ثلاث طرق
- أنشئ محاكيًا في Android Studio . إذا لم يكن الكمبيوتر قوياً ، فهناك زائد واحد فقط - يمكنك اختيار طراز الهاتف المطلوب. على بلدي i5 مع 8 غيغابايت من الذاكرة و SSD ، جلبت لي العمل مع المحاكي بعض الألم العقلي. لذلك بدأت أبحث عن بدائل.
- الكروم. بما أن Flutter يمكنه ترجمة البرنامج بلغة js و html ، فقد قررت استخدام هذا الخيار. للقيام بذلك ، كان علي حقًا الانتقال من فرع مستقر إلى رئيسي (في مستقر لا يوجد دعم ويب) ، ولكن البداية بدأت تسير بشكل أسرع. الجانب السلبي هو أن بعض ميزات الهاتف المحمول لا تعمل وأن المظهر نفسه مختلف قليلاً ، على سبيل المثال ، في الخطوط ، ولكنه مناسب تمامًا للعمل القاسي على التطبيق.
- الهاتف الخاص . من الطرق الممتازة تشغيل وضع مطور البرامج على الهاتف وتوصيل الهاتف المحمول بالكمبيوتر. الايجابيات - عدم وجود الفرامل والعمل "المادي" مع التطبيق ، سلبيات - وضع ثابت لشحن الهاتف.
كما تعلمون ، يستخدم Flutter لغة برمجة Dart. لن أقول أن هذه لغة رائعة ، ولكن يبدو أن جوجل قررت أن الخير لن يختفي ومنحه فرصة ثانية. لم يكن هناك وقت لتعليمه ، لذلك لم أعلمه. لقد التزمت ببساطة بالمبدأ التالي ، إذا كان هناك شيء غير واضح في المثال الذي أريد استخدام جزءه ، عندئذٍ يجب فهم ذلك. يبدو أنك لا تتعلم اللغة بشكل خاص ، ولكن الصورة العامة آخذة في الظهور. على الأقل ، ما هو الفرق بين
النهائي و
const ، وما هو
؟ ب ، أنا أعرف الآن.
يحتوي Flutter على ما يسمى بالتحديث الساخن ، عندما يكون التطبيق قيد التشغيل ، ويؤدي الضغط على r - إلى تحديث الحالة الحالية ، إلى R - إلى بدء تشغيل التطبيق مرة أخرى. الشيء رائع ، لكن معها كان لدي ذهول جاد وحيد. عند تحديث الحالة الحالية ،
لم يتم تحديث البيانات ، وقد لا يتم قول ذلك بشكل صحيح ، ولكن الاستنتاج هو التالي ، إذا حدث خطأ ما ، فمن الأفضل إعادة تشغيل التطبيق من اللغز على السبب. هذا الاكتشاف كلفني عدة دقائق.
عندما يتم تشغيل كل من إصدارات debug والإصدار على الهاتف ، يقوم برنامج flutter بتثبيت ملفات apk عليه. أي أنه يمكنك تشغيل مثال مرة واحدة ، ثم ، إذا لزم الأمر ، قم بتشغيله على الهاتف دون فتح المشروع المقابل.
لم أكن عناء مع جزء واجهة. كانت هناك فكرة لإتاحة الفرصة لتجميع الأزرار وإضافة التبديل بين المجموعات ، لكنها قررت أنه بالنسبة للإصدار الأول ، كانت الوظيفة الأبسط كافية ... بشكل عام ، حدث ما يلي.

تم جمع الإصدار وفقًا للوثائق الرسمية. الشيء الوحيد الذي يمكنهم تحذيره على الفور هو تغيير اسم الحزمة. com.example. * ، بما أن متجر Play يرفض قبول الحزم التي تحمل هذه الأسماء.
الذهاب الخادم
حول جزء سطح المكتب ، لا يوجد شيء يمكن أن نخبره. لقد قمت بتوصيل حزمة للعمل بتنسيق YAML ، حزمة للتسجيل ، ولم أزعج حتى خادم الويب ، لكنني اتخذت إطار ويب جاهزًا. نظرًا لأن المشروع تم إنشاؤه أكثر للاستخدام الشخصي ، ومع وجود واجهات واجهة المستخدم الرسومية ، فإن الأمور ليست جيدة جدًا ، فقد قررت أن أقصر نفسي على تحديد جميع الأزرار الموجودة في ملف التكوين. الحقل الوحيد المطلوب للزر هو اسم التطبيق الذي سيتم تشغيله. بالإضافة إلى ذلك ، بالطبع ، يمكنك أيضًا تحديد معلمات سطر الأوامر ، والرمز ، والعنوان ، إلخ.
أثناء كتابة هذا المقال ، أدركت أن مشكلة الأمان لم يتم حلها حتى النهاية ، ولكن على الأقل يوجد رابط يستند إلى كلمة مرور و / أو معرف فريد للجهاز. بالنسبة للشبكة المحلية ، في رأيي ، هذا يكفي ، ولكن لإدارة الخادم البعيد باستخدام الاختراق في النموذج كما هو الآن ، لن أخاطر به.
نشر
عند الانتهاء من التطوير ويعمل كل شيء على هذا النحو ، فإن الخطوة التالية هي النشر إلى PlayStore.
كانت هناك مخاوف من احتمال رفض الطلب ، لكنه كان لا يزال يستحق المحاولة. أسهل خطوة هي التسجيل ودفع رسوم الدخول. كل شيء آخر يتطلب عملية فكرية معينة ، ولكن لم يكن هناك شيء معقد للغاية. كقاعدة عامة ، كانت التعليمات والنصائح كافية. في البداية ، قمت بعمل نسخة تجريبية ، وبعد ذلك بيوم قمت بترجمتها علنًا ، وبعد يوم تمت الموافقة عليها.
استنتاج
لا يتطلب الرفرفة دراسة متعمقة لإنشاء تطبيق بسيط. الوثائق واسعة جدًا ويمكنك دائمًا العثور على أمثلة ومقالات جاهزة على الإنترنت. تبقى الرغبة في العمل مع Flutter ، إذا ظهرت فكرة جديدة ، فسأدرسها أكثر.
يتطلب إنشاء الوثائق وإصدارها ونشرها على متجر Play ، وكذلك كتابة هذه المقالة ، وقتًا مماثلًا للتطوير.
المصادر:
جيثب