最初に
この記事は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 にバトンを渡します。
タイトルは「 ホワイトプラスを支えるエンジニア」
どんなエンジニアがいるのか、どんな仕事をしているのかみたいな内容とのことです。
ホワイトプラスではエンジニアを募集しています
ホワイトプラスでは、新しい技術にどんどん挑戦したい!という技術で事業に貢献したいエンジニアを募集しております。