نقشه راه و راهنمای مسیر برای تبدیل شدن به توسعه دهنده ی بهتر اندروید

چهارشنبه ۱۱ مهر ۹۷ توسط فاطمه بهاروند

بیایید توسعه دهنده ی بهتری شویم.

این مقاله مختص کسانی است که:

  • می خواهند اندروید را فرابگیرند اما نمیدانند از کجا باید شروع کنند؛
  • همچنین برای کسانی که توسعه ی اندروید را آغاز نموده اند اما تمایل دارند در این راه بهتر شوند.

هدف این است که یک نقشه ی راه و راهنمایی مناسب برای تبدیل شدن به یک توسعه دهنده ی بهتر اندروید در دست داشته باشیم. اگر این راهنما در این راه کمک حال شما واقع گردد رسالت و ماموریت من به درستی انجام گشته است.

خب شروع کنیم:

  • اول از همه برای توسعه ی اندروید می بایست سواد و دانش اولیه ای نسبت به زبان جاوا داشته باشید. یادگیری زبان جاوا را از طریق کتاب Head-First Java فرابگیرید. کتاب را از اینجا دریافت نمایید.
  • محیط توسعه نرم افزار یا IDE اندروید استودیو را بر روی کامپیوتر یا لپ تاپ خود نصب کنید. برای دانلود به این لینک مراجعه کنید.
  • هنگامی که به مهارت نسبی در زبان جاوا رسیدید یا در دوره های برنامه نویسی اندروید شرکت کنید و یا کتابی مرتبط با اندروید بگیرید با هر کدام که راحت تر هستید آن را برای خود تهیه نمایید. راحت بودن شما با دوره یا کتاب بسیار مهم است. هنگامی که در یک دوره هستید یا کتابی می خوانید همیشه مطالب آن ها را در یک برنامه اعمال کنید. منظور من این است که با توجه به هر مطلبی که خواندید یک چیزی بسازید.

بهترین راه یادگیری مطالب انجام دادن و امتحان آن ها است.

خودت را به عنوان یک توسعه دهنده ی اندروید ارتقا بده.

  • درک lifecycle اکتیویتی به منظور ساخت یک برنامه ی عاری از bug حائز اهمیت است.

https://developer.android.com/guide/components/activities/activity-lifecycle

  • درک فرگمنت و چرخه ی حیات آن مهم است چرا که عمدتا پشتیبانی طراحی انعطاف پذیر و پویا UI بر روی صفحه نمایشگر بزرگ مانند تبلت ها را فراهم می نماید.

https://developer.android.com/guide/components/fragments

  • چگونگی اشکال زدایی برنامه ی اندرویدی خود را فرابگیرید زیرا این مهمترین مهارت برای هر توسعه دهنده است. اندروید استودیو یک debugger را مهیا ساخته که به شما اجازه می دهد کارهای مهمی را انجام دهید.

https://developer.android.com/studio/debug

  • در مورد navigationها و task و backstack مطالبی را فرابگیرید. اکتیویتی های اندروید ساختار منطقی صفحات را تشکیل می دهند و ما می خواهیم از این طریق با کاربر تعامل داشته باشیم. ارتباط هر اکتیویتی با سایر اکتیویتی ها برای داشتن یک تجربه ی کاربری خوب بسیار مهم است.

https://blog.mindorks.com/android-task-and-back-stack-review-5017f2c18196

  • از context در برنامه های اندرویدی خود درک کاملی داشته باشید. برای توسعه ی یک برنامه ی اندرویدی بهتر ما باید در مورد context اطلاع داشته باشیم. Context در هر قسمتی از توسعه ی اندروید حضور دارد و از جمله مهمترین موارد به حساب می آید درنتیجه می بایست از نحوه ی استفاده ی صحیح آن مطلع باشیم.

https://blog.mindorks.com/understanding-context-in-android-application-330913e32514

  • در مورد جزئیات threadها اطلاعاتی کسب کنید. همانطور که ماشین مجازی جاوا اجازه می دهد چندین thread به طور همزمان اجرا شوند ما نیز باید از مزایای محیط با multi-threading به درستی بهرمند شویم.

https://developer.android.com/reference/java/lang/Thread

https://youtu.be/qk5F6Bxqhr4

https://youtu.be/0Z5MZ0jL2BM

https://youtu.be/tBHPmQQNiS8

