ضرورت توسعه این معماری
همانطور که می دانیم معماری ها در جهت هر چه بهتر سازماندهی کردن کدها و جهت نگهداری هر چه بهتر در زمان توسعه به وجود آمدند در این میان معماری جدید MVI
با استفاده از Reactive Programming
راهکار تازه ای ارایه کرده است، این معماری در اصل یک معماری برای Cycle.js
در جاوا اسکریپت است که در اندروید هم پیاده سازی شده است همچنین در این معماری امکان استفاده از Rxjava
و LiveData
وجود دارد.
کلمات در این معماری مخفف Model-View-Intent
هستند و اساس آن بر پایه Intent
است این لایه نشان دهنده قصد یا تمایلی برای انجام عملی از طرف کاربر است یه این معنا که این لایه یک ویو دریافت می کند و میتواند Model
را به حالت جدیدی ترجمه کند.
لایه Model
این لایه کار نگهداری پایگاه های داده، تمامی داده های مربوط به API
ها پ غیره را برعهده دارد، همچنین در این معماری کار این لایه کمی متفاوت است به این صورت که خروجی از Intent
میگیرد و بنا به حالت (State
) که لازم است آن را برای کاربر نهایی تغییر میدهد.
لایه View
در نهایت در این لایه State
های جدید باعث ایجاد تغییرات در View
خواهند شد و نتیجه نهایی به کاربر نشان داده خواهد شد.