iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
0
Mobile Development

老姐好像要用 Kotlin 寫專案,能撐30天嗎?系列 第 19

模型設計的第十九天:問答聊天室結構

為了避免像上次一樣白做工的情形,今天和老姐進行了問答聊天室結構的討論。

「什麼時候建立連線?」老姐提問。「是玩家進到挑戰題目頁面,還是打開 App 期間一直連線?」websocket 和其他 restful API 一來一往不同,從 client 端開始連線後,就可以一直保持連線,讓 server 端隨時可以主動傳送資料。

「一開始設計的是前者的,但仔細想想以 websocket 的架構來說完全可以多房間連線,可以節省推播通知的次數。」我畫了一個流程圖給老姐看。

https://ithelp.ithome.com.tw/upload/images/20200928/20129197zI69zzsP5k.png

「喔喔。感覺不錯耶。我會儲存收過的訊息在裝置裡,你看這樣能不能省流量。」老姐常聽到我們後端工程師的碎碎念,很理解流量等於金錢。

「好,那就用時間分頁,沒拿過的再和伺服器要,這樣的話訊息格式需要再補一個時間欄位。」我記錄下來。

「官方有一些簡單的範例,我會配合其他框架的 websocket server 資源參考。」我開了兩個官方範例網頁給老姐看。

https://ktor.io/docs/guides-chat.html
https://ithelp.ithome.com.tw/upload/images/20200928/20129197pZifHCtsH9.png

https://github.com/ktorio/ktor-samples/tree/master/generic/samples/chat
https://ithelp.ithome.com.tw/upload/images/20200928/20129197FEk5zYe1Q3.png

「哈哈,真的,裡面只示範最基礎的連線。」老姐匆匆掃過一遍,對我表示同情嘲笑。

「對了,我記得如果要綁定其他社交帳號服務,需要網域,這部分應該省不了錢,開銷要平分唷。」我提醒她。

「我知道啦,你記到這本帳本上,等最後 App 要上架到 Google play 商店的時候,我也會把開發人員帳號費用記錄上去。」她遞給我一本小本子。

「那個⋯⋯我覺得我們可以用 google sheet 或是你之前開的專案管理網站。」請愛護樹木,而且我不覺得這個專案會需要一本本子那麼多的頁數。

老姐無奈地答應:「好啦好啦,什麼都要放到雲端是吧。」

我突然想到一個重要的事,問她:「對了,妳 Kotlin 還有遇到什麼問題嗎?」該不會其實是 App 那邊不順利才想跑來幫我的吧。

「沒問題的,你不知道現在每週日都有一個 Kotlin 線上讀書會嗎?還有各種發展領域的練功場,大家人都很 Nice 。」說著老姐就打開讀書會官網給我看。

https://tw.kotlin.tips
https://ithelp.ithome.com.tw/upload/images/20200928/20129197iGSbDuvXtl.png

https://ithelp.ithome.com.tw/upload/images/20200928/201291971op9KcKgbe.png

「喔喔,真的呢,有 KtorAndroid 練功場。」我感到相當驚訝也相當開心,這代表 Kotlin 使用者的人數已經不可小看,有種與有榮焉的感受。

「好咧!繼續努力吧!」老姐和我再次進入了專注開發狀態。

本次鐵人賽的作品在放進更多內容後已經成書,書名是《老姐要用Kotlin寫專案:從 Server 到 Android APP 的開發生存日記》,歡迎購買唷。https://www.tenlong.com.tw/products/9789864348978


上一篇
陰雨綿綿的第十八天:網站和 API 的不同
下一篇
節省開支的第二十天:Eager loading 原理——快取和 IN 運算子
系列文
老姐好像要用 Kotlin 寫專案,能撐30天嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言