Kotlinのパイオニア長澤太郎氏・LINE Fukuoka吉田清亮氏が語る、Kotlinの運用とこれから

2017年、いよいよGoogle I/Oでサポートが発表され大注目のAndroidアプリ開発言語「Kotlin」。正式採択前から日本でKotlinを啓蒙し続けてきた長澤太郎氏と、早い段階からKotlinを導入し開発してきたLINE Fukuoka社のAndroidエンジニア吉田清亮氏に、Kotlinの運用や展望を語っていただきました。

「不安よりワクワク感が勝った」Kotlin導入のキッカケ

吉田(LINE):今年はいよいよGoogleの正式サポートが発表されましたね。今年のGoogle I/Oは、太郎さんはかなり注視していたんじゃないですか?

長澤(エムスリー):毎年来るか、来るかとドキドキしていたので、正直「今年も来ないだろ、もういいよ……」という気持ちで見ていました(笑)。

エムスリー株式会社 長澤 太郎氏

長澤:LINEさんがKotlinを導入しはじめたのはいつ頃なんですか?

吉田:2016年の秋頃からです。僕はLINE FukuokaでLINE Creators Studioというアプリ開発に携わっているのですが、その開発を始める段階でKotlinを採用しました。

開発チームが立ち上がったときは3人で、みんな初学者でしたが特に異論なく採用されました。Kotlin導入の決定自体はすごくスムーズでしたね。

LINE Fukuoka株式会社 開発室 吉田 清亮氏

⇒参考:LINE Creators Studio開発に使われるKotlinのご紹介

長澤:Google I/Oの発表以前からなんですね。導入にあたって不安要素はなかったんですか?

吉田正直、ほとんどなかったですね。Kotlin1.0のリリースから間が空いてようやくKotlin1.1がリリースされるタイミングだったので、ある程度の安心感もありましたし、ネックだったDaggerのうまく動かない問題もちょうど解決された頃ですんなり導入できたので、やってみようと。

チームとしても会社としても、導入への不安より「使ってみようよ」というワクワク感が勝っていました(笑)。太郎さんの活動のおかげで心的障壁が低くなっていたのもあると思います。太郎さんの会社は、やはりKotlinの導入は早かったんですか?

長澤:僕がKotlinを触り始めたのは4、5年前ですが、会社の開発への導入は2年前でした。Java製のAndroidアプリのリニューアルをしていて、そのときに僕の活動を知っていた上司に背中を押してもらったのがキッカケです。

それでも当時は、導入するのは早いんじゃないかと不安がありましたね。なので、Google I/Oでサポートが発表されて本当に嬉しかったです。

吉田選択したことの正しさが証明された、という気持ちになりますよね。一安心しました。

8,568通り、あなたはどのタイプ?

初学者だけの環境でクオリティを上げていくために

長澤:とはいえ、全員が初学者の状態で開発を進めていくのは大変じゃなかったですか?コーディングスタイルの統一やコードのクオリティの担保などどうやって進めてました?

吉田:僕らのチームは日本語より英語の方が得意というメンバーが多いので、みんなで英語のチュートリアルやドキュメントを見て勉強を始めました

当初はやはりapply、letの扱いとか、変数itの宣言とか、多少混乱がありましたね。当時も今もコードレビューをベースに、実装ごとにつど良い方法を話し合うようにしています。

長澤:KotlinはJavaと比べると自由な部分が多いので、戸惑う部分もありますよね。僕も今は2人で開発しているので、コードレビューがベースになっています。

吉田:僕のチームの開発ではJetBrains公式ライブラリのankoを採用しているのですが、コーディングスタイルやKotlinの作法などはソースコードを読んでいくのがかなり勉強になりました。

最近はGoogle、JetBrainsからもコーディングスタイルの指針が発表されましたし、それに基づいて社内のコーディングスタイルの作成を進めています。

8,568通り、あなたはどのタイプ?

Kotlinならではの機能を楽しんで学習する

長澤:新たに入ってくるKotlin初学者のエンジニアたちは、コーディングスタイルとコードレビューをもとに教育していくという形でしょうか。

吉田:それに加えてオリエンテーションなどでサポートするようにしています。ただKotlinはStreamに似ているSequenceなど、理解が難しい上になかなか使わない機能などもあって、初心者にどこまで教えるか悩みどころなんですよね。

長澤:僕も初心者向けのハンズオン講師などを務めますが、学習コストが高すぎる機能は割り切って最初は教えないようにしています。とりあえずKotlinならではの機能を一通り触って楽しんでもらえれば。

自著で恐縮ですが「Kotlinスタートブック」(通称・赤べこ本)はKotlinの基本をさらうようにチュートリアルが組み込まれていて、最初の一冊としてオススメできます。

Kotlinスタートブック / 長澤太郎 著 (リックテレコム)

吉田:いいですね。ちなみに今日僕も太郎さんの訳書を持ってきていて……後ほどサインもらってもいいですか!

