即刻開始使用Kotlin開發Android的12個原因(KAD 30)

来源:http://www.cnblogs.com/figozhg/archive/2017/07/16/7192188.html
-Advertisement-
Play Games

原作者:現在是實踐所有已經學習到Kotlin技術,以及充分利用它提供功能的時候。如果你還有任何疑問,在本文就給你一些做出最終決定的理由。 ...


作者:Antonio Leiva

時間:Jul, 11, 2017

原文鏈接:https://antonioleiva.com/reasons-kotlin-android/

 

 

這組文章已到最後了,它們是非常實用的。今天我想談談為什麼我認為學習Kotlin是非常有趣的。

 

雖然, Kotlin現在已是官方支持的開發Android APP的編程語言,而你仍可能覺得沒有足夠的理由進行改變。在這些年以來,Java已經證明其能力,為什麼要改變?

 

這是我認為轉換到Kotlin不是一個冒險的賭註,而是你可以做的最好的事情之一。

Tweet 上的相關文章:

Here are my reasons why I think that moving to #Kotlin is one of the best things you can do.

 

 

1. 語言及開發環境成熟

 

與其他開發語言不同(如:Swift),Kotlin發行版歷經了許多階段,然後才發佈最終的1.0版本

 

這就意味著在使用Kotlin時幾乎沒有任何問題,一切都符合你的期望。

 

IDEKotlin插件運行順暢,並且允許你使用Java以及你的喜歡許多Java特性。因此,在這個層面上說,使用Kotlin是非常棒的。

 

 

瞭解其最終版本之前的歷程很有趣。它的AlphaBeta版用了幾年的時間。即使在Beta版本出來之前,已有開發者在實際項目中使用它了。

 

 

 

Tweet 上的相關文章:

 

#Kotlin is a mature language, been through several years of alphas and betas until its final release.

 

 

 

2.它使Android開發更容易

 

 

 

如果你一直在閱讀這一系列關於Kotlin的文章,那麼你已經非常清楚這一點。

 

Kotlin融入了許多簡單的能力,如果你是從Java轉來,就有種進入一個新的世界。這在Java中,你是不能想象到道。

 

 

老實說這是替代用Java開發Android優秀應用程式的唯一可行的方案。而其他替代產品(如:Scala)都非常沉重,且在編譯時間和工具方面都無法與其比擬。

 

 

今天Kotlin的編譯時間已經和Java類似了(在某些測試中它視乎更快),用Kotlin編寫應用程式所需的庫非常小,所以不會增加你的方法數量。

 

 

 

Tweet 上的相關文章:

 

#Kotlin is simplicity mixed with power. You have a new world of possibilities if you're coming from Java

 

 

 

 

 

3.它與Android Studio無縫集成

 

 

 

這聽起來可能傻乎乎的,但是從第一分鐘開始,一切都工作的很好,這是一個很大的優勢。

 

 

您已經讀過,若嘗試建立一個Kotlin項目,不用10分鐘就能完成了,即使你不瞭解Kotlin

 

 

 

Tweet 上的相關文章:

 

You can have a project set up and ready to work in less than 10 minutes in your first use of #Kotlin

 

 

 

 

若使用Android 2.3,你只需要安裝一個插件,而在3.0中,整個過程是無縫集成。

 

(譯者註:這裡Android 2.3 3.0 應該是指 Android Studio。)

 

從此所有的工作就如同使用Java一樣:你能IDE運行,調試是否有問題,做重構,使用即時運行等等你能夠想到的一切都可以使用。

 

4. 它的演變得到很好的覆蓋

 

Kotlin背後是Jetbrains公司,他們在自己的項目中使用它,所以他們會更積極開發它。

 

另外,關於Android,它是由Google支持的,有兩個大公司共同合作,能為我們提供最好的開發語言和工具。

 

從特性(如:Kotlin Android Extensions)到庫(如:Anko),持續對庫大小和構建時間的優化,都表明Jetbrains正在向Android投入大量精力。

 

5.如果你是Android開發人員,則需要不斷學習

 

 

讓我們來面對它:繼續使用Java 6使我們成為“過時”的程式員

 

 

直到我開始學習Kotlin才明白了。一旦你使用現代開發語言,你就會開始以不同的方式思考。

 

即使你不改變開發語言,也應該將這些新知識應用到你的代碼中。在Java中,現在我以不同的方式解決問題,這隻是因為我在學習它們之前,我已經學到了許多以前不知道的概念。

 

此外,你會變得更加多才多藝。後來,我看過(甚至使用)了SwiftGroovyRuby等一些語言,由於它們都使用非常相似的概念,因此更容易理解它們。

 

 

諸如lambdas、擴展函數、集合函數操作、密封類、數據類等概念雖然可能有不同的名稱,但是你可以在大多數現代語言中找到它們。這樣在思考中,你只需要將一種語言的轉換映射到另一種語言,你可以輕鬆地切換開發語言了。

 

雖然我們喜歡Android,如果準備轉換到另一種語言或平臺,則會為我們這類開發人員帶來巨大的價值。

 

Tweet 上相關文章:

If you are an #AndroidDev, you need to recycle: Java 6 makes us obsolete programmers

 

 

 

 

 

6. 它比Java更安全

 

 

你不能想象在處理Java中的NullPointerException,我有多麼累了。其實每當看到我一個人時,我覺得真的很沮喪,因為這是語言設計的一個主要的問題。

 

 

我不否認如今我們有一些工具,如註釋或設計模式,可以幫助我們避免其中一部分工作。但是,像以往一樣,需要額外的工作量是需要時間和資金的問題。

 

 

然而,我們不能僅談論null。我們要全部的Kotlin代碼能夠:

  • 較少的錯誤:如果代碼較少,則代碼出差的幾率就小,因此更加穩定。
  • 在編譯時,編譯器幫助你檢測到錯誤,它們就不會在運行時發生(這是真實地顯而易見)
  • 代碼可讀性更高、更容易理解,更難出現新的錯誤。
  • 因為我們避免了任何只能剋服語言不足的樣板,代碼功能的更清晰(而不是如何)。

 

 

而且,它能夠用更少的時間完成更多的工作、且更加穩定、修複Bug時間更短。

 

Tweet 上相關文章:

#Kotlin features translate into more work done in less time, and less time spent in fixing bugs.

 

 

 

7. 已有知名公司使用它開發其產品

 

 

 

例如,Pinterest已經在Android應用的新功能中使用它了。你可以聽Christina Lee談論,她在Pinterest上使用它的經驗。

 

另一個是Basecamp,它們Android應用程式已經100%Kotlin編寫了。Dan Kim寫道:

 

Kotlin的一些技巧,(不相信我可以這麼說)100ANDROID的正式開發語言— Dan Kim (@dankim) May 17, 2017

 

 

 

你還可以在這幾篇文章中閱讀他們的經驗:文章1文章2

 

Trello的代碼也包括一些Kotlin代碼:

 

數據點(對Kotlin好奇的Android開發人員):@trello現在很高興地在開發中使用@kotlin— Dan Lew (@danlew42) December 14, 2016

 

Kotlin網站上,你可以查看到已經有越來越多的公司在其產品中使用Kotlin來開發,且沒有遇到麻煩。

 

8. 各家公司在其提供工作機會中正要求會使用Kotlin

 

不僅僅已有公司使用Kotlin,而且開發開始對Kotlin很感興趣了。我已經在西班牙培訓了一些大公司,興趣不斷增長。

 

企業在員工Kotlin培訓方面增加資金,這是個好兆頭。

 

 

9. Kotlin是多平臺的

 

 

你學習Kotlin不只是為了編寫Android應用程式。 Kotlin首先創建在JVM中,所以它可以在任何可以運行JVM的設備上使用

 

 

但在Kotlin 1.1中,Kotlin JS(那時只是實驗性的)終於被髮布,所以你也可以使用Kotlin進行前端開發

 

 

但是它並不止於此,由於感謝Gradle的支持,你將能夠Kotlin中編寫你的Gradle文件,並且多虧Kotlin Native,未來它將是開放平臺

 

 

編寫Android應用程式只是冰山一角。

 

 

 

Tweet 上相關文章:

 

With #Kotlin, you can write #AndroidDev, server, frontend, Gradle scripts and even native Apps.

 

 

 

 

10. “微小眾(Micro-niches)”是非常有利可圖

 

儘管在大多數公司中並沒有採納Kotlin,但已經有一些人正在使用它。如果這些公司要成長,他們將需要Kotlin專家

 

 

有些人掌握了幾乎沒有使用過的超級奇怪的語言,但是由於他們是世界上少數語言專家之一,所以他們賺了很多錢。

 

 

Google公佈後,Kotlin將不久便成為微小眾,但你要脫穎而出還有一段時間。

 

11. 它很容易學習

 

 

 

 

 

Kotlin的一大優點是,Java開發人員即使沒有編寫過一行Kotlin代碼,也能理解大多數代碼

 

 

這是因為Jetbrains人非常關註由Java過渡簡單性,其語言非常類似你已知的。

 

由於語言的簡單性和IDE及編譯器的幫助,你可以很快地處理語言的基礎知識。

 

而唯一較複雜的部分是瞭解Java缺少的概念,而不是Kotlin語法本身。

 

我不認為任何人需要兩個多星期的時間就能感受用Kotlin編寫代碼的舒適性。

 

Tweet 上相關文章:

An #AndroiDev can understand most of the code without ever having written a line of #Kotlin

 

 

12. 使用起來非常有趣

 

 

 

 

 

總之(雖然這有些主觀),但我發現Kotlin真的很有趣。

 

對我來說,因為Java的特征限制,它的樣板,和設計問題導致的錯誤等等,它越來越多麻煩。

 

 

 

 

然而,Kotlin為你的創意開闢了一個可能的新世界,讓你以非常不同的方式解決相同的問題。

 

 

 

我在電腦前找到了幾個小時,尋找方法來簡化Android開發中的日常任務,併在此過程中享受很多。

 

 

 

Tweet 上相關文章:

 

#Kotlin opens up a new world of possibilities for you to be creative in #AndroidDev

 

 

 

結論

 

在我看來,Kotlin的開始非常友好,真的很有趣,它會擴展你的思路,讓你以不同的方式思考,最重要的是,它已經準備好用於產品開發。

 

它現在是Android開發的官方語言!

 

這是30篇文章的最後一篇,為向Android開發人員介紹Kotlin,我已經發佈了最近7個月了。

 

自那之後,發生很多事情(Kotlin 1.1Google公佈等),希望它們成為人們開始學習Kotlin並提升學習的一個很好的工具。

 

但是,如果您想要更快速地學習,請通過示例學習,我建議你獲取書籍:Kotlin for Android Developers,通過這本書你可以學習到用Kotlin如何從頭開始創建一個完整的應用程式過程。

 

當然,我會繼續寫關於KotlinAndroid的更多文章。請以保持聯繫!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • yahoo軍規一共分7類共35條: 1.儘量減少HTTP請求數 分類: 內容 80%的終端用戶響應時間都花在了前端上,其中大部分時間都在下載頁面上的各種組件:圖片,樣式表,腳本,Flash等等。減少組件數必然能夠減少頁面提交的HTTP請求數。這是讓頁面更快的關鍵。 減少頁面組件數的一種方式是簡化頁面 ...
  • 具體代碼如下: <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Document</title><style>*{margin:0;padding:0;font-size:14px;-webkit-user-sele ...
  • 今天看的《JavaScript設計模式》-作者:張容銘。主要看了js繼承。下麵我將看的,以及代碼貼出來,跟大家一起學習,分享。共同進步。 先來個簡單是 單繼承 多繼承 類繼承 是通過子類的原型prototype對父類實例化來實現的 缺點:父類中的共有屬性如果是引用類型就會在子類的所有實例中共擁有,一 ...
  • JavaWeb01_html basic html操作思想 使用標簽把要操作的數據包起來,通過修改標簽的屬性值,來實現標簽內數據樣式的變化 font標簽 屬性:size取值範圍1-7 color:英文單詞,十六進位數 #ffffff 標題標簽 <h1> </h1> ... <h6> </h6> 從h ...
  • 綱要 =============================== 計劃佈局,劃分整體結構 內容區域,從整體到局部,局部中的通用部分,根據上下文應用樣式 公共頭部(public header)、尾部(public footer) 公共容器(public container/inner center ...
  • [1]概述 [2]入門實例 [3]生成器 [4]HTTP模塊 [5]中間件 [6]托管靜態資源 [7]常用中間件 [8]路由 [9]路由器實例 [10]響應方法 [11]請求方法 [12]APP方法 [13]HTTPS [14]模板引擎 [15]資料庫 [16]上傳文件 [17]開發實例 ...
  • 一,工程圖。 二,代碼。 ViewController.m ...
  • Google 更新了最新的 Support Library 版本,其中最為顯眼的功能莫過於 support-v4 大拆分,然後這個拆分現在看來並沒有那麼美好。 v4 包從 2011 年開始引入,包含 ViewPager、FragmentActivity 等我們常用的功能,目前已經達到 1.3 M,G ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...