https://youtu.be/uCmHoEY1iTM

  • چگونگی مدیریت پیکربندی و شکل دهی تغییرات را فرابگیریم. پیکربندی بعضی از دستگاه ها در حین اجرای برنامه تغییر می کند مانند screen orientation، دسترسی به صفحه کلید و همچنین هنگامی که کاربر حالت چند پنجره ای(multi-window) را فعال نموده است. ما باید نحوه ی مدیریت این تغییرات را یاد بگیریم.

https://developer.android.com/guide/topics/resources/runtime-changes

  • در مورد پایگاه داده و SQL بیاموزید.

https://youtu.be/FR4QIeZaPeM

  • در مورد REST و HTTP اطلاعات کسب کنید.

https://youtu.be/Q-BpqyOT3a8

  • در مورد ارائه دهندگان محتوا(content provider) بیاموزید. ارائه دهندگان محتوا به منظور اشتراک گذاری داده ها بین اپلیکیشن ها به کار می روند، آن ها مکانیسم هایی برای تعریف این داده ها و همچنین فشرده سازی آن ها به کار می گیرند.

https://developer.android.com/guide/topics/providers/content-providers

  • در حیطه ی کتابخانه هایی که توسط توسعه دهندگان ارائه می شود نیز اطلاعاتی کسب کنید. ما Mindorks Android Store را برای جست و جوی کلیه ی کتابخانه ها، پروژه ها، ابزارها و برنامه های اندرویدی مهم داریم. آن ها را با ستاره های githubشان مقایسه کنید.

https://mindorks.com/android/store

  • هسته ی اندروید را درک کنید. Looperو Handler و HandlerThread راه های اندروید برای حل مشکلات برنامه نویسی ناهمزمان است. این موارد ساختارهای شست و رفته محسوب می شوند که چارچوب پیچیده ی اندروید ساخته است.

https://blog.mindorks.com/android-core-looper-handler-and-handlerthread-bd54d69fe91a

https://youtu.be/adPLIAnx9og

  • در مورد Service و IntentServiceها بیاموزید. یک service در اصل یک component است که برای اجرای عملکردها در پس زمینه از جمله اعمالی نظیر پخش موسیقی، مدیریت تبادلات شبکه، ارتباطات ارائه دهندگان محتوا و غیره... مورد استفاده قرار می گیرد. موارد ذکر شده هیچگونه رابط کاربری ندارند.

https://developer.android.com/guide/components/services

https://youtu.be/9FweabuBi1U

https://youtu.be/NJsq0TU0qeg

  • کاوش در هنگام استفاده از ArrayMap برای عملکرد بهتر برنامه اندرویدی است.

https://blog.mindorks.com/android-app-optimization-using-arraymap-and-sparsearray-f2b4e2e3dc47

https://youtu.be/ORgucLTtTDI

  • در مورد ابزارهایی که به منظور سنجش میزان استفاده از حافظه، استفاده از cpu و غیره مورد استفاده قرار می گیرند اطلاعاتی کسب کنید. معیارهای کمی وجود دارند که شما باید هنگام توسعه برنامه اندرویدی به طور مداوم آن ها را اندازه بگیرید.

https://youtu.be/7ls28uGMBEs

https://blog.mindorks.com/android-app-performance-metrics-a1176334186e

  • نحوه ی پیاده سازی ها و ذخیره ی اطلاعات را فرابگیرید.

https://youtu.be/7lxVqqWwTb0

  • چگونگی بهینه سازی فرکانس های درخواستی شبکه را یاد بگیرید.

https://youtu.be/nDHeuEM30ks

  • در مورد سنسورها، GPS و شتاب(Acceleration) اندروید اطلاعاتی کسب کنید.

https://developer.android.com/guide/topics/sensors/sensors_motion

  • در مورد موقعیت مکانی و نقشه ها بیاموزید.

https://developer.android.com/guide/topics/location

  • درباره ی ایجاد Viewهای سفارشی اطلاعات کسب کنید. برای توسعه ی یک برنامه ی اندرویدی بهتر ما باید بدانیم چگونه می توان یک View سفارشی ایجاد کنیم.

https://developer.android.com/guide/topics/ui/custom-components

https://blog.mindorks.com/how-the-android-image-loading-library-glide-and-fresco-works-962bc9d1cc40

  • نگهداری مرجع های objectهایی که دیگر مورد نیاز نیستند روش مناسبی نیست، آزادسازی مرجع اشیا بعد از ذخیره سازی آن ها عمل مفیدی برای جمع آوری زباله(موارد اضافی) به منظور از بین بردن آن objectها محسوب می شود که نهایتا این موضوع به حل مشکلات نشت حافظه می انجامد. اگر objectها را بدون نیاز به آن ها نگهدارید برنامه دچار نشت حافظه می شود. چگونگی تشخیص و رفع نشت حافظه را در برنامه های اندرویدی فرابگیرید.

