這12個你應該從現(xiàn)在開始使用Kotlin開發(fā)Android的理由

文章原文地址如下:https://antonioleiva.com/reasons-kotlin-android/

本文結合自己的感受掠拳,做一下簡單的翻譯母蛛。原文作者也是《Kotlin for Android developer》的作者预柒。此譯文供大家學習參考之用坏匪。


這12個你應該從現(xiàn)在開始使用Kotlin開發(fā)Android的理由

即使是現(xiàn)在Kotlin已經(jīng)成為官方支持的,用于開發(fā)Android 應用的程序語言掉伏,你可能還是覺得這個理由不足以讓我們做出改變。這么多年Java已經(jīng)被證明是滿足開發(fā)的需要的,為什么我們要來改變岖免?

開發(fā)語言切換至Kotlin,這樣做非但不是冒險的賭博照捡,可能是你做的最好的事情颅湘,下面是我為什么這樣認為理由。

1. 語言和環(huán)境是成熟的

不像其他語言栗精,和Swift類似闯参,在最終1.0Release版本前,Kotlin經(jīng)歷了許多階段悲立。這意味著鹿寨,你在工作中使用Kotlin時碰到的任何問題,都可能被預見到了薪夕。相關IDE插件使用比較順暢脚草,使用Java及多種你喜歡的特性,會讓你覺得用Kotlin工作是很舒服的原献。有意思的是馏慨,在你知道的最終Release1.0版本前,開發(fā)團隊花了幾年時間在alpha和beta版本上面姑隅。

2. Kotlin讓Android開發(fā)工作更容易

如果你讀了那些關于Kotlin的系列文章写隶,你或許能逐步清晰明確自己的想法。如果你們是來自Java開發(fā)領域的讲仰,就知道Kotlin使用強大且簡潔的混合風格慕趴,但又不是你想象的翻天覆地的變化。我真的認為鄙陡,在開發(fā)Android應用的語言中冕房,它是僅有的可以替代Java的。其他替代方案趁矾,如Scala太重毒费,而且編譯時間和相應工具鏈也不是特別完整。(了解過ruboto和go的一些方案愈魏,都無法和Kotlin比觅玻,ruboto是Ruby解決方案)。現(xiàn)在Kotlin編譯時間已經(jīng)相當接近Java(在某些測試中培漏,它甚至還更快點)溪厘,而且用Kotlin寫的APP應用,使用必要的底層庫也是很小的牌柄,因此不會增加太多方法數(shù)畸悬。

3. Android Studio 無縫集成

這個聽起來很傻,但是從第一分鐘開始所有的東西工作起來都很好珊佣。你可以試著蹋宦,即使你對kotlin一無所知披粟,不到10分鐘,用Kotlin創(chuàng)建項目和準備開工冷冗,那沒有任何問題守屉。AndroidStudio2.3你需要安裝Kotlin相應的插件,而在3.0上蒿辙,已經(jīng)平順集成了整個開發(fā)環(huán)境(2017年10月底拇泛,Android Studio 3.0 Release正式發(fā)出)。整個工作感覺和你使用Java是一樣的:你能用IDE跑程序思灌、使用斷點來的debug問題俺叭、重構代碼、? 使用啟動...泰偿,每個你能想象的都可以工作熄守。

4. Kotlin發(fā)展演進背后是有很好支持的

Jetbrains是Kotlin背后的公司(也就是AndroidStudio的母公司),他們在自己的許多項目中使用它耗跛,因此會投入更多柠横,更有興趣來發(fā)展它。當然课兄,特別關于Android牍氛,現(xiàn)在Google來聲明支持,我們有2個超級大公司一起支持烟阐,使它成為我們開發(fā)環(huán)境中最好的語言和工具搬俊。像來自Kotlin AndroidExtensions特性,像anko的庫大小和編譯時間的優(yōu)化蜒茄,可以讓我們看到Jetbrains投入大量的精力到Android上面(補充一下唉擂,特別像JakeWason這樣的大牛使用Kotlin編寫相應的框架,也是對Kotlin的發(fā)展的支持檀葛。)

5. 如果你是Android開發(fā)者玩祟,你需要不斷學習

