8 أخطاء شائعة في تطوير Android

8 أخطاء في تطوير أندرويد

1. يجب أن تكون الأشياء في المكان الذي يُفترض أن تكون فيه (Strings, Colors)

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

تطوير التطبيقات لمثل هذا المجتمع المتنوع ليس بالمهمة السهلة. أنا لا أتحدث عن البنى عالية المستوى هنا. في المقابل، يتعلق الأمر بأشياء بسيطة مثل strings و colors dimens و ما إلى ذلك و التي ستؤثر بشكل كبير على تطوير Android الحديث. إذن، تابعونا حتی نتعرف علی ال8 أخطاء شائعة في تطوير Android.

يشعر الناس عادة بالراحة عند استخدام أحد التطبيقات بلغتهم الأصلية. تتمثل الخطوة الأساسية في الحفاظ على جميع strings في ملف واحد (عادةً strings.xml) لإضافة ملفات string خاصة بلغة مختلفة بسرعة.

ينطبق هذا أيضًا على colors و dimens و styles، لذلك عندما تقرر القيام بشيء مثل دعم dark mode أو تعديل layouts لعرض tablet، سيكون من السهل التعامل معها. خلاصة القول هي: الاحتفاظ بالشفرة في مكان واحد لإعادة استخدامها بدلاً من ترميزها حيثما لزم الأمر.

2. عدم استخدام Fragments یعتبر من أخطاء شائعة في تطوير Android

في الأيام الأولى لتطوير Android ، كان يوصى باستخدام activities منفصلة لكل شاشة. بمرور الوقت، واجه المطورون مشاكل مختلفة بسبب هذا. أيضًا، كانت activity التي تمثل نقاط دخول إلى التطبيق تمثل ثغرة أمنية.

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

تقدم سريعًا حتى عام 2020، ويوصي فريق Android باستخدام fragments لتصميم كل شاشة والحفاظ على أنشطة فردية أو قليلة في جميع أنحاء التطبيق لاستضافة الأجزاء. إنه معروف باسم Single Activity Architecture.

سيؤدي اتباع هذه architecture إلى تقليل عدد كبير من التفاعلات من خارج التطبيق. يعتمد Jetpack navigation component بشكل أساسي على Single Activity Architecture. ستجعل Fragments API حياتك أكثر وضوحًا. ربما في غضون عامين ، سيتحول تطوير Android من الأنشطة إلى الأجزاء للأفضل.

3.عدم استخدام Data Bindings أو View Bindings یعتبر من أخطاء شائعة في تطوير Android

تعتمد بيئة تطوير Android على ثلاثة أنواع من الملفات منذ البداية: XML و Kotlin و Java. تحتوي ملفات XML على كل ما يتعلق بالتصميم ، وتتضمن ملفات Kotlin / Java أي شيء آخر غير جزء التصميم.

في النهاية ، يجب ربط واجهة المستخدم ومنطق العمل ، وهنا يلعب data binding و view binding  دورًا رئيسيًا. بدأ الارتباط بين واجهة المستخدم ومنطق الأعمال بوظيفة findviewbyid سيئة السمعة.

لكن view binding و data binding هي الحلول الموصى بها لحل هذه المشكلة. الغرض الأساسي view binding هو حل مشكلة الربط هذه مع النوع وnull safetynull safety في وقت التشغيل.

Data binding هو من أجل الصالح العام. يسمح لك بربط مكونات واجهة المستخدم في التخطيطات بمصادر البيانات باستخدام تنسيق تعريفي بدلاً من البرمجة.

4.عدم استخدام لغة Kotlin و Coroutines یعتبر من أخطاء شائعة في تطوير Android

لقد مضى عامان منذ أن أعلنت Google عن Kotlin كلغة موصى بها لتطوير تطبيقات Android. كان أحد تلك القرارات التحويلية: حلت Kotlin نقاط الألم في Java ويمكن أن تقلل الرفع الثقيل للمطورين.

باستخدام Kotlin لتطوير Android ، فتحت بوابات جديدة مع ميزات مثل extensions, scoped functions, data classes, object keyword, null safety ، وما إلى ذلك ، وبصرف النظر عن تطوير Android ، يمكنك أيضًا الدخول في تطوير متعدد المنصات و server-side باستخدام Kotlin.

تلعبAsynchronous programming دورًا رئيسيًا في تطوير الأجهزة المحمولة. في المراحل المبكرة ، استخدمنا AsyncTask. بمرور الوقت ، ظهر RxJava ، وهو تغيير تحولي. لكن RxJava يأتي مع منحنى تعلم عميق ونهج مختلف تمامًا مع عمليات callbacks.

ثم جاءت coroutines ، و هي حل Kotlin-y للبرمجة asynchronous programming بسيط. في هذه الأيام ، كانت coroutines حلاً قياسيًا لتنفيذ المهام غير المتزامنة. الميزات القوية والتنفيذ البسيط تجعله أكثر قابلية للتكيف.

يجعل Kotlin تطويرك سهل وموجز ، بينما تتيح لك coroutines تنفيذ  asynchronous tasks بالتتابع دون الحاجة إلى تعلم أي شيء جديد. يؤدي استخدامها في تطويرك فقط إلى إنتاجية وفعالية أكبر.

