iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
1
Mobile Development

30天,從0開始用Kotlin寫APP系列 第 12

Day 12 | 建立 Kotlin Projcet 與定義海賊爭霸規格

  • 分享至 

  • xImage
  •  

建立 Kotlin Project

Android Studio 將 Kotlin Projcet 的建立都變成 GUI ,因此只要跟著步驟點一點就可以建立起來,並不會有什麼難度的,以下是建立的步驟

1. 打開 Android Studio

這邊我使用的是 Android Studio 3.6.3 ,最近 Android Studio 4.0 也已經出了,用哪一種都沒關係

2. 點選 Start a new Android Studio project

3. 選擇 Empty Activity

4. 設定專案

這邊除了輸入名稱之外,還有3個部份需要注意,完成後就可以按下 Finish

  • Language :開發要用的語言,選擇 Kotlin

  • Minimum SDK :最低支援到版本,因為有些版本太低,沒辦法去相容高版本的語法,所以在開發前要先跟 PM 確認一下規格,另外這邊還有一個我覺得很貼心的小地方,就是在選擇最低支援版本後,他會告訴你目前你可以在多少比例的手機上運行,這也是一個可以和 PM 討論的數據

  • android.support library :原本的專案都會採用 android.support library ,但是因為 support 包很雜亂,因此 Google 在 2018 的時候推出了 androidX 取代 adnroid.support ,但還是有留下這個 Option 讓開發者可以依據需求決定要使用哪一種 library

5. 完成建制

建好之後的專案,資料夾格式會長的像這樣

那要怎麼確認 Kotlin 已經成功被導入到專案中了呢?
可以在 build.gradleapp/build.gradle 中找到被引入的蛛絲馬跡

  • build.gradle
    從這邊可以看到我引入的 Kotlin 版本是 1.4

  • app/build.gradle
    plugin 可以看到引入了 kotlin-androidkotlin-android-extensions

那到這一步,Kotlin Project 就已經建好了,接下來可以導入 MVVM 的架構以及能夠更好使用的框架

MVVM 架構

昨天有介紹到 MVVM 的架構圖,以及導入後帶來的好處,那麼在網路上找尋相關資料的時候,會很常看到這張圖

那麼在其實可以分成三層

  • 第1層 View
    最上面的 Activity / Fragment 以及他們的 XML 畫面佈局都是屬於 View 的層級
  • 第2層 ViewModel
    中間的 ViewModel 層負責 View 和 Model 之間的商業邏輯
  • 第3層 Model
    那麼 Repository 以下的 ModelRemote Data Source 都屬於 Model 層,主要負責都是資料的讀取與寫入,像是操作 Database 或是打 api 拿資料,都會在 Model 層處理

Project 資料夾架構

那該怎麼導入 MVVM 架構到 Project 中呢?
到 Github 上面看那些星星很多的專案,大多數會分成 3 個資料夾,分別是

  • data 資料夾 對應到 Model 層

  • ui/viewmodel 資料夾 對應到 ViewModel 層

  • ui 資料夾下,除了 viewmodel 外,其他都算是 View 層

因此我們可以先把這樣的架構模式建立起來,如果有一些不知道怎麼擺的話,可以到 Github 上面去參考別人的,這邊放幾個我有參考過的 Repository

海賊爭霸規格

功能

這幾天思考了要怎麼做出海賊爭霸的 App ,並且要儘量用到昨天開出來清單中的技術,有個大概的框架出來

  1. 提供 Login 和 Signup 的功能,這邊會串 Firebase Authentication 做使用者的身份驗證
  2. 提供 10 款海賊,海賊生成的方法是會用 Retrofit 打 api 到 https://pokeapi.co/api/v2/pokemon?offset=0&limit=10 ,取得 10 個神奇寶貝後,再進一部把他們包裝成海賊
  3. 提供一個簡單的抽海賊功能,並且可以看到所有已經抽到的海賊,這邊會採用 Room 去存這些數據

會有這個框架是因為這個 Repository 套用了 PokeAPI ,感覺我就不用在去特別生成海盜的數值,應該會比較方便

架構圖

根據以上的功能,我畫了這個簡單的架構圖,如果覺得哪裡還可以在加強,都歡迎留言跟我說

結語

那今天簡單的介紹了建立 Kotlin Project 的方法,另外也把剩下鐵人賽要完成 App 的架構大致上訂出來了,那明天就會開始 coding ,盡可能把這個 App 完成,加油加油~
https://media.giphy.com/media/gjUpF03xOcsI70RV0U/giphy.gif

Reference


上一篇
Day 11 | 開發架構演化史: MVC -> MVP -> MVVM
下一篇
Day 13 | 導入 Material Design 到 Android App 以及使用 Material Color Tools
系列文
30天,從0開始用Kotlin寫APP30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言