LoginSignup
14
2

More than 5 years have passed since last update.

Kotlinの近況を整理してみた

Last updated at Posted at 2017-11-30

最初に

この記事はWHITEPLUS Advent Calendar 2017 1日目になります。

こんにちは。株式会社ホワイトプラス、エンジニアの @knakamigawa です。

私はホワイトプラスでは、
- 衣類オンラインクリーニングのリネット
- 布団オンラインクリーニングのふとんリネット
- 靴オンラインクリーニングのくつリネット

の各サービス、特にふとん、くつのサービスを中心に
フロントエンドからサーバーサイドまで広く担当しています。

仕事でやってる事の一例

  • Reactでのフロントエンド開発
  • PHPでのWeb開発
  • GolangでのAPI開発
  • サービス仕様の検討、提案

と、実は仕事でKotlinを書いていないのですが、Kotlinを社内で布教して行くため今回もKotlin(昨年もKotlin でした)について書きたいと思います。

Kotlinのはなし

11月の頭に行われたKotlinConfにて様々な発表があったので遅ればせながらRecapして行きたいと思います。
拙い英語力で読み取った内容なのでもし誤りがあったらご指摘頂けると幸いです。

Kotlin Conf Keynote Recap
https://blog.jetbrains.com/kotlin/2017/11/kotlinconf-keynote-recap/

Webバックエンド

KotlinのWebフレークワークKtorが0.9になったこと。
使ったことがないので雰囲気しか言えませんがRubyのSinatraのような軽量フレームワークのように見えます。
モバイルアプリのAPIなど手軽に作れそう。

Webフロントエンド

Kotlin/JavaScript、いわゆるAltJSで、TypeScriptのようにJSにトランスパイルします。
create-react-kotlin-app(https://github.com/JetBrains/create-react-kotlin-app/ )を用いてReactフロントエンドアプリケーションの構築を手軽に行えるようになりました。(まだお試し版という位置付けですが)
create-react-kotlin-appはまんまReactのcreate-react-appのKotlin版で、npm installして使います。yarnで起動、ビルドなど手軽にできます。

ネイティブアプリ(Android以外のはなし)

  • Kotlin/Native v0.4でのiOS対応
  • Kotlin/NativeのIDEサポート

そもそもKotlin/Nativeってなんじゃらほい。
今までのJVMで動いているKotlinをKotlin/JVMと記述するとなんとなーくわかってくるかと思いますが、LLVMを用いてJVMを用いずにバイナリを作成して実行する為の仕組みです。

現在はJVMが動かない環境やアプリケーションのフットプリントを小さくしたいアプリ向けという位置付け。

いちばんわかりやすいのは先に書いたようにv0.4で対応したKotlinでiOS向けのアプリが作れるという事です。

また、Kotlin/NativeがIDEサポート。テストやデバッグをIntellijIDEAから実行可能になります。今後もサポートを進めて行くとのことなのでKotlin/Nativeでの開発がどんどん便利になっていくと考えられます。

マルチプラットフォーム

これらのWebバックエンド、フロントエンド、ネイティブ(iOSなど)を組み合わせたマルチプラットフォーム対応の例としてKotlinConfの講演スケジュールアプリが作られています。(まだ中身をしっかり見れていないので年末年始のネタかな・・・)
https://github.com/jetbrains/kotlinconf-app

マルチプラットフォーム向けの機能として、common moduleという仕組みが実装されました。
これはバックエンド(Kotlin/JVM)、フロントエンド(Kotlin/JS)、ネイティブアプリ(Kotlin/JVM、Kotlin/Native)などで共通のmoduleとして実装、各層向けにビルドすることでコードの多重実装を防ごうという目的のものです。

このKotlinマルチプラットフォームによって、最初に仕事でやってる事の一例 としてあげた
- Reactでのフロントエンド開発
- PHPでのWeb開発
- GolangでのAPI開発

この3つの領域+ネイティブアプリ全てがKotlinで書くことが可能となりました。
実際には既存コードや固有の問題など簡単な話ではありませんが、Kotlinを学ぶだけでフロントエンドからバックエンド、アプリまでカバー出来るエンジニアになれるかも知れません。

おわりに

いまさらで特に目新しい話題があるわけではないのですが自分の中で整理をする意味も込めてまとめてみました。

そんなこんなで今年は今まで以上にKotlinが大きく話題になった1年でした。
来年にむけてさらにKotlinの勉強をしていこうと思います。

ということをつらつらと書いていたらKotlin 1.2が正式リリースされてました。
https://blog.jetbrains.com/jp/2017/11/29/828
早速common moduleを試してみたいと思います!


明日はシステム開発Gマネージャー @t_yamatoya にバトンを渡します。
タイトルは「 ホワイトプラスを支えるエンジニア」
どんなエンジニアがいるのか、どんな仕事をしているのかみたいな内容とのことです。

ホワイトプラスではエンジニアを募集しています

ホワイトプラスでは、新しい技術にどんどん挑戦したい!という技術で事業に貢献したいエンジニアを募集しております。

14
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
2