یه دولوپر گیک مانند ولی اجتماعی طور! :)
برنامه نویسی اندروید با کاتلین و معماری MVVM - بخش اول
من تقریبا ۴ سالی میشه که برنامه های اندروید و جاوا EE و لاراول رو توسعه میدم و این یکی از مشکلات عدم تمرکز من در توسعه ی تخصصی در یک زمینه ی خاصی بود ولی در دو سال اخیر سعی کردم پروژه های تجاری بزرگتری بگیرم و فوکوس بیشتری روی اندروید داشته باشم ، سال پیش با معماری MVP برنامه هام توسعه رو میدادم (یکی دوتا تونستم با MVP کار کنم چون برای پروژه های کوچیک و ساده MVP زمان بر بود) ، ولی امسال هم زبان توسعه اندروید رو تغییر دادم و هم الگوی معماری رو.
خب این مطلب و مطالب آینده ای که در مورد کاتلین و برنامه نویسی پیشرفته اندروید می نویسم بیشتر به درد کسانی میخوره که به برنامه نویسی اندروید تسلط دارن و میخوان بیشتر در این زمینه مطالعه کنن ، خب اولین مسئله ای که هست اینه که شما برنامه رو برای چه ارگانی یا شخصی می نویسید؟ آیا پروژه در حدی هست که نیاز باشه چند نفر توسعه دهنده اندروید روش کار کنن؟ آیا نیاز هست که بصورت کامل براش تست کیس بنویسید؟ خب این موارد رو قبل از آغاز باید پاسخ داد برای اینکه تجزیه و تحلیل پروژه راحت تر بشه و بدونید آیا به تنهایی از عهده اتمام پروژه بر میاید یا نه.
خب برای اینکه یه پروژه اندروید رو بتونیم به چند بخش داده ها (Data) و منطق (Logic) و رابط کاربری (UI) تقسیم کنیم ، باید به نوشتن تمام بخش ها در اکتیویتی و فرگمنت پایان بدیم ، و راه حلش استفاده از الگوی معماری MVVM یا MVP هست که ما در مورد MVVM صحبت می کنیم.
این عکس گویای الگوی معماری MVVM هست :
هدف MVVM این هست که با یکسری کلاس های ViewModel پیچیدگی view رو از model و پیچیدگی model از view رو پنهان کنه ، هدف این هست که در یک کلاس اکتیویتی ما داده رو مستقیما دستکاری نکنیم و همچنین با تغییر داده ها مستقیما کامپوننتی رو تغییر ندیم ، خب اینکه کارمون رو زیاد میکنه و حجم کار بالا میره ، بله درسته ، ولی تست هر بخش به تنهایی و جلوگیری از ایرادهای ناخواسته (مثل تغییر وضعیت lifecycle که به اجبار یه فرگمنت یا اکتیویتی رو destroy میکنه و باعث از دست رفتن اطلاعات میشه) رو راحت تر میکنه.
خب ما قبل از اینکه معماری MVVM رو کامل شرح بدیم اول آدرس گیت هاب پروژه اولیه MVVM خودم رو که از چندتا پروژه ی خارجی اقتباس کردم رو براتون میزارم تا مشاهده و استفاده کنید این پروژه بر اساس تصویر زیر تقریبا ساخته شده و داره تکمیل میشه :
اینم آدرس گیت هاب : پروژه KotlinMVVM
بزودی بخش دوم رو میزارم و به شرح کامل این پروژه میپردازم.(نگران نباشید صفر تا صد از dagger گرفته تا rxjava و databinding و ... رو توضیح میدم)
ممنون از اینکه وقت گذاشتید اگر مشکلی در متن یا سوالی بود در خدمتم ...
مطلبی دیگر از این انتشارات
بخش دوم، نصب و راه اندازی Python Flask Framework
مطلبی دیگر از این انتشارات
ترفندهای RxJava در اندروید - قسمت اول
مطلبی دیگر از این انتشارات
دیباگ کدهای PHP وردپرس در محیط مرورگر