Androidアプリ開発のニューノーマル?Kotlinとは

#エンジニアブログ

iPhone誕生から10年以上経過した現在、日々、様々なスマートフォン用のアプリが開発され、ユーザーにダウンロードされています。特に最近は巣ごもり消費の影響もあり、テイクアウトアプリ・デリバリーアプリ「Uber EATS」や動画ストリーミングアプリ「Amazon Prime」をはじめ、様々なアプリのダウンロードが伸びています。

ますます加速しているスマートフォンアプリ開発ですが、今Androidアプリの開発で、ちょっとした変化が起きています。

 

これまでAndroidアプリを開発するプログラミング言語と言えば、JavaやC++が主流でしたが、ここ数年の間にKotlinが選ばれることが多くなり、「Androidアプリの開発言語と言えばKotlin」と言われるくらい、変わりつつあります。

そもそもKotlinとはどのようなプログラミング言語なのか、そしていったいなぜ、Kotlinでの開発が増えているのか、について取り上げていきたいと思います。

 

 

■Kotlinとは

Kotlin(コトリン)は、2011年頃にロシアのJetBrains社によって開発され、2017年にGoogleがAndroid公式の開発言語に追加したことで注目を浴びました。長年Androidの推奨言語はJavaでしたが2019年にはKotlinにすると発表されたことで、その地位はより確固たるものとなりました。
JetBrains社はもともとJavaの開発環境を開発しており、Javaのコードの複雑さ回避や安全性を高めるため、Kotlinを開発したと言われています。そのため、文法はJavaには近いものの、コードは簡潔化され、よりエラーが起きにくい仕組みも取り入れられました。
また、Javaのメリットである、コンパイル時間の短さやプログラムの高速化はそのまま継承されました。まさにJavaの進化版とも言える言語です。

 

■Javaとの違い

上記に上げた特徴の他に、Javaでは頻繁に遭遇するエラーの1つ、定義されていない値(Null)にプログラムの処理がアクセスした際に発生する、Null問題「NullPointerException」があります。JavaではNullエラーを回避するため、プログラム内でその値がNullなのかNullでないかの判定式を入れる処理を入れる等、常にNullを意識したプログラム作りが必要になります。
これに対して、Kotlinは基本的にNullを許容せず(例外で使用することは可)、プログラム変換時の事前チェックでも、Nullを検出する仕組みが取り入れられています。
この仕組みによるNullエラーの削減が、開発労力を軽減することに繋がっています。

 

■Kotlinが選ばれる理由

Kotlinは、Android公式の推奨言語になったため、現在Androidアプリの開発に広く使われています。サービスとしては、Yahoo! ニュースアプリ(Yahoo!)やAbemaTV(サイバーエージェント)、Eight(Sansan)等が、Kotlinでの開発を発表しています。
また、サーバサイドプログラミングではJavaもその代表的な言語でしたが、最近はKotlinに乗り換える企業やサービスも出てきております。その要因を更に技術的な視点でご紹介します。

 

 

選ばれる理由としては、既にご紹介した特徴からの利点の他に、技術的な下記の3点があげられます。

① Javaとの互換性があり、Java→Kotlinへ移行しやすい
Java言語と互換性があるため、1つのプロジェクトでJavaとKotlinのソースコードの共存ができます (1つのファイル内では共存不可)。これにより、部分的な移行もしやすく、Javaのソースコードも呼び出す、逆にJavaからKotlinも呼び出す、といったことも可能です。

 

② JVM言語である
JVMとはWindowsやmacOS/Linuxといったユーザー側のOSを意識することなく、OSとプログラムの中間に、変換機能(中間コード)を介してプログラムを実行する仕組みで、これによりOSに合わせてプログラムを作る必要がなくなることが大きな利点です。
また、2018年にはJVMには依存しない、ネイティブバイナリを生成する機能も開発され、OSに直接対応した変換もできるようになりました。
こうした要因もあり、Javaよりも簡潔化されたKotlinは、Androidの開発言語としてだけでなく、サーバサイドプログラミングでも選ばれるようになっています。

 

③ 開発環境の容易性
Googleが公式に提供している、Androidアプリを開発するためのツールに「Android Studio」がありますが、Kotilnを開発したJetBrains社の開発ツールを元にしており、Kotlinが開発しやすいUIや機能、そしてプラグインを導入するだけで開発ができる容易性も利点です。

 

■スキルとしてのKotlin

サービス・アプリを提供する企業としても、コード量が少ないことでのコードの管理のしやすさや、Javaよりもエラーが少なく開発労力も軽減されることは、ビジネスの視点でも非常に大きなメリットです。今後、JavaではなくKotlinでの開発や既存のJavaシステムをKotlinに移行という流れがより強くなっていくと思われます。
エンジニアとしてもKotlinを身につけることで新規案件や対応できる幅が広がっていくでしょう。また、Javaの経験があるエンジニアであれば、習得しやすく、Kotlinの利便性もより業務に反映していけるはずです。

 

 

 

■まとめ

Kotlinは、Javaの改良版といっても過言ではないくらい、Javaとの親和性が高く、Andoroid開発では主流となりつつある言語です。今後もAndoroid開発ではJavaからKotlinへの移行も進んでいくことでしょう。
比較的新しい言語ということもあり、情報量や実績は多くありませんが、書籍やインターネット上でも参考サイト/需要を見越してITスクールでの講座等も最近は増えてきています。そうした機会を活かし身に着けていくのも良いかもしれません。

関連する記事