Day 30:完赛感言

Keyword:

https://github.com/officeyuli/itHome2021/raw/main/day30/82432-bedste-film-der-aldrig-vandt-en-oscar--.jpeg


哇终於到了这天,30天的铁人赛没想到我居然能够撑完.

当初选择KMM的原因主要是听了我们亲爱的团长,JetBrain的技术传教士圣佑,与GDG Taipei的主办人阿达举办的KMM Workshop,介绍了这个崭新的跨平台框架.在学习过程中,我逐渐对KMM有兴趣.尤其是KMM可以轻易的引入目前的专案这点,对於已有一定规模Code Base的公司是个大吸力.所以...第二次KMM Workshop在台中举办时,我又特地跑到台中参加,再次重听并且加强印象.

KMM能不能在这场跨平台框架中取得胜利还很难说,Flutter来势汹汹而RN已经行之有年,无论哪个都不是易与的对手,也因此我第一天所下的标题是:"一个全新的挑战者",而不是什麽“跨平台的解答"等等的,现在说这个还为时过早.不过KMM具有相当大的野心,他不仅想要当Android与iOS的跨平台框架,甚至想要web与桌面应用一起统一.(不过这个大饼Flutter也画了,看来是殊途同归啊)

既然是最後了,就来回顾我们到底学习了什麽,如果同主题有复数天,连结就放该主题的第一天

首先我们先介绍了KMM是什麽(Day1)
老调重弹的聊起了架构,因为架构在KMM中特别重要,用的好事半功倍,用不好不如回去写两份Code(Day2,Day3)
再来,我们建立了第一个KMM专案(Day4,Day5,Day6)
并且说明,为什麽KMM可以做到这麽神奇事情,当看过KMM实际跑起来的样子後会更有感觉(Day7)
要准备开始修改专案内容,但是在那之前,为了管理好KMM专案内复杂的依赖关系,我们使用Kotlin DSL来管理(Day8,Day9)
我们使用Ktor来进行网路请求,Ktor本身就有设计给跨平台使用(Day10)
Ktor帮我们取得的资料,显示在原生画面上,KMM这部分的View层实现就交给使用者,在Android端我们使用传统的XML,而iOS我们用了swiftUI.(Day11,Day12)
(原本有空本来想要使用Android的Compose的结果根本没时间,不过我们这次有团员有写Compose的文章喔,有兴趣可以移步那边)
然後我们深入聊了一下各平台如果有不同实作,所使用的Expect与Actual关键字,之後也常常使用到(Day13)
接下来,也聊到之後占了非常重要的工具Coroutine(Day14,Day15)
我们进行设计,让没有Coroutine环境的iOS也能使用到Coroutine(其实就是多一层封装)(Day16,Day17)
专案开始变大了,为了降低耦合程度我们引入了Koin来进行依赖注入(Day18,Day19,Day20,Day21)
开始使用资料库来进行资料的长久化,SQLDelight可以帮我达成这个任务,并且SQLDelight还是跨平台的!(Day22,Day23,Day24)
功能都完成了,最後来写测试吧(Day25,Day26,Day27)
剩下的时间,一天是如何让现成专案也能KMM(Day28)
另外一天则是跟其他跨平台框架比较,在开发过一个KMM专案後更有感觉(Day29)
最後一篇就是这篇啦~

对了,如果像我一样,对KMM有兴趣的,圣佑将会在这期(2021年)的MOPCON以KMM为主题,进行一次分享,并且这次MOPCON是线上,所以不用像我一样特地跑到台中去参加.

这次会在10/23 、10/24举行

范圣佑 | 讲者 MOPCON 2021

由於KMM的特性,专案结构较为复杂,也许会较难阅读.在15号比赛结束前我还会继续修改文章内容,让文章的内容更加充实与易懂.

感谢一直陪伴我的各位读者,以及一起参团的疯狂团员们,没有你们的支持我是绝对撑不下去的!


<<:  [DAY-21] 获得工作机会 谈条件 做出决定

>>:  Day 20 - Valid Anagram

响应式网站注意细节-30天学会HTML+CSS,制作精美网站

现在使用智慧型手机比率最高,手机画面很小,所以在制作网页时应注意以下细节 只显示重要的资讯及减少栏位...

SQL Server Collation (定序) 设定 - 心得分享

DBA Bootcamp 有听过 SQL Server 的 collation (定序)设定吗?讲到...

[Day-5] R语言 - 分群前处理 ( Clustering Preprocessing )

您的订阅是我制作影片的动力 订阅点这里~ 影片程序码 library(naniar) data(ir...

DAY 20-数位签章-ECDSA

「你拿的是我的信用卡...」 ECDSA 是运用了椭圆曲线密码学所达成的数位签章演算法, 而比特币区...

DAY14-JAVA的继承(1)

对OOP的程序来说,类别的精随之处在於类别有「继承」(inheritance)这项功能,继承可以让我...