ضرورت توسعه این معماری

همانطور که می دانیم معماری ها در جهت هر چه بهتر سازماندهی کردن کدها و جهت نگهداری هر چه بهتر در زمان توسعه به وجود آمدند در این میان معماری جدید MVI با استفاده از Reactive Programming راهکار تازه ای ارایه کرده است، این معماری در اصل یک معماری برای Cycle.js در جاوا اسکریپت است که در اندروید هم پیاده سازی شده است همچنین در این معماری امکان استفاده از Rxjava و LiveData وجود دارد.

کلمات در این معماری مخفف Model-View-Intent هستند و اساس آن بر پایه Intent است این لایه نشان دهنده قصد یا تمایلی برای انجام عملی از طرف کاربر است یه این معنا که این لایه یک ویو دریافت می کند و می‌تواند Model را به حالت جدیدی ترجمه کند.

لایه Model

این لایه کار نگهداری پایگاه های داده، تمامی داده های مربوط به API ها پ غیره را برعهده دارد، همچنین در این معماری کار این لایه کمی متفاوت است به این صورت که خروجی از Intent می‌گیرد و بنا به حالت (State) که لازم است آن را برای کاربر نهایی تغییر می‌دهد.

لایه View

در نهایت در این لایه State های جدید باعث ایجاد تغییرات در View خواهند شد و نتیجه نهایی به کاربر نشان داده خواهد شد.