最新情報は英語リソースから直接キャッチアップ

長澤:Spring Framework 5.0が登場し、よりKotlinフレンドリなフレームワークになりましたね。

吉田:LINEのアプリケーションはSpring Bootを採用しているものも多いんですけど、今度出るSpring Boot 2.0はSpring Framework 5.0をサポートしているのでサーバサイドKotlinも問題なく導入していけそうだなと思っているんですよね。

長澤:そうですね、Springを使った開発をしていれば、サーバサイドもJavaとKotlinの相互運用をそれほど意識せずに開発できるようになりましたね。

長澤:LINEさんでは新しいフレームワークやライブラリの導入は結構自由なんですか?

吉田:話し合って総意が取れれば自由に導入しています。ただし学習コストがかかりすぎる場合は要検討ですが……。新しい技術情報は、海外の一次情報を当たったり、カンファレンスに参加して得るようにしています。

今年もメンバーの1人がサンフランシスコで開催された「KotlinConf 2017」に参加してきました。LINEの制度で、エンジニアは年に1回海外のカンファレンスに自由に参加できるんですよ。

長澤:ええ、それはすごいですね!DroidKaigiのスポンサーにもついていましたし、会社が推してくれる体制なのはいいですね。

全国で高まるKotlin熱

長澤:そういえば、「Fukuoka.kt #1」の開催会場もLINE Fukuokaさんでしたね。

吉田:そうですね。主催というわけではないんですが、僕は福岡でもっとKotlin界隈が盛り上がってほしいなと思っているので協力してもらいました。

第1回はかなり盛況でしたしもうすぐ第2回を開催したいなと思っていて、ゲストにはぜひ太郎さんに来てほしいなと目論んでます。

長澤:おお、本当ですか。いろいろな場所でKotlin界隈盛り上がってきていて嬉しいです。

吉田:Kotlinが出始めた当初よりは知名度も開発者人口もだいぶ増えてきて、Advent Calendarのランキングなんかもすごく人気でしたね。

長澤:2012年の時は、全然流行っていなかったので一人でKotlin Advent Calendar書いていたんですよ。それが年を追うごとに書いてくれる人が増え、今年のカレンダーは僕が作ったのに枠を取る前に埋まってしまいました(笑)。

かつては一人で完走したKotlin Advent Calendar 2012(全部俺)

開発領域がますます広がるKotlin

吉田:これからAndroidアプリ開発を始めるというときに、もはやKotlinを選ばない理由がないですよね。

長澤:Androidアプリ開発としてのKotlinはもう定着してきていますよね。KotlinConf 2017でも、Androidアプリ開発よりサーバサイド開発に関する話題の方が多かったです。あえてAndroidに触れる必要がないという。

吉田:Kotlin1.2もちょうどリリースされましたしね。LINEの一部アプリでも早速アップデート対応します。Kotlinは言語自体のクオリティコントロールが高くて、バージョンアップも苦労がなくていいですね。

長澤:Kotlin 1.2の目玉機能はJavaScriptとJavaのマルチプラットフォーム対応ですよね。これからのAndroidアプリ開発はもちろん、Webフロントエンドも、ひいてはバックエンドも、Kotlinが食うぞ!……という妄想をしています(笑)。

吉田:Kotlin Nativeもありますし、今C言語で書いているようなもっと低レベルの部分もKotlinで書けたらいいな、と僕も妄想しています。Kotlinでの開発がより盛り上がっていくことに期待ですね。

── 対談、ありがとうございました。ますます研鑽されていくKotlinの今後に期待です!

【対談者プロフィール】

LINE Fukuoka株式会社 開発室 吉田 清亮(よしだ・せいすけ)氏
フリーランスとしてRuby on RailsやJavaのサーバーサイド開発や、Androidアプリケーション開発を行ったのち、2014年にLINE Fukuokaに入社。Androidやサーバーサイド開発を行い、現在はKotlinでのAndroid開発に携わる。

エムスリー株式会社 長澤 太郎(ながさわ・たろう)氏
メーカー系SIerを経て、2013年10月にエムスリー株式会社に入社。医療情報プラットフォーム「m3.com」、医薬品情報サービスの「MR君」のAndroidアプリの開発を担当。「MR君」はKotlinを使用している。日本Kotlinユーザグループ代表、日本Javaユーザグループ幹事。著書に「Kotlin スタートブック」「Kotlin Webアプリケーション」。

●著者プロフィール

取材・執筆:dotstudio, inc. ちゃんとく

大学までは文系で法学を学んでいたが「モノを作れる人」に憧れて知識ゼロからWebエンジニアの道へ。転職し現在はIoT中心のエンジニア・テクニカルライターとして活動。Node.jsユーザグループ内の女性コミュニティ「Node Girls」を主催。Twitter: @tokutoku393 / dotstudio, inc.

※本記事は「CodeIQ MAGAZINE」掲載の記事を転載しております。

PC_goodpoint_banner2

Pagetop