معماری MVVM معروف ترین و پراستفاده ترین معماری در اندروید هستش.
این معماری توسط تقریبا 80درصد از شرکت ها و کارفرما ها مورد استفاده قرار میگیره و برای هر کسی که میخواد برنامه نویس اندروید رو یاد بگیره تسلط بر معماری MVVM جز واجبات هستش.
معماری MVVM در اندروید
این معماری مخفف کلمه Model View ViewModel هستش.
هرکدوم از مواردی که در بالاتر بهش اشاره کردیم یک وظیفه خاصی رو در این معماری برعهده دارن.
- Model : این بخش شامل Data class هایی هستش که برای ارتباط با بخش های مختلف از جمله سرور، دیتابیس و … ساخته میشه.
- View : این بخش وظیفه کنترل کردن ویوهای مختلف در Activity یا Fragment را برعهده داره، هر ویوای که باید اطلاعاتی رو نمایش بده در این بخش مشخص میشه.
- ViewModel : سومین بخش این معماری که در واقع اصلیترین بخش هم هست، وظیفه کنترل کردن اطلاعات رو برعهده داره. یعنی لاجیک اصلی اپلیکیشن توی این بخش کنترل میشه، اینکه اطلاعات باید از کجا و به چه شکلی دریافت بشه و …
البته یک بخش دیگه ای هم به نام Repository وجود داره که جز موارد اصلی بحساب نمیاد ولی یک نقش خیلی مهمی رو در این معماری ایفا میکنه. (توی این دوره به طور کامل نحوه استفاده کردن از Repository در معماری MVVM آموزش داده شده)
پروژه رژیم غذایی
توی این دوره تصمیم گرفتیم معماری MVVM رو در قالب یک پروژه کامل و بزرگ آموزش بدیم و از کدهای تجاری و بسیار حرفه ای استفاده کنیم.
کدها و نکاتی که توی این دوره آموزش داده شدن دقیقا کدهایی هستش که در پروژه های خیلی بزرگ و تجاری مورد استفاده قرار میگیرن.
پس برای استفاده کردن از این دوره باید قبلش یک دانش مختصری راجب معماری MVVM در اندروید داشته باشید.
همونطور که بالاتر توضیح دادیم این دوره، درواقع جز موارد آموزشی دوره نخبگان معماری هستش ولی با توجه به درخواست های دوستانی که قصد داشتند پروژه های دوره نخبگان معماری رو به صورت مجزا تهیه کنن و ازش استفاده کنن برای همین منظور این دوره به صورت مجزا ساخته شده است.
تکنولوژی های مورد استفاده
دوره آموزش معماری MVVM به کمک پروژه رژیم غذایی با آخرین تکنولوژی های سال 2023 تهیه شده تا بتونید به جدیدترین دانش اندروید تسلط کامل داشته باشید.
تکنولوژی های مورد استفاده :
- MVVM
- Single activity
- Material components
- Navigation components
- Dagger – Hilt
- Room
- Datastore
- Retrofit
- OkHttp
- OkHttp interceptor
- Coroutines
- Flow
- LiveData
- ViewModel
- Extensions
- Lifecycle
- Coil
- Gson
- Calligraphy
- Lottie
- Shimmer
- DynamicSize
تمامی این موارد برای برنامه نویس اندروید جز واجبات هست و باید این تکنولوژی ها تسلط کامل داشته باشه که توی این دوره تمامی این موارد به طور کامل آموزش داده شده اند.
صفحات مختلف پروژه
این پروژه صفحات مختلفی داره که در ادامه هر کدوم رو توضیح خواهم داد.
- صفحه اسپلش با قابلیت نمایش انیمیشن
- صفحه ثبتنام در برنامه همراه با چک کردن درست بودن آدرس ایمیل
- صفحه اصلی که خودش شامل صفحات : نمایش غذاها – جستجو – غذای شانسی – علاقه مندی ها میشه
- صفحه نمایش غذاها : توی این صفحه ما برترین غذا ها و لیست همه غذاها رو نشون میدیم. برای نمایش برترین غذاها از اسلایدر استفاده کردیم که بدون هیچ کتابخونه ای و توسط خودمون به طور کامل درستش میکنیم. در این صفحه اطلاعات به طور کامل کَش میشن. یعنی به محض اینکه یکبار این صفحه توسط کاربر دیده بشه، از سری های بعدی به طور کامل از کَش میخونه و نیاز نیستش که اینترنت کاربر دوباره مصرف بشه (مثل اینستا.گرام)
- صفحه جستجو : توی این صفحه عملیات مربوط به جستجو غذاها رو انجام میدیم و برای افکت جستجو هم از موشن لایوت استفاده کردیم.
- صفحه غذای شانسی : یکی از دغدغه خانوم ها اینه که امروز چه غذایی رو درست کنن، توی این صفحه هرموقع که واردش میشی به صورت رندم یک غذایی رو پیشنهاد میده.
- صفحه علاقه مندی ها : این صفحه غذاهایی رو نشون میده که بهشون علاقه داری و به علاقه مندی های خودت اضافه کردی. اینجا هم همه چیز کَش میشن.
- صفحه منو : توی این صفحه میتونی غذاهای مختلف رو با توجه به علاقهت فیلتر کنی و دقیقا غذاهایی رو ببینی که دوست داری.
- صفحه جزئیات غذاها : توی این صفحه جزئیات کامل غذاها رو با کلی امکانات میتونی مشاهده کنی. این صفحه هم همه اطلاعات کَش میشن.
- صفحه دستور پخت : این صفحه مربوط به دستور پخت غذاها هستش که با جزئیات کامل و مرحله به مرحله میتونی نحوه پخت اون غذا آشنا بشی و راحتتر درستش بکنی.
- صفحه منبع غذا : توی این صفحه یک WebView رو به طور کامل با توجه به نیازهای خودمون شخصی سازی میکنیم و یک وب ویو حرفه ای رو باهم درست میکنیم.
برای نمایش تمامی تصاویر اپلیکیشن به بخش گالری مراجعه کنید.
دمو اپلیکیشن
توی ویدیو زیر میتونی دمو اپلیکیشن آموزش معماری MVVM با پروژه رژیم غذایی رو ببینی و بهتر با قابلیت های اون آشنا بشی.
سرفصل پروژه Recipe app
- معرفی و نمایش دمو پروژه Recipe App
- معرفی منابعی مورد نیاز
- پیاده سازی رابط کاربری بخش ثبتنام – قسمت اول
- تکمیل رابط کاربری بخش ثبتنام
- آموزش اضافه کردن فونت به کل پروژه به کمک Calligraphy
- پیاده سازی تزریق وابستگی مربوط به اینترنت
- پیاده سازی کلاس چک کردن اینترنت
- پیاده سازی Api Interface
- پیاده سازی کلاس های DataSource – Repository
- پیاده سازی کلاس های BaseResponse و RegisterViewModel
- پیاده سازی ثبتنام در اپلیکیشن – قسمت اول
- قسمت دوم ثبتنام در اپلیکیشن همراه با آموزش کامل LoggingInterceptor
- پیاده سازی DataStore برای ثبتنام
- پیاده سازی صفحه Splash – قسمت اول
- تکمیل صفحه Splash
- پیاده سازی صفحه اصلی و BottomMenu
- پیاده سازی رابط کاربری Popular item
- پیاده سازی رابط کاربری Recent item
- پیاده سازی رابط کاربری صفحه Recipes
- پیاده سازی نمایش اطلاعات کاربری و خواندن API Docs
- آموزش استفاده کردن از Postman
- پیاده سازی API مربوط به برترین غذاها در صفحه Recipes
- پیاده سازی کلاس BaseDiffUtils و Popular Adapter
- تکمیل کلاس Popular Adapter
- بارگذاری اطلاعات برترین غذاها در صفحه Recipe
- ساختن اسلایدر شخصی برای برترین غذاها (بدون افزودن کتابخونه)
- پیاده سازی ViewModel آخرین غذاها در صفحه Recipe
- پیاده سازی Adapter آخرین غذاها در صفحه Recipe
- تکمیل Adapter آخرین غذاها در صفحه Recipe
- پیاده سازی Entity و Dao برای کش کردن اطلاعات
- پیاده سازی TypeConverter و Database در Room
- کَش کردن اطلاعات برترین غذاها
- پیاده سازی کَش کردن اطلاعات برترین غذاها در فرگمنت
- پیاده سازی کَش کردن اطلاعات آخرین غذاها
- پیاده سازی رابط کاربری صفحه Menu
- پیاده سازی صفحه Menu
- پیاده سازی DataStore برای صفحه Menu
- پیاده سازی ذخیره کردن و نمایش اطلاعات در صفحه Menu
- پیاده سازی فیلتر کردن اطلاعات در صفحه Recipe
- پیاده سازی رابط کاربری صفحه جزئیات – قسمت اول
- پیاده سازی رابط کاربری صفحه جزئیات – قسمت دوم
- پیاده سازی رابط کاربری صفحه جزئیات – قسمت سوم
- پیاده سازی رابط کاربری بخش Itemها در صفحه جزئیات
- پیاده سازی API مربوط به صفحه جزئیات
- نمایش اطلاعات در Viewها در صفحه جزئیات
- پیاده سازی Adapterهای صفحه جزئیات
- پیاده سازی صفحه Steps
- پیاده سازی WebView اختصاصی
- پیاده سازی غذاهای مشابه در صفحه جزئیات
- پیاده سازی ViewModel برای کَش کردن صفحه جزئیات
- تکمیل کَش کردن اطلاعات در صفحه جزئیات
- پیاده سازی علاقه مندی ها در صفحه جزئیات
- پیاده سازی صفحه علاقه مندی ها
- پیاده سازی صفحه Lucky
- پیاده سازی رابط کاربری صفحه Search همراه با انیمیشن موشن لایوت
- تکمیل صفحه Search
پشتیبانی دوره
دوره آموزش معماری MVVM شامل پشتیبانی کامل میشه، یعنی هرموقع سوالی یا مشکلی داشتی میتونی از طریق تیکت مشکلت رو مطرح کنی.
زمان ارسال تیکت میتونی از عکس، ویدیو، صدا هم استفاده کنی.
یعنی خیلی راحت میتونی مشکلی که داری رو صدات رو توسط بخش پشتیبانی ضبط کنی و بفرستی.
برای اینکار میتونی وارد حساب کاربریت بشی و از بخش تیکت، یک تیکت جدید ارسال کنی.
خیالت هم راحت باشه که مشکلاتت در کمترین زمان ممکن به طور کامل برطرف خواهند شد.
پخش فایل های آموزشی
برای پخش فایل های آموزش از برنامه اسپات پلیر استفاده شده.
پس بهتره که با توجه به نوع سیستم عامل، برنامه رو دانلود کنی تا بتونی ویدیوها رو ببینی.