في الآونة الأخيرة، اضطررتُ مؤخرًا إلى تنفيذ إرشادات إرشادية حول الإعداد لـ
/href/
https://clickup.com/
انقر فوق
/%href/
الوافدون الجدد لقد كانت هذه مهمة مهمة مهمة حقًا لأن الكثير من المستخدمين الجدد كانوا على وشك اكتشاف المنصة مع
/href/
https://www.youtube.com/watch?v=AirnL1NxOAw
الإعلان المضحك بشكل لا يصدق الذي عرضناه لأول مرة في السوبر بول
/%href/
! ✨
عبر ClickUp
تسمح هذه الإرشادات التفصيلية للعديد من المستخدمين الجدد، الذين ربما لا يعرفون ClickUp حتى الآن، بفهم كيفية استخدام العديد من وظائف التطبيق بسرعة. إنه جهد مستمر، تمامًا مثل الجديد
/href/
https://university.clickup.com/
جامعة ClickUp
/%href/
المورد الذي نتابعه! 🚀
لحسن الحظ، سمحت لي البنية البرمجية الكامنة وراء تطبيق ClickUp Flutter للهاتف المحمول بتنفيذ هذه الوظيفة بسرعة كبيرة، حتى من خلال إعادة استخدام الأدوات الحقيقية من التطبيق! وهذا يعني أن الإرشادات التفصيلية ديناميكية وسريعة الاستجابة وتتطابق تمامًا مع شاشات التطبيق الحقيقية للتطبيق - وستستمر كذلك حتى عندما تتطور الأدوات المصغّرة.
تمكنت أيضًا من تنفيذ الوظيفة بسبب الفصل الصحيح بين الاهتمامات.
لنرى ما أعنيه هنا. 🤔
فصل الاهتمامات
يعد تصميم بنية البرمجيات من أكثر المواضيع تعقيداً بالنسبة للفرق الهندسية. من بين جميع المسؤوليات، من الصعب دائمًا توقع التطورات المستقبلية للبرمجيات. لهذا السبب يمكن أن يساعدك إنشاء بنية جيدة الطبقات وفصل الاهتمامات أنت وزملائك في الفريق في الكثير من الأمور!
الفائدة الرئيسية لإنشاء أنظمة صغيرة مفصولة هي بلا شك قابلية الاختبار! وهذا ما ساعدني في إنشاء بديل تجريبي للشاشات الموجودة من التطبيق!
دليل خطوة بخطوة
الآن، كيف يمكننا تطبيق هذه المبادئ على تطبيق Flutter؟
سنقوم بمشاركة بعض التقنيات التي نستخدمها لبناء ClickUp مع مثال تفصيلي بسيط.
المثال بسيط للغاية لدرجة أنه قد لا يوضح جميع المزايا الكامنة وراءه، لكن صدقني، سيساعدك هذا المثال على إنشاء تطبيقات Flutter قابلة للصيانة بشكل أكبر بكثير مع قواعد شفرات معقدة. 💡
التطبيق
كمثال، سنقوم بإنشاء تطبيق يعرض عدد سكان الولايات المتحدة الأمريكية لكل عام.
عبر ClickUp
لدينا شاشتان هنا :
* 'الشاشة الرئيسية': تسرد ببساطة جميع السنوات من عام 2000 إلى الآن. عندما ينقر المستخدمون على لوحة سنة ما، سينتقلون إلى "شاشة التفاصيل" مع وسيطة تنقل إلى السنة المحددة.
* تحصل 'شاشة التفاصيل': تحصل على السنة من وسيطة التنقل، وتستدعي وسيطة التنقل
/href/
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018
واجهة برمجة تطبيقات datausa.io
/%href/
لهذه السنة، ويحلل بيانات JSON لاستخراج القيمة السكانية المرتبطة بها. إذا كانت البيانات متوفرة، يتم عرض تسمية مع عدد السكان.
سنركز على تطبيق 'DetailScreen' نظرًا لأنه الأكثر إثارة للاهتمام من خلال استدعائه غير المتزامن.
الخطوة 1\. النهج الساذج
/img/
https://clickup.com/blog/wp-content/uploads/2022/03/image-5-1400x607.png
النهج الساذج القطعة الساذجة
/%img/
عبر ClickUp
التنفيذ الأكثر وضوحًا لتطبيقنا، هو استخدام "عنصر واجهة مستخدم واحد" واحد "StatefulWidget" للمنطق بأكمله.
/href/
https://dartpad.dev/embed-flutter.html?id=b37071f4386ecb27c29332e788999612&split=80&theme=dark
كود مصدر السهام والعرض التوضيحي
/%href/
الوصول إلى وسيطة التنقل "عام
للوصول إلى السنة المطلوبة، نقرأ "إعدادات الطريق" من الأداة الموروثة "ModalRoute".
```
باطلة didChangeDependencies() {{
super.didChangeDependencies();
السنة النهائية = ModalRoute.of(السياق).settings.arguments كـ int;
// ...
}
```
استدعاء HTTP
يستدعي هذا المثال دالة "الحصول على" من حزمة "http" للحصول على البيانات من
/href/
https://datausa.io/api/data?drilldowns=Nation&measures=Population&year=2018
datausa.io API
/%href/
ويحلل JSON الناتج باستخدام طريقة 'jsonDecode' من مكتبة 'dart:convert'، ويحتفظ بـ 'المستقبل' كجزء من الحالة بخاصية تسمى 'المستقبل'.
```
في وقت متأخر من المستقبل