iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 21
0
Mobile Development

大一之 Android Kotlin 自習心路歷程系列 第 21

[Day 21] Android in Kotlin: MVVM 架構分享 —— 簡介

  • 分享至 

  • xImage
  •  

架構對於行動裝置應用程式開發是一個非常重要的部份
一個好的架構能夠使開發者好增加功能、debug,而且還擁有更高的可讀性

在學習架構以前,我的 side project 都是 activity 一路到底,我需要什麼功能,只要是在同一個畫面的都塞進去,這使得 activity 越來越大,也就變得不好閱讀。這時候就需要架構的協助了,他讓一個 activity 切出不同的功能出來。

在 android 的開發裡 有三種架構最為常見

  • MVC
  • MVP
  • MVVM

而在我查到的資料中,MVVM 被認為是最好的架構
所以我就也只學 MVVM 了 xD

MVVM分別代表三個部分

  • Model
  • View
  • ViewModel

其三個皆有不同的功能和定位

在開始講之前,先來看看這張圖


圖片轉自 [Guide to app architecture] https://developer.android.com/jetpack/guide*
底下是關於 room 的東西,會在往後的天數做分享

這張圖快速地說明了各個部份的關係

View

任何有關畫面的東西,會被分類在此:舉凡像是 activity、fragment、adapter、layout 等。在 MVVM 架構下,他們只需要負責資料的輸入輸出,至於資料從何而來就要看下面的 view model

ViewModel

負責 repository 跟 view 之間的資料交換,可以透過 livedata 的 observe、databinding 等方式呈現。view model 不需要知道資料怎麼來的,只要負責持有 view 的資料就好。理論上來說,每個 activity 或 fragment 都需要唯一的 view model,當然也有特例。

Model

包含所有的 data class、repository,以及負責資料的儲存、獲取等等,形式包含聯網的 api、本地的資料庫等。

雖然 MVVM 名字中並沒有出現 repository,但它也是非常重要,就是它負責存 Dao 從 database 或是 api 取得的資料。再讓 view model 從而存取之。

在實作上,我認為,因為我現在做的 side project 還是太小個的關係,且資料來源不多,實際操作 MVVM 架構有一種很繁瑣的感覺。

文字敘述果然非常抽象,下幾篇就寫一個簡單示範。


上一篇
[Day 20] Android in Kotlin: Theme 和 Style 的使用分享
下一篇
[Day 22] Android in Kotlin: MVVM 架構分享 —— 簡單示範
系列文
大一之 Android Kotlin 自習心路歷程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言