『Google、KotlinをAndroidアプリ開発言語に選定――I/O会場から大喝采』
...ということで、Android界隈を中心にこれからKotlinがじわじわと盛り上がっていくものと思われる。
出典:
http://jp.techcrunch.com/2017/05/18/20170517google-makes-kotlin-a-first-class-language-for-writing-android-apps/
言語としてのKotlinについては,(Javaプログラマでなくとも)良記事JavaプログラマのためのKotlin入門あたりをお勧めするとして、ここでは、本日(2017年6月1日JST午後1時)時点での、Github上でメジャーなKotlinプロジェクトを眺めておくことにしたい。
※これは久々にkotlinが気になっている自分向けのメモ書きなので、随時追記とする。
(追記)"Androidアプリ開発言語に選定"がどのくらいバズったのか...
定点観測するなら、Googleトレンドも使おう的なコメントをいただいた。たしかに、Googleトレンドを使うと、時系列・各国別に興味深い比較を行える。
"Androidアプリ開発言語に選定"のインパクトは、Googleトレンド的には、Kotlinが瞬間値でScalaを超えるほどのものであったらしい。JetBrains社のマーケティング戦略、ひとまずは成功というところで、今後はどうなるのかが気になるところ。興味ある人は、以下からいろいろ調べてみよう。
https://trends.google.co.jp/trends/explore?date=today%203-m&q=kotlin
(参考)KotlinとScalaとの関係が気になる人は以下も。
http://qiita.com/kmizu/items/248bcf30c44595e6d091
GitHub Kotlinプロジェクトのスクショ
半年とか1年とか後には、Kotlinプロジェクトのスター数ぐっと増えてるんじゃないかと期待して、メモ的に上位スター数30のスクリーンショットを貼っておく(クリックして拡大)。
目についたところ
①Android向けライブラリ
AndroidStudio開発がKotlinのもっとも一般的な使われ方であろうこともあり、github上でメジャーなKotlinプロジェクトの多くはAndroid向けライブラリである。中でも、5.9kスターのankoはダントツ*(ふだんKotlinを使っていない私も名前は知っていた)*。
以下、SuperSLiM(2kスター)、RxKotlin(1.9kスター)、Twidere-Android(1.2kスター)、Multi-Selection(984スター)と続く。その他にも、言語名はJavaだがKotlinで(も)書かれているライブラリにもメジャーなものはあるかもしれない。
[付記]
ankoの概説。とっつきやすいDSLだね。
http://dev.classmethod.jp/smartphone/android/kotlin_anko_tutorial/
個人的には、オールドファッションなTwitterクライアントとしてGooglePlayにも公開されているTwidere-Androidと、ウクライナの実力派チームが公開しているMulti-Selectionその他のKotlinライブラリが気になった。
②Kotlin啓蒙系
新興言語であるKotlinは、まだまだ知ってもらう取り組みが必要。
ということで、Kotlin情報を集約したawesome-kotlin(1.7kスター)、入門チュートリアルKotlin-Tutorials(1.4k)、ワークショップに関するkotlin-koan(931スター)、JetBrains社によるkotlin-examples(803スター)など、啓蒙系(?)のプロジェクトも多くのスターを集めている。
awesome-kotlinのリンク集はこちらからも利用できる。分野別にまとめられていていい感じ。
https://kotlin.link
Kotlin-Tutorialsは、中文版のみで1000スター超え。中国では日本以上にKotlinは盛り上がっているのだろうか?
③その他
個人的に気になったのは、、JetBrains社によるkotlin-native(1.2kスター)、gradle-script-kotlin(688スター)、corda(683スター)。
Kotlinからネイティブコードを作成できるkotlin-native。まだまだこれからの取り組みなのだろうが、iOS開発や組込開発でKotlinが使えるようになったら素敵。
公式のアナウンスを見るに、(口)約束はしてくれている:
We are currently working on the core technology for Kotlin/Native which is the same for all target platforms (compiler, core runtime and library). As a matter of possible future work, we are considering the following possible use cases:
- iOS applications (reusing code with Android)
- Embedded systems/IoT (e.g., Arduino and beyond)
- Data analysis and Scientific Computing
- Server-side and Microservices (low-footprint executables, utilizing the power of coroutines)
- Game Development
出典 Kotlin/Native Tech Preview: Kotlin without a VM
gradle-script-kotlinは、Groovy製のビルドツールとして有名なgradleのKotlinサポート版。昨年くらいからgradleをkotlinで書くという試みが始まっているらしく、気になっている。
そして、cordaは、金融機関向けの分散型台帳フレームワーク(R3社開発)。活用例は、以下など
株式会社みずほフィナンシャルグループ他のプレスリリース:
【FinTech】ブロックチェーンを活用した実貿易取引の実施について~海外ITサービスプロバイダーとの協働による取り組み~
詳しい人はCordaはブロックチェーンじゃないのでは、とか突っ込みたくなるかもしれないが、バージョン1.0が出てからそんなに時間がたっていないKotlinを金融機関向けのソリューション開発をがっつり使うとは、やるなR3社。
=>個人的には一番の注目株。
番外編
その他、kotlinで、github上で気になった動き(追記中)。
①Spring Framework 5.0でのKotlinサポート
7月にリリース予定のSpring Framework 5.0では公式のKotlinサポートが予定されている。
前々からKotlinでSpringて話題はいろいろあったが、これからの方が楽しみ。
Kotlin routing DSL など、試してみて追ってレポートしたい。
(Spring Framework 5.0)
http://qiita.com/kazuki43zoo/items/1d5d09a5a70a6be696ac
( Kotlin support in Spring Framework 5.0)
https://spring.io/blog/2017/01/04/introducing-kotlin-support-in-spring-framework-5-0
https://speakerdeck.com/sdeleuze/functional-web-applications-with-spring-and-kotlin
おまけ SparkKotlin ~"軽量WAF"SparkのKotlinサポート
Java8向けの軽量webフレームワークsparkがいつのまにか割合とメジャーになって(6.2kスター)、最近、kotlinサポートを表明。spring bootの対抗馬になってくれたら面白い。
https://github.com/perwendel/spark
https://github.com/perwendel/spark-kotlin
関係ないが、Scala製のsparkの方もkotlinDSLサポートしてくれる(orベストプラクティスをどなたか書いてくれる)とうれしいな。
②SwiftKotlin ~ SwiftコードをけっこうまともなKotlinコードに変換
けっこうな需要がありそうなSwift->Kotlinへのコード・コンバーター。
https://github.com/angelolloqui/SwiftKotlin
主な実行環境のiOS/Android間の相違があるため完全な変換はとてもむりだろうが、作者の方は、現時点の実装でも、大抵のSwiftコードをけっこうまともな(a pretty decent)Kotlinコードに変換できるよ、と言っている。実装例:
http://angelolloqui.com/blog/38-Swift-vs-Kotlin-for-real-iOS-Android-apps
Swiftをがっつり書く立場になったら試してみたい。
続きは
年末頃に。それまではcordaを勉強してみる予定。
Kotlinのコードは見た目にいや味が少なくていいね。