讓我們首先要面對的是:用Java6來工作,使我們成為過時的程序員屿聋。直到我學習了Kotlin空扎,才意識到。只有當你使用了一種更現(xiàn)代編程語言润讥,才開始一種不同的思維方式转锈。如果你不改變語言,這些新知識不會在你的代碼中展現(xiàn)楚殿。即使現(xiàn)在使用Java的過程中撮慨,我也是用不同的方式。這是得益于,在學習新語言的時候砌溺,由新語言中支持的一些概念和原理得到的啟發(fā)影涉。還有你會變得更加多面手,之后你可能會關注(甚至使用)一些新的語言规伐,比如Swift蟹倾、Groovy、Ruby... 而且由于他們使用的一些類似的語法糖楷力,你可能會更容易理解。比如Lambda表達式孵户、擴展函數(shù)萧朝、集合的函數(shù)操作、密封類夏哭、數(shù)據(jù)類等等...检柬。可能有不同的名稱竖配,但是你可以在大部分現(xiàn)代語言中找到何址。所以你只要在腦袋中從一個語言映射到另外一種語言,那樣就很容易轉換過來进胯。雖然我們喜愛Android用爪,作為開發(fā)者從一個語言和平臺跳到其他語言和平臺,會給你們帶來巨大的價值胁镐。

6. Kotlin比Java更安全

你可能無法想象偎血,我被Java中的NullPointerException搞的有多累。事實上我每次看到這個異常都是很受挫的盯漂,因為其實是程序語言設計問題颇玷。我不能否認,現(xiàn)在我們可以通過一些工具就缆,例如注解或者設計模式帖渠,可以幫助我們規(guī)避部分NPE風險。但實際上需要花費額外的時間和金錢來做一些工作竭宰。我們不能只討論Null空郊。下面這些就是通過使用Kotlin來實現(xiàn)的:

較少的錯誤(編碼量的減少理論上降低錯誤率,使程序更穩(wěn)角薪摇)

通過把Java的運行時錯誤渣淳,變成Kotlin的編譯時錯誤,幫我們更早發(fā)現(xiàn)問題伴箩。

代碼的可讀性更強入愧,較難引入錯誤

代碼做了什么和沒有做什么更清晰,為我們規(guī)避了一些模板文件(克服語法缺失的部分功能)。

可以肯定棺蛛,花更少的時間完成轉換工作怔蚌,更好的穩(wěn)定性,更少的時間花在修改bug旁赊。

7. 在生產環(huán)境已經(jīng)有知名公司在使用Kotlin了

比如:Pinterest(國內的話餓了么20多個App桦踊,有3個純kotlin和一個混合App、滬江等)在他們的Android應用中使用Kotlin及其新特性终畅。你可以聽一下ChristinaLee討論的關于他們開始使用Kotlin時候的經(jīng)驗籍胯。另外的一個較好的例子是Basecamp,他們的Android App 已經(jīng)100%使用kotlin重寫了离福。在Kotlin網(wǎng)站杖狼,你能看到?jīng)]有特別大的爭論,有一個不斷增長的妖爷,正在生產環(huán)境使用Kotlin的公司列表蝶涩。

8. 很多企業(yè)已經(jīng)在他們的JD中把Kotlin作為要求的一部分(在國內不多)

這些公司不僅在使用Kotlin,并且其他有部分企業(yè)開始對Kotlin感興趣絮识。在西班牙我開始幫助大公司來培訓Kotlin绿聘,而且感興趣的公司也在變多。有一些比較好的現(xiàn)象就是很多商業(yè)公司開始花費錢來培訓他們的雇員使用Kotlin次舌。

9. Kotlin是多平臺

你們學習Kotlin不只是用來寫Android應用熄攘。Kotlin首先是用JVM來構建的,因此它可以在任何能跑JVM的任何機器和設備中使用彼念。而且在Kotlin1.1鲜屏,Kotlin JS 也迎來了第一個Release版本,因此你們也能在前端使用Kotlin国拇。而且還不止與此洛史,這得感謝gradle的支持,你可以使用Kotlin編寫gradle文件酱吝,還要感謝Kotlin Native也殖,未來在其他平臺可以作為基礎庫開放出來。編寫Android App只是Kotlin的冰山一角务热。

10. 小環(huán)境是有益處的

即使現(xiàn)在Kotlin還不適合大部分公司忆嗜,但還是有公司開始使用它。而且使用它的公司列表也在增長崎岂,他們需要Kotlin專家捆毫。他們是一些冷僻程序員語言專家,正是由于他們有這些語言經(jīng)驗冲甘,使他們獲取較多的薪資绩卤。在Google公告之后途样,Kotlin也不會再是小環(huán)境,但是使用Kotlin還是會讓你更突出濒憋。

11. Kotlin很容易學習

Kotlin很棒的優(yōu)勢是作為Java開發(fā)者在沒有寫過任何Kotlin代碼的情況下理解大部分Kotlin代碼何暇。這是因為Jetbrain的人,很關心從Java轉換要簡單凛驮,這個語言是否接近或者和你已經(jīng)知道的是否相似裆站。感謝語言的簡易性,IDE和編譯器幫助黔夭,你們能很快掌握語言的基礎宏胯。Kotlin自身語法,只是在理解Java缺乏的概念上有相對復雜的部分本姥。我認為大部分人(使用Java的程序員)能在2個星期內開始舒服的編寫Kotlin代碼肩袍。

