در توانستیم درکی از MVVM و LiveData بدست آوریم و همچنین کتابخانه های مورد نیاز پروژه را اضافه کردیم. همانطور که گفته شد، پروژه یک اپلیکیشن ساده است که لیستی از آلبوم ها را از سرور دریافت میکند و با استفاده از RecyclerView به کاربر نمایش می‌دهد. همچنین با کلیک بر روی یک آلبوم به صفحه آن آلبوم رفته و لیست آهنگ های آلبوم را نمایش می‌دهد. برای جلوگیری از طولانی شدن مطلب به جای قرار دادن بعضی از کد ها که نیاز خاصی به توضیح ندارند (مانند کد صفحه های xml برنامه) لینک کدهای صفحه مربوطه رو در خودم قرار دادم تا قابل استفاده باشد. در اولین قدم به سراغ پیاده سازی رابط کاربری برنامه می‌رویم. در این برنامه من از Fragment استفاده میکنم. بنابراین در صفحه یک TabLayout و ViewPager تعریف میکنم. در قدم بعد در فایل xml فرگمنتی که ایجاد کردم یک RecyclerView قرار میدهم. کد صفحه fragment _ home . xml به صورت زیر است: بعد از ساخت صفحه xml اکتیویتی main به سراغ نوشتن کد جاوا می‌رویم. در این صفحه کار خاصی صورت نگرفته، یک ViewPager تعریف کردیم و یک TabLayout که چهار تب یا به مقدار دلخواه برایش در نظر گرفته ایم. به کلیک بر روی هر تب، فرگمنت مربوط به آن تب باز می‌شود و می‌توانیم بین فرگمنت های تعریف شده سوییچ کنیم. برای کار کردن TabLayout باید یک کلاس دیگر تحت عنوان PagerAdapter بسازیم که تعداد تب ها و کلاس مربوط به هر تب را مشخص میکند که در MainActivity از این آداپتر استفاده کرده‌ایم. کد های کلاس PagerAdapter : یک فایل جاوای دیگر برای فرگمنت اصلی تحت عنوان HomeFragment ساخته که از کلاس Fragment ارث بری میکند و کد های زیر را در آن مینویسیم: همچنین کلاس آداپتر RecyclerAlbumAdapter به این صورت است: با فرستادن درخواست GET به سرور من یک لیست به صورت Json دریافت می‌کنم که شامل چهار فیلد id , title , artist , pic است که در دیتابیس بر روی سرور ذخیره شده اند. بنابراین یک کلاس برای قسمت Model پروژه ام ایجاد میکنم تحت عنوان AlbumModel که یک کلاس مدل ساده شامل فیلد های گفته شده، یک متد سازنده و Getter و Setter می‌باشد. کلاس AlbumModel : وقت استفاده از Retrofit است. برای استفاده از رتروفیت یک اینترفیس به نام Api به صورت زیر ایجاد می‌کنم که شامل دو درخواست از نوع GET است که اولی لیستی از نوع AlbumModel و دومی لیستی از نوع SongModel است: همچنین یک کلاس برای کانفیگ رتروفیت می‌نویسیم: این کلاس Builder رتروفیت است که شامل یک متد به نام retrofitConfig است که یک شی api برمیگرداند. تا اینجا بخش Model که شامل کلاس AlbumModel و بخش View که شامل کلاس های اکتیویتی و آداپتر ها می‌شود را طراحی کردیم. در قسمت بعد به مهم ترین بخش دوره یعنی ViewModel می‌رویم تا اتصال بین دیتا ها و رابط کاربری برنامه را برقرار کنیم: ) لینک قسمت سوم: