今天我得鼓吹一波 Kotlin

Kotlin 被作為 Google 官方語言也有一年多了意蛀,但除了剛宣布那個(gè)月極度火爆以外秀姐,后面生活又回歸了平靜若贮。不少小伙伴緊跟 Google 爸爸的步伐,也對(duì) Kotlin 有了或多或少的了解兜看,GitHub 上也有了相當(dāng)一部分的 Kotlin 開源項(xiàng)目。

但或許是后知后覺搏予,依然還是有相當(dāng)一部分小伙伴,和南塵一樣雪侥,只是在 Kotlin 很火的那段時(shí)間,簡單了解了一下速缨,就像當(dāng)初的微信小程序一樣。然后生活還是回歸平靜代乃,依然對(duì)它停留在知道的程度旬牲。

先推薦一下最近在 GitHub 上更新的項(xiàng)目

但經(jīng)過一周多的詳細(xì)學(xué)習(xí)搁吓,我已經(jīng)把自己 GitHub 上的開源項(xiàng)目 AiYaGirl 進(jìn)行了深度改寫,完全使用 Kotlin 語言新開辟了一個(gè)分支擂橘。

AiYaGirl 地址:https://github.com/nanchen2251/AiYaGirl

可能有不少小伙伴還不知道 AiYaGirl ,這是南塵去年在 GitHub 上開源的一款 APP昌罩,功能比較簡單灾馒,主要采用 Retrofit && RxJava && MVP 模式,數(shù)據(jù)來源于代碼家的 Gank.io绘搞,目前在 GitHub 上有著將近 1k 的 Stars彤避。

GitHub 上一直都有挺多各具特色的完整架構(gòu) APP,它們各有各的優(yōu)勢夯辖,我非常地感動(dòng)琉预,你看到了這兒,這就是我的幸運(yùn)蒿褂。

現(xiàn)在我新增了一個(gè) kotlin 分支圆米,已經(jīng)完全采用 Kotlin 改寫完畢,希望你能喜歡啄栓。

如果你對(duì) RxJava 不是很熟悉娄帖,我強(qiáng)烈推薦你能看看我的 RxJava2Examples 開源庫,我們用代碼 && Blog 對(duì) RxJava2 的方式向你展示 RxJava 2 的各種操作符和一些使用細(xì)節(jié)昙楚,希望不會(huì)讓你失望近速。目前超過 50 萬的閱讀說明了 RxJava 確實(shí)被人關(guān)注,如果你還不 RxJava2堪旧,我勸你去翻一翻文檔削葱,寫一寫 Demo。

RxJava2Examples 地址:https://github.com/nanchen2251/RxJava2Examples

GitHub 和公眾號(hào)我都會(huì)保持維護(hù)淳梦,期待你與我進(jìn)行比心的交流析砸。

因?yàn)槲乙苍龅礁鞣N棘手的問題,到處詢問不到答案爆袍。

那時(shí)候的我首繁,也許正如現(xiàn)在的你。

而我陨囊,也還在這條道路上默默前行~

好像有點(diǎn)偏題弦疮,但只要還是想給大家推薦 AiYaGirl,因?yàn)槲蚁嘈偶扔?Java 實(shí)現(xiàn)又有 Kotlin 實(shí)現(xiàn)的對(duì)比谆扎,會(huì)讓你的 Kotlin 學(xué)習(xí)事半功倍挂捅。

為什么要鼓吹 Kotlin

還是得回到正題芹助,之前可能因?yàn)楦鞣N各樣的原因堂湖,我一直沒把 Kotlin 的學(xué)習(xí)提上日程,倒是奮斗在 Python 的路上状土。但自從面試被屢次問到 Kotlin 后无蜂,我不得不跟上社會(huì)的步伐,開始 Kotlin 的學(xué)習(xí)蒙谓,畢竟我是一名 Android 開發(fā)呀斥季!

幾天下來,對(duì) Kotlin 不敢說非常了解,但確實(shí)被它的簡潔性和易用性吸引到爆酣倾,無論是它極佳的函數(shù)式編程支持舵揭,還是它無比高效地編程方式,讓我時(shí)刻為之興奮躁锡。

簡單用一點(diǎn)代碼給你展現(xiàn)它的靈活性吧午绳。

比如我們 Java 中這樣一串代碼:

int score = // some score;
String grade;
switch (score) {
    case 10:
    case 9:
        grade = "Excellent";
        break;
    case 8:
    case 7:
    case 6:
        grade = "Good";
        break;
    case 5:
    case 4:
        grade = "OK";
        break;
    case 3:
    case 2:
    case 1:
        grade = "Fail";
        break;
    default:
        grade = "Fail";
}

當(dāng)你用 Kotlin 實(shí)現(xiàn)后,你會(huì)發(fā)現(xiàn)映之,怎么可以這么簡單拦焚?

var score = // some score
var grade = when (score) {
    9, 10 -> "Excellent"
    in 6..8 -> "Good"
    4, 5 -> "OK"
    in 1..3 -> "Fail"
    else -> "Fail"
}

額,還有對(duì)數(shù)據(jù)類的支持杠输,讓人為之抓狂赎败。

public class Developer {

    private String name;
    private int age;

    public Developer(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Developer developer = (Developer) o;

        if (age != developer.age) return false;
        return name != null ? name.equals(developer.name) : developer.name == null;

    }

    @Override
    public int hashCode() {
        int result = name != null ? name.hashCode() : 0;
        result = 31 * result + age;
        return result;
    }

    @Override
    public String toString() {
        return "Developer{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

Kotlin 會(huì)怎樣?

data class Developer(val name: String, val age: Int)

對(duì)蠢甲,你沒有看錯(cuò)僵刮,就一行代碼。

只貼代碼從來都是一件不負(fù)責(zé)任的事鹦牛,所以我就舉這么兩個(gè)例子妓笙,如果你喜歡的話,趕緊加入我們 Kotlin 的大軍吧~

Kotlin 是否會(huì)取代 Java

不少小伙伴在后臺(tái)問我這個(gè)問題能岩,oh...

這個(gè)真的很難說寞宫,這個(gè)世界上并不是說一件事物好,就必然會(huì)得到廣泛應(yīng)用的拉鹃。一件事物的出現(xiàn)辈赋,會(huì)有一群人去推廣,但也會(huì)有人會(huì)去阻止膏燕,只能看誰做的更到位吧~

額外的話

好啦钥屈,自從 Kotlin 出來后,事情的發(fā)展就變得極其不可控坝辫,不少推介者就蹭了好大一波流量篷就,而南塵這么晚再出來鼓吹,應(yīng)該不會(huì)被打吧近忙?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末竭业,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子及舍,更是在濱河造成了極大的恐慌未辆,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锯玛,死亡現(xiàn)場離奇詭異咐柜,居然都是意外死亡兼蜈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門拙友,熙熙樓的掌柜王于貴愁眉苦臉地迎上來为狸,“玉大人,你說我怎么就攤上這事遗契≡科剑” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵姊途,是天一觀的道長捷兰。 經(jīng)常有香客問我,道長驹沿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任青扔,我火速辦了婚禮励两,結(jié)果婚禮上盲憎,老公的妹妹穿的比我還像新娘窑眯。我一直安慰自己姥卢,他們只是感情好棺榔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布德频。 她就那樣靜靜地躺著盖喷,像睡著了一般跨算。 火紅的嫁衣襯著肌膚如雪背犯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天盅抚,我揣著相機(jī)與錄音媳板,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的阱驾。 我是一名探鬼主播衙伶,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤匹层,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后锌蓄,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體升筏,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年瘸爽,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了您访。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剪决,死狀恐怖灵汪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情柑潦,我是刑警寧澤享言,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站渗鬼,受9級(jí)特大地震影響览露,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜譬胎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一差牛、第九天 我趴在偏房一處隱蔽的房頂上張望命锄。 院中可真熱鬧,春花似錦多糠、人聲如沸累舷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至析孽,卻和暖如春搭伤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袜瞬。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國打工怜俐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邓尤。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓拍鲤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親汞扎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子季稳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,092評(píng)論 25 707
  • 人生的意義是什么景鼠,真的不知道,也不知道為什么會(huì)突然想到這個(gè)問題痹扇,可能是人生到目前為止都沒做過一件有意義的事情...
    007阿酷閱讀 328評(píng)論 0 0
  • 我不安的拿起手機(jī) 反復(fù)確認(rèn)是否有你的信息铛漓? 糾結(jié)要不要主動(dòng)聯(lián)系? 我問自己是因?yàn)樗寄钅?還是心里那場寂寞的雨鲫构? 如...
    驀然青雨閱讀 195評(píng)論 1 2
  • 卡西魔多與克洛德共同行走在街道上浓恶,一前一后。路上一些咒罵结笨、嘲諷的語句不絕于耳问顷,可二人毫不察覺、無動(dòng)于衷禀梳,原...
    曹政陽閱讀 367評(píng)論 0 2
  • 以銅為鏡 可以正衣冠 以史為鏡 可以知興替 以人為鏡 可以明得失 寫了一整天個(gè)人對(duì)照檢查材料 照照鏡子 審視自己 ...
    芝加歌閱讀 235評(píng)論 0 1