بهترین معماری برای برنامه‌های اندروید

شما برنامه‌نویس اندروید هستید؟ از چه معماری‌ای برای نوشتن نرم‌افزارهاتون استفاده میکنید؟ MVC؟ MVP؟ یا شاید هم معماری خاصی ندارید و هر جوری که دوست دارید کدها رو مینویسید؟

تست هم مینویسید؟ اگر آره چه اصولی رو تو معماری کدهاتون رعایت میکنید تا تست نوشتن آسون و یا اساسا ممکن بشه؟ و اگر تست نمینویسید چجوری میتونید مطمئن باشید که کد درستی نوشتید؟

یک سالی هست که این سوالها دغدغه منه. از آدمای زیادی پرسیدم و با برنامه‌نویسهای اندروید زیادی حرف زدم تا بفهمم هر کدومشون از چه معماری‌ای استفاده میکنند. هدف من اینه که میخوام برای برنامه‌های اندرویدیم تست بنویسم تا بتونم کارکرد صحیحشون رو گارانتی کنم. ولی تست نوشتن تو اندروید کار ساده‌ای به نظر نمیرسید. وقتی سعی میکنید کدها رو براساس MVC بنویسید منطق و UI در داخل اکتیویتی یا فرگمنتها به شدت درهم تنیده میشن و عملا خیلی وقتها تست نوشتن غیر ممکن میشه. همین شد که لزوم وجود یه معماری درست و اصولی که با ساختار برنامه‌های اندروید هم سازگار باشه رو بیشتر از قبل حس کردم و برای پیدا کردنش کفش آهنی به پا کردم!

نتایج جست‌و‌جوی من بین بقیه برنامه‌نویسها خیلی امیدوار کننده نبود! آدمها معمولا برای برنامه‌هاشون تست نمینویسن، شرکتها هم عموما به تست نوشتن اهمیت نمیدن و فرق بین کسی که برنامه‌اش رو برپایه یک معماری اصولی بنا میکنه و کسی که کدش صرفا کار میکنه رو متوجه نمیشن. همین باعث میشه که برنامه‌نویسها هم دلیلی برای نوشتن تست نداشته باشند!

جست‌و‌جوی من ادامه داشت تا به این آدم برخوردم. نوشته‌های این دختر خانم برای من شبیه نوری در تاریکی بود که بالاخره من رو به حقیقت رسوند! ایشون که یک برنامه‌نویس اندروید آلمانیه سه مطلب خیلی عالی در مدیوم نوشته و در این سه مطلب سه معماری MVC و MVP و MVVM رو بررسی کرده. اگر فرصت داشتید نوشته‌های مدیومش رو بخونید که عالیه. اما اگر نداشتید هم دیدن این پرزنتیشن تا حد زیادی بهتون ایده میده:

من این روزها تو اوقات آزادم دارم سعی میکنم روی MVVM کمی وقت بذارم به باهاش راحت شم! این کار لازم داره که با کتابخونه‌های جالبی مثل RxJava و Dagger2 کار کنم که در ابتدا باعث کندی روند پیشرفت میشن. اما سعی میکنم به زودی روی این معماری مسلط شم و اگر فرصت شد، همزمان با پیشرفت خودم، از روند کاری که میکنم مطلب بذارم تا اگر بتونم به کسایی که علاقمندند کمکی کرده باشم.

2 پاسخ به “بهترین معماری برای برنامه‌های اندروید”

  1. amin گفت:

    سلام ارش خان
    خیلی خیلی مطابت مفیده عزیز
    با قدرت بیشتری ادامه بده. اگه میشه یه پست هم بزار و معماری های mvc و mvp . وmvvm رو کامل توضیح بده
    اینکه چرا اصلا باید از معماری استفاده بشه/ و بزومش چیه؟
    خیلی ممنون

  2. یه چوچولو گفت:

    همونطوری که مشاهده می کنیم شما هر روز داره کارتون درست تر میشه… 🙂

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

android application Google I/O HomeBrew ImageMagick Material Design mobile PogressBar RecyclerView splash TEDxKish ux آموزش اندروید الوین تافلر اندروید اپلیکیشن برنامه نویسی برنامه نویسی اندروید برنامه‌نویسی برنامه‌نویسی اندروید تداکس کیش تعمیر تغییر سایز عکس با ترمینال خلاصه کتاب دانش داده دانشگاه دانشگاه ایده‌آل دزد دیتا ساینس رشته مهندسی کامپیوتر ریکامندرسیستم سیستم‌های توصیه‌گر فری‌لنس لپتاپ متریال دیزاین معرفی کتاب موج سوم نوار پیشرفت همایش هوش مصنوعی ُجزیره کیش کار کسب و کار یادگیری عمیق یادگیری ماشین