Musaad مساعد 🎓✨
Musaad مساعد 🎓✨

@MusaadTech

41 تغريدة 55 قراءة Aug 24, 2021
في ثريد اليوم الطويل شوي بتكلم إن شاء الله عن تطوير تطبيقات الـ Android بصورتها الأصلية Native Apps، وكيفية الدخول في هذا المجال البرمجي (خطة للتعلم).
بالإضافة لذلك سأشارككم مواقع مفيدة و٣ قنوات Youtube متخصصة.
الثريد بيفيد المطورين والمتعلمين والمقبلين على تعلم إن شاء الله 💡.
ملاحظة مهمة: خطة التعلم ما تقدر تتعلم مواضيعها بيوم وليلة ... لازم تطبق صح وتصبر، والمدة تفرق من شخص لشخص وتعتمد على سرعة قابليتك للتعلم، نصيحتي لك خذ وقتك ولا تستعجل لأن العلم بالتعلم لا بالتلقين وأنت ماشي،
لكن اذا اتقنت جميع المواضيع، ان شاء الله اضمن لك الإحتراف في هذا المجال.
ما هو Android؟
هو نظام تشغيل مجاني ومفتوح المصدر مبني على إصدار معدل من نواة Linux، مملوك لشركة Google وصمم خصيصاً للأجهزة التي تعمل باللمس مثل الأجهزة الذكية واللوحية.
لاحقاً، تم تطوير نسخ خاصة من النظام لتتوافق مع بعض شاشات التلفاز الذكية وغيرها من الأجهزة الإلكترونية.
سنوضح لك عزيزي القارئ أن تطوير تطبيقات الـ Android يتم عن طريق لغتين برمجية، ألا وهما Java وKotlin (عليك أن تختار أحدهما) بالإضافة إلى لغة ترميز الامتداد XML.
المعرفة بـ XML مهمة، فقط لتكون على دراية تامة بما تقوم به وقت تعلمك لتطوير التطبيقات.
طبيعة أكواد XML سهلة، لا تقلق!
ملف XML: مهمته هي التعامل مع تخطيط/هيكل تصميم البرنامج، التصميم نفسه، وتنسيقه (الواجهة الأمامية للبرنامج).
بينما ملف (Java أو Kotlin): مهمته هي التعامل مع الأحداث التي تتم عند تفاعلك مع عناصر التصميم (مثل: الأزرار، القوائم ... إلخ)، المتغيرات والتخزين في قواعد البيانات والتعامل معها (يمثل الواجهة الخلفية للبرنامج).
وقبل أن نبدأ عزيزي القارئ، علينا أن نوضح بعض المتطلبات التي نفترض انك ملم بها:
١. نفترض ان لديك المعرفة بأساسيات أحد اللغات التالية (واحدة تكفي):
• Java ➔ لا زالت تستخدم حتى الان، وبكثرة!
• Kotlin ➔ المعتمدة من قبل شركة Google حالياً.
٢. نفترض ان لديك المعرفة بالمواضيع:
- البرمجة كائنية التوجه (OOP).
- هياكل البيانات (Data Structures) – يفضل.
٣. نفترض ان لديك المعرفة السابقة بعلم قواعد البيانات والتعامل معها باستخدام SQL.
في حال عدم إلمامك بالمتطلبات السابقة، لا بأس!
سبق لي ان جمعت مصادر تعلم عربية لها في الثريدات التالية: -
المتطلب ١ وOOP:
Java
١-
٢-
أو
Kotlin
المتطلب ٢:
بعد تعلمك الاساسيات وOOP، انصحك بالبحث عن مصادر لتعلم هياكل البيانات في اليوتيوب والإنترنت ...
إن شاء الله ستجد نتائج كثيرة ✅
المتطلب ٣:
Relational Databases + SQL
إذاً في هذا الثريد، سنطرح: -
• خطة التعلم.
• مواقع ستفيدك في رحلتك التعليمية.
• ٣ قنوات أجنبية في الـ Youtube مخصصة لشرح تطوير تطبيقات Android.
بسم الله نبدأ.
أولاً/ خطة التعلم:
سأرتب لك عدة مواضيع يجب عليك ان تتعلمها لتصبح مطور Android، وكل موضوع يتفرع لعدة مواضيع أخرى (وهلم جرا) ... تعلم كل موضوع بشكل فردي وأنصحك بأن لا تستعجل في التعلم لأنك لن تبلغ الاحتراف في مدة قصيرة بدون تطبيق عملي مكثف وتعمق في الفهم!
١. أساسيات البرمجة في Android، وتشمل المواضيع:
- مقدمة في نظام Android: تاريخه + إصداراته + تطوير التطبيقات فيه.
لتبني الحماس والدافع للتعلم لديك والمواصلة في رحلتك الطويلة! 😊.
- ضبط بيئة التطوير المتكاملة (IDE) للـ Android: Android Studio.
- هيكل أو بنية تطبيقات الـ Android.
- فهم آلية عمل كل ملفات الـ Resources Directory.
- Activity ودورة حياتها في Android.
- الـ Intents بأنواعها وIntent Filter.
- الـ Android Stack.
- الـ Testing and Debugging للتطبيقات.
٢. واجهة المستخدم في Android، وتشمل المواضيع:
- مفهوم Adaptive and Responsive UI وطرق تطبيقه بالـ Android.
- استكشاف أساسيات التصميم بالـ Android وتعلمها، منها: -
• Layout (Frame, Linear, Relative, Constraint)
• View (TextView, EditView, ImageView, Button)
بمجرد ما تنتهي من استكشاف أساسيات التصميم المذكورة سابقاً، انتقل لاستكشاف الجزئيات المتقدمة من التصميم وتعلمها، منها: -
• ListViews
• RecycleView
• Fragments
• Dialogs
• Toast
• Bottom Sheets
• Navigation Drawer
• Tabs
• Animations
- User Input Controls.
- Menus.
- Screen Navigation.
- Drawables.
- Themes and Styles.
- Fragments ودورة حياتها.
- مقدمة للـ Material Design ومكتبتهم.
- Testing the UI.
٣. Custom Views في Android:
بعد إتقان المواضيع الخاصة ببناء واجهات المستخدم في Android قد تحتاج لبناء واجهات خاصة بك لعدم تلبية الواجهات الموجودة رغباتك أو رغبات من تعمل له التطبيق، هنا سيفيدك مفهوم الـ Custom Views ... وتحتاج قبل أن تبدأ تعلم هذا المفهوم للتالي: -
- معرفة جيدة لمفهوم الوراثة Inheritance.
- معرفة جيدة لمفهوم تعدد الأشكال Polymorphism.
- معرفة خصائص كل واجهة قد تحتاجها، مثل: TextView – ImageView – Buttons إلخ ...
مكتبات ستفيدك:
• مكتبة android.widgets: الواجهات القديمة تقع فيها.
• مكتبة android.appcompat.widgets: الواجهات الجديدة تقع فيها.
• مكتبة android.graphics: تحتوي على مجموعة كبيرة من الـ classes التي تساعدنا على بناء واجهاتنا الخاصة من الصفر، كبناء واجهة تستعرض ملفات الـ PDF أو استخدام Canvas أو استخدام opengl-es – إلخ ...
٤. تشغيل التطبيق في الخلفية أو ما يسمى بالـ Background tasks، وتشمل المواضيع: -
- توصيل التطبيق بالإنترنت.
- Broadcast Receiver.
- Services.
- الاشعارات.
- Alarm Manager.
٥. Sensor, Location and Maps، وتشمل المواضيع:
- أساسيات Sensor في Android.
- Motion and Position – استشعار الحركة والتوقف.
- خدمات الموقع Location في Android.
- Google Maps API.
- Google Places API.
٦. التعامل مع البيانات في الـ Android، ويشمل المواضيع:
- System Files.
- Shared Preferences.
- App Setting.
- SQLite primer.
- Store data using SQLite database في Android.
- Firebase.
- Content Providers في Android.
- Content Resolver في Android.
- Content Loader في Android.
٧. تطوير الأداء في تطبيقات Android، ويشمل المواضيع:
- Performance Parameters.
- Profiling Tools.
- Rendering and Layout.
- Garbage Collection.
- Memory Leaks في تطبيقات Android.
- أفضل الممارسات في تطوير تطبيقات الـ Android.
٨. التعامل مع بناء تطبيق Android (Build):
عندنا أداة اسمها Gradle، وهي نظام بناء مسؤول عن تجميع الكود واختباره ونشره ومن ثم تشغيل التطبيق على الجهاز. تعلم كيف تتعامل مع: -
• Gradle
• Debug / Release Configuration
٩. الـ Native Support (اذا احتجته)، ويشمل المواضيع:
- JNI.
- NDK.
- CMake.
١٠. الـ Threading في Android:
• Threads
• Looper
١١. تعرف على Android Jetpack:
مجموعة من المكتبات الرسمية لمساعدة المطورين على اتباع أفضل الممارسات، وتقليل الأكواد النمطية، وكتابة الأكواد التي تعمل باستمرار عبر إصدارات Android والأجهزة بحيث يمكن للمطورين التركيز على الكود فقط.
أمثلة:
AppCompat library – Architecture components – Animation and transitions – Android Ktx – Navigation – Paging – Slices – WorkManager - الخ ...
١٢. معماريات Android:
أشهر ثلاث معماريات في Android: -
• MVVM (Model–View–ViewModel)
• MVI (Model-View-Intent)
• MVP (Model View Presenter)
١٣. تعلم الـ Back-end لتطبيقاتك:
هي جانب التطبيق من جهة الخادم Server-side، حيث تركز بشكل أساسي على كيفية عمل البرنامج ...
يتكون هذا النوع من التطوير عادةً من ثلاثة أجزاء:
خادم – لوحة تحكم – قاعدة بيانات.
- أمثلة على لغات البرمجة المستخدمة في هذا النوع من التطوير:
Java – Kotlin – PHP – Ruby on Rails – Python و #C وغيرهم الكثير!
طبعاً أنت بتستخدم وحده منهم فقط، ابحث عن طريقة استخدامها بالـ Back-end.
• مواضيع ستزيد خبرتك بالـ Back-end: -
- APIs (RESTful APIs).
- JSON.
- JSON to (GET || POST) the data (from || to) the server.
١٤. أساليب الحماية في Android، وتشمل المواضيع:
• Encrypt / Decrypt
• Proguard
١٥. إصدار التطبيق، ويشمل المواضيع:
•Signed APK
• Google Play Store
١٦. استمر بالممارسة وابقى على إطلاع بأهم التحديثات الصادرة في هذا المجال:
مع التدريب يأتي الإتقان؛ للاستمرار بالتدريب المتواصل أهمية كبرى لتتقن أي شيء!
ثانياً/ مواقع ستفيدك في رحلتك التعليمية:
• الموقع الرسمي Documentations لتوثيقات تطوير تطبيقات Android:
developer.android.com
• موقع المطورين:
developer.android.com
• مواقع تحتوي على دورات قوية لتعلم هذا المجال:
- Udacity.
udacity.com
- Coursera.
coursera.com
- Udemy. أنت وحظك مع الدورة أحياناً، لذلك شيك على التقييم، التعليقات أو خذ توصية قبل الإشتراك
Udemy.com
- edX.
edx.org
- TutorialsPoint.
tutorialspoint.com
- Raywenderlich. لتعليم جميع أنواع تطوير التطبيقات (Android, iOS, Flutter)
raywenderlich.com
ثالثاً/ ٣ قنوات أجنبية في الـ Youtube مخصصة لشرح تطوير تطبيقات Android:
- Android Coding
youtube.com
- Coding in Flow
youtube.com
- Stevdza-San
youtube.com
انتهى الثريد، شكراً لك.
إذا وجدت أن هذا الثريد مفيد، يمكنك عمل إعجاب وإعادة تغريد لنشره للأشخاص الذين قد يرون أنه مفيد أيضاً.
@MusaadTech ➔ تابعني لمزيد من المحتوى المماثل لهذا وأكثر بكثير!
لا تنسى تفعل التنبيهات لتغريداتي، ليصلك كل جديد من ثريداتي 👍🏻

جاري تحميل الاقتراحات...