5.أخطاء التصميم

التقليل من ConstraintLayout

يأتي ConstraintLayout مع مجموعة من الميزات المفيدة مثل guidelines, Barriers, Group, aspect ratio, flow, Layer, والمزيد. مع كل هذه الميزات ، يمكن لـ ConstraintLayout رسم كل شاشة تقريبًا (من حالات الاستخدام البسيطة إلى المعقدة).

يختلف ConstraintLayout عن التخطيطات Relative و Linear . توقف عن معاملتهم بنفس الطريقة. يمكننا إنشاء تخطيطات مسطحة بدون التسلسل الهرمي المتداخل. ينتج عن تصميم التخطيط المسطح طبقات أقل للرسم على العرض.

الإفراط في استخدام ConstraintLayout

الميزات القوية معرضة لخطر إساءة استخدامها. يعد استخدام ConstraintLayout في واجهة المستخدم التي يمكنك تصميمها باستخدام FrameLayout أو LinearLayout أسلوبًا سخيفًا.

الخوف من MotionLayout

ConstraintLayout هو الخيار الصحيح لتصميم حالات الاستخدام المعقدة ، ولكن ليس لتنفيذ الحركات والانتقالات. MotionLayout هو حل فعال للقيام بذلك.

MotionLayout هي فئة فرعية من ConstraintLayout تتضمن جميع ميزاتها البارزة ، وهي توضيحية تمامًا مع القدرة على تنفيذ انتقالات معقدة في XML. إنه متوافق مع الإصدارات السابقة مع مستوى API 14 ، مما يعني أنه يغطي 99٪ من حالات الاستخدام.

يعمل محرر MotionLayout الجديد في Android Studio 4.0 على تسهيل العمل مع MotionLayout. يوفر بيئة رائعة لتنفيذ التحولات ومشاهد MotionSenes والمزيد.

MotionLayout ليس شيئًا يتضمن حسابات وخوارزميات معقدة. بدلاً من ذلك ، إنها طريقة توضيحية بسيطة لتنفيذ الرسوم المتحركة والانتقالات باستخدام محرر رائع جديد في Android Studio.

6.عدم إدراك العيوب الأمنية

تخزين data الحساسة

يعد تخزين data الحساسة في تفضيلات  shared preference أو database أو local storage مخاطرة. يمكن اختراقها بسهولة. لا يدرك العديد من المطورين هذا ويستخدمون تفضيلًا مشتركًا لتخزين البيانات الحساسة للمستخدم.

يمكن حل ذلك باستخدام مكتبة DataStore الجديدة أو مكتبة Encrypted preference أو عن طريق تنفيذ encryption بنفسك.

اتصال آمن

يعتقد العديد من مطوري Android أن استخدام HTTPS يمكن أن يجعل اتصالهم بالخوادم آمنًا. لكن ليست هذه هي المسألة. يتدخل العديد من المتسللين في الاتصالات لتضليل الخوادم والعملاء. يُعرف هذا باسم هجوم الرجل المتوسط.

لإنشاء خط آمن للخادم ، نحتاج إلى certificate pinning.

7.عدم الإلمام بإمكانيات Android Studio

لا يهم مدى قوة السلاح ما لم تتعلم كيفية استخدامه بشكل صحيح. بصفتنا مطورين ، نحن محظوظون لأن لدينا أداة قوية مثل Android Studio ، ولكن يجب أن تعرف كيفية استخدامها بشكل منتج.

هناك العديد من الميزات المخفية مثل handy shortcuts, live templates, file templates, predefined project structures, code generator plug-ins, customization، و المزيد. لدينا أيضًا database inspector وlayout inspector, profiler و المزيد لنكون منتجين في وقت التشغيل.

يوفر Android Studio أيضًا دعم الأدوات للعديد من المكتبات مثل navigation editor و navigation graph و motion editor بطريقة خيالية.

8.عدم استخدام مكتبات Jetpack یعتبر من أخطاء شائعة في تطوير Android

Jetpack عبارة عن مجموعة من المكتبات لمساعدة المطورين على اتباع أفضل الممارسات و تقليل الشفرة المعيارية و كتابة التعليمات البرمجية التي تعمل باستمرار عبر إصدارات Android و الأجهزة بحيث يمكن للمطورين التركيز على الكود الذي يهتمون به. عدم استخدام مکتبات JetPack یعتبر من أخطاء شائعة في تطوير Android.

تغطي مكتبات JetPack الميزات الرئيسية مثل paging3 لتقسيم الصفحات ، و Room الlocal database، و WorkManager لمهام الخلفية طويلة المدى ، و DataStore لتحسين تخزين البيانات، و Hilt ل DI، وnavigation component في واجهة مستخدم التطبيق، و App Startup لتقليل وقت بدء تشغيل التطبيق ، و اكثر.

تم تصميم كل هذه المكتبات للحفاظ على الأداء و سهولة الاستخدام في الاعتبار لتنفيذ المهام المعقدة باستخدام كود أقل.

مرجع

سناء عبادي

مطورة تطبيقات الجوال وشريكة مؤسس في androidriver.net | محاولة تحقيق الحلم |

منشور ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

السلة