Github定点観測(Kotlin) その1(2017年6月)

  • 5
    いいね
  • 2
    コメント

『Google、KotlinをAndroidアプリ開発言語に選定――I/O会場から大喝采』

...ということで、Android界隈を中心にこれからKotlinがじわじわと盛り上がっていくものと思われる。

github_017061.png
出典:
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トレンドを使うと、時系列・各国別に興味深い比較を行える。

この2ヶ月ほどの間に起きたこと:
scala_kotlin.PNG

"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のスクリーンショットを貼っておく(クリックして拡大)。

github_017061.png

目についたところ

①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のコードは見た目にいや味が少なくていいね。