https://blog.mindorks.com/detecting-and-fixing-memory-leaks-in-android

https://youtu.be/BkbHeFHn8JY

  • در مورد الگوهای عملکردی در برنامه های اندرویدی اطلاعات کسب کنید. چگونه می توان عملکرد برنامه را بهبود بخشید.

https://youtu.be/pzfzz50W5Uo

https://youtu.be/we6poP0kw6E

https://youtu.be/1iaHxmfZGGc

https://youtu.be/WH9AFhgwmDw

https://youtu.be/CaMTIgxCSqU

https://youtu.be/VzYkVL1n4M8

  • در مورد نحوه ی بهبود عملکرد باطری بیاموزید.

https://youtu.be/81W61JA6YHw

  • در مورد زمان بندی عرضه و انتشار برنامه اطلاعاتی کسب نموده و در راستای انتخاب زمان مناسب تلاش کنید.

https://youtu.be/Vw1G1s73DsY

  • بیاموزید که چگونه می توان سایز APK برنامه را کاهش داد.

https://blog.mindorks.com/how-to-reduce-apk-size-in-android-2f3713d2d662

https://medium.com/mindorks/android-app-bundle-6c65ce8105a1

https://medium.com/mindorks/android-app-bundle-aab-98de6dad8ba8

https://youtu.be/u5xP4tFQlkA

  • در مورد Bitmapها اطلاعات کسب کنید. به همان میزان که قسمت عظیمی از حافظه را در برمیگیرد می تواند به راحتی (OOM (out of memory را نیز کاهش دهد. کاربران محتوا را دوست دارند! به خصوص زمانی که محتوا به خوبی فرمت شده و ظاهر مناسبی داشته باشد. برای مثال عکس ها محتوای زیبایی به شما می آیند، عمدتا به دلیل ویژگی های خود در هر تصویر هزاران حرف را انتقال می دهند. آن ها همچنین حافظه ی زیادی مصرف می کنند. میزان زیادی از حافظه!

https://developer.android.com/topic/performance/graphics

  • Componentهای معماری اندروید را فرابگیرید.

https://developer.android.com/topic/libraries/architecture

  • درباره معیارهای کد نویسی بیاموزید.

https://codelabs.developers.google.com/codelabs/android-testing/index.html#0

https://codelabs.developers.google.com/codelabs/android-perf-testing/index.html#0

  • RxJava را فرابگیرید. امروزه RxJava برای توسعه ی یک برنامه ی اندرویدی ضروری است.

https://blog.mindorks.com/a-complete-guide-to-learn-rxjava-b55c0cea3631

  • کاتلین را بیاموزید.

https://blog.mindorks.com/a-complete-guide-to-learn-kotlin-for-android-development-b1e5d23cc2d8

  • در مورد dependency injection(تزریق dependencyها) و Dagger اطلاعاتی کسب کنید.

https://blog.mindorks.com/introduction-to-dagger-2-using-dependency-injection-in-android-part-1-223289c2a01b

https://blog.mindorks.com/the-new-dagger-2-android-injector-cbe7d55afa6a

  • معماری MVP را فرابگیرید.

https://mindorks.com/course/android-mvp-introduction

https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-1-74efaf1cda40

  • معماری MVVM را بیاموزید.

https://github.com/MindorksOpenSource/android-mvvm-architecture

  • چگونگی اعمال پروگارد در یک برنامه ی اندرویدی را فرابگیرید. پروگارد ابزاری است که کد برنامه را کوچک ساخته، آن را پیچیده می کند(به منظور جلوگیری از دسترسی آسان هکرها) و به منظور کاهش سایز برنامه کد را بهینه می نماید.

https://blog.mindorks.com/applying-proguard-in-an-android-application

  • در مورد نکات امنیتی درباره ی ساخت یک برنامه ی امن و مطمئن اندروید اطلاعات کسب کنید.

https://developer.android.com/training/articles/security-tips

  • ابزارهای مفید و کاربردی اندروید را بشناسید، همگی سعادتمند و خوشبختیم که در دنیایی زندگی می کنیم که هر کسی ابزاری برای کمک به دیگران می سازد. این ابزارها توسعه ی اندروید را سریعتر و زندگی ما را آسانتر می سازد. فراموش کنیدکه این ابزارها را بیابید و از آن ها استفاده کنید.

https://blog.mindorks.com/android-development-useful-tools-fd73283e82e3

  • کدهای دیگران را بخوانید. این بهترین کاری است که یک توسعه دهنده می تواند انجام دهد بهترین روش کدزنی را بیاموزد. من شخصا احساس می کنم که مطالب فراوانی را از برنامه های منبع باز یادگرفته ام.
  • در مورد بهترین شیوه های توسعه ی اندروید اطلاعات کسب کنید.

https://blog.mindorks.com/android-development-best-practices-83c94b027fd3

https://github.com/futurice/android-best-practices

  • کار با Git را بیاموزید. Git یک سیستم کنترل ورژن برنامه به منظور پیگیری تغییرات در فایل های کامپیوتر و هماهنگ سازی کار بر روی آن فایل ها در بین چندین نفر است.

یادگیری اصول Git و GitHub.

https://youtu.be/D4h8Dbrjt4M?list=PL6nth5sRD25itbyNVUULAebzL-VLrLfkK

  • چگونگی بهبود کد با lint checkها را بیاموزید.

https://developer.android.com/studio/write/lint

  • کار با ابزار Gradle Build را فرابگیرید.

https://gradle.org

  • در پروژه های منبع باز شرکت کنید. من پروژه های منبع باز را دوست دارم. این پروژه ها در بهبود دانش من بسیار مفید بودند. بنابراین در پروژه های منبع باز شرکت کنید و با دیگران همکاری کنید.

https://opensource.guide/how-to-contribute

  • در مورد ادغام مداوم(Continuous Integration) اطلاعاتی کسب کنید. ادغام پیوسته تضمین می کند که کد شما در حال ساخته شدن بر روی یک سرور است، سروری که ماشین شما نیست. از CI مانند Jenkins و Circle CI و Travis و غیره استفاده نمایید.
  • با استفاده از pluginهای اندروید استودیو تولیدات بیشتری داشته باشید.

https://medium.com/mindorks/how-to-become-more-productive-in-android-with-android-studio-plugins-3beb3861fa7

  • همواره با توجه به تکنولوژی های جدید اندروید به روز شوید. البته از دست دادن و عدم استفاده از این تکنولوژی ها کار آسانی است. بهترین راه برای به روز ماندن و اطلاع از تکنولوژی های جدید عضو شدن در انجمن ها یا دنبال نمودن برخی از حساب های کاربری توئیتر است. شما می توانید در انجمن Mindorks عضو شوید ما همواره در مورد تکنولوژی های جدید در گروه Slack پست می گذاریم.

لینک گروه Slack در انجمن Mindorks

https://mindorks.com/join-community

ما همچنین در توئیتر درباره ی همه ی موارد جدید مرتبط با اندروید پست می گذاریم. از این رو ما را در توئیتر نیز می توانید دنبال کنید.

این لینک را باز نمایید و به کانال بپیوندید و بخشی از بزرگترین انقلاب یادگیری شوید.

الگوهای عملکردی اندروید را از سری ویدئوهایی که در کانال Android Developers قرار داده می شود مشاهده نموده و یاد بگیرید.

https://github.com/MindorksOpenSource/android-interview-questions

 

همواره پیروز و موفق باشید...


کلیدواژه: اندروید Android اندروید، اندروید استودیو توسعه دهنده ی اندروید Android Developer اپلیکیشن application

دیدگاه ها:
حامد احمدی
۱۱ ماه قبل
reply
همه مفید بود، مهم ترین ها آدرس سایت مایندورکز ، تاکید بر خواندن کدهای دیگران و لینک محور بودن این مقاله.
اما،
توضیح فراتر بود برای کسی که هیچ نمی داند و قرار است اندروید استودیو نصب کند. این برای کسی بود، به نظرم، که چند ماهی است که درگیر است.
نکته بعدی، از Firebase حرفی به میان نیامد.
و اینکه آدرس سایت های مناسب کتاب، و آموزش رایگان و غیررایگان، اگر با اهداف این سایت ارزشمند همسو است، مفید خواهد بود.
با تشکر
مهدی رضائی
۱۱ ماه قبل
reply
تشکر خیلی مفید هست و خواهد بود، البته من منتظرم آموزش خیلی از این موارد تو همین سایت قرار بگیره ان شاالله
ارسال دیدگاه:
برای ارسال دیگاه باید به سیستم وارد شوید و یا ثبت نام کنید. ثبت نام چند لحظه بیشتر زمان شما را نمیگیرد.