12. 使用它有樂趣

可以斷定,也是非常主觀的、我感覺Kotlin使用起來真的很有意思扣草。由于Java一些語法特性(大量模板代碼和錯誤處理上的語法設計)上面的限制讓我越來越厭煩了牛。然而Kotlin給我們帶來一個去創(chuàng)造新世界的可能颜屠,用不同的方式去解決一些問題辰妙。作為Android開發(fā)者,我發(fā)現(xiàn)我在計算機前的時間甫窟,日常任務被簡化密浑,并且開始享受其中。

結論

我的觀點:Kotlin是一個友好的的語言粗井、很有趣尔破、啟發(fā)你的思維、有不同的思考浇衬、(以上所有)讓它可以生產環(huán)境中使用懒构。我計劃為Android開發(fā)者介紹Kotlin,至少提供30個主題耘擂。我持續(xù)發(fā)布7個月胆剧。Kotlin1.1和Google通告后,很多東西在改變醉冤,我希望人們開始學習Kotlin并且使其成為我們很好的工具秩霍,推進學習曲線。如果你要學習例子和快速切換到kotlin蚁阳,我推薦你使用這邊書《Kotlin for Android develop》,在你學習Kotlin的過程中你們能學習到如何創(chuàng)建完整的應用铃绒。當然,我會持續(xù)編寫關于Android和Kotlin的主題文章螺捐。


我的觀點

A 目前Google和Jetbrains 2大公司的支持颠悬,加上JakeWason等大牛支持矮燎,從語言特性,工具鏈再到成熟的第三方庫椿疗,已經(jīng)是相當完善的支持了漏峰,雖然國內的大廠商使用不多。但是我覺得函數(shù)式編程語言走向廣泛的應用届榄,這個是大趨勢浅乔。而且Android平臺借此可以規(guī)避JDK API 知識產權問題的風險。

B Kotlin的函數(shù)式編程語言特性加上一些語法糖铝条,對于Android或者Java開發(fā)者有少許學習成本靖苇,還是比較容易轉換過來的。切換過來之后確實能有一些效率上面的提升班缰,更重要的是對函數(shù)式編程會有更好的理解贤壁。學習新的東西,對程序員個人來說也是一個良性的刺激吧埠忘。

C? 具體的到正式的生產環(huán)境脾拆,現(xiàn)有的項目,可以慢慢引入Kotlin莹妒,混合使用名船。做一些相對獨立的功能模塊。如果是新的項目而且時間不緊張的情況下面可以直接從零開始完全使用Kotlin旨怠。


最后加上線上Kotlin for Android 教程

https://kotliner.cn/post/6292540246044377088

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末渠驼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鉴腻,更是在濱河造成了極大的恐慌迷扇,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爽哎,死亡現(xiàn)場離奇詭異蜓席,居然都是意外死亡,警方通過查閱死者的電腦和手機课锌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門厨内,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人产镐,你說我怎么就攤上這事隘庄。” “怎么了癣亚?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵丑掺,是天一觀的道長。 經(jīng)常有香客問我述雾,道長街州,這世上最難降的妖魔是什么兼丰? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮唆缴,結果婚禮上鳍征,老公的妹妹穿的比我還像新娘。我一直安慰自己面徽,他們只是感情好艳丛,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趟紊,像睡著了一般氮双。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上霎匈,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天戴差,我揣著相機與錄音,去河邊找鬼铛嘱。 笑死暖释,一個胖子當著我的面吹牛,可吹牛的內容都是我干的墨吓。 我是一名探鬼主播球匕,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肛真!你這毒婦竟也來了谐丢?” 一聲冷哼從身側響起爽航,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤蚓让,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后讥珍,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體历极,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年衷佃,在試婚紗的時候發(fā)現(xiàn)自己被綠了趟卸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡氏义,死狀恐怖锄列,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情惯悠,我是刑警寧澤邻邮,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站克婶,受9級特大地震影響筒严,放射性物質發(fā)生泄漏丹泉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一鸭蛙、第九天 我趴在偏房一處隱蔽的房頂上張望摹恨。 院中可真熱鬧,春花似錦娶视、人聲如沸晒哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揩晴。三九已至,卻和暖如春贪磺,著一層夾襖步出監(jiān)牢的瞬間硫兰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工寒锚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劫映,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓刹前,卻偏偏與公主長得像泳赋,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子喇喉,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349