CONTENTS

kotolin / コトリンとは?メリット、デメリット、開発事例を解説

株式会社GeNEE_Kotlin開発


Androidアプリの開発で脚光を浴びている「kotlin」というプログラミング言語をご存知でしょうか。Kotlinが登場するまでは、Androidアプリの開発にはJavaが使用されていました。そのJavaを改良して、チェコにある統合開発環境のJetBrainsが2011年に開発したのがkotlinです。それでは、具体的にkotlinとは何か、メリットやデメリット、またKotlinを活用してできること、開発事例などをこちらのコンテンツではご紹介していきたいと思います。最後までお付き合いください。

『クロスプラットフォームとは何か』についてはこちら。

 

kotlinとは何か

2011年に登場したkotlinは現在人気があるプログラミング言語の中では比較的新しく、GoogleがAndroid向けのアプリ開発言語として公式採用したことも記憶に新しい言語です。kotlinの言語自体はJavaとは互換性はないですが、Java VM(仮想マシン)上でコンパイルされたコードは動作するので、これまでJavaで作られたアプリに新機能をkotlinで追加することができます。このようなkotlinには以下に掲げる、主に3つの特徴が挙げられます。

  • コードが簡潔に書ける
  • Javaとの相互利用ができる
  • 安全性が高い

 

コードが簡潔に書ける

そもそもkotlinはJavaよりも簡潔に書くことができるように開発された言語なので、Javaよりも簡潔でより質の高いAndroidアプリを開発することが目的とされています。また、シンプルに書きやすい分、工数も短くなることも特徴の一つです。工数が短くなれば開発の費用面も抑えられ、短期間でリリースをしたいときにも重宝しやすいと言えるでしょう。

 

Javaとの相互利用

先にも述べたように、JavaもKotlinもJava VM(仮想マシン)上で共に動作します。Java VM(仮想マシン)はJavaで設計されたプログラムを動かすソフトウェアであり、ここでKotlinを動かすことができるということは、Javaで開発されたプログラムと共存することができるということになります。ゆえに、既存のアプリがJavaで開発をされていたとしても、Kotlinを活用して新たな機能をつけることなどが可能になります。このように、全て書き換えずとも、部分的にKotlinを使うことができるなどの汎用性が高いことは、大きな特徴と言えるでしょう。

 

安全性が高い

Kotlinは元々産業利用むけに開発されているため、不具合になるようなコードはあえて書きにくい文法で組み立てられています。また、動作実行時に例外が起きてしまわぬようにコードを書きやすくされているため、システムダウンに繋がるような大きなバグが発生する可能性が低い点は安全性が高いと言える特徴の一つです。
そして、もう一つの特徴はNull safetyという仕様がある点です。Javaではシステムに障害をもたらすnull参照ですが、それによる実行エラーを未然に防ぐことができるコードを書きやすくするシステムがあり、これによって安定したシステム構築ができる環境になっています。

 

Kotlinのメリット・デメリット

Kotlinのメリットは上記に掲げた特徴に加えて、以下の内容が挙げられます。また、魅力的な点の多いKotlinですが、デメリットもいくつか考えられます。

メリット

・GoogleがAndroidアプリ開発をサポートしてくれている

KotlinはGoogleがAndroid開発公式言語として2019年から採用しています。それゆえ、GoogleからAndroidデベロッパー向けにKotlinの学習環境や参考資料を提供するなど、サポーとが受けられるようになっています。

デメリット

・日本語の参考資料が少ない
・開発事例がAndroidアプリ以外少ない

日本語の参考資料が少ない

確かに比較的新しいプログラミング言語のため、Javaと比較をするとまだ日本語で参照できる資料は少ないと言えます。しかし、先に述べたように、Googleが公式言語として採用をしているため、Googleから発信される日本語の資料や学習環境を活用して情報を収集することはできます。それらを活かして開発していくに限られますが、今後エンジニアが増えていくことで資料も増えていくので、資料が増えればまた更に使いやすい言語として普及するので、どんどん活用していくことの必要性が高いと言えます。

開発事例がAndroidアプリ以外少ない

Kotlinは元々Androidのアプリ開発を目的としたプログラミング言語です。それゆえ、開発事例がAndroidアプリ以外のものはとても少ないのが現状です。サーバーサイドの開発もできるのですが、Javaの方がこちらは幅広く使用されています。徐々にKotlinにも移行している段階なので、開発事例として多く見ることができるようになるのもそう遠い未来ではないでしょう。

 

GeNEE_システム開発バナー

 

Kotlinで可能な開発

基本的にはKotlinはAndroidアプリの開発を目的に作られた言語のため、Androidアプリの開発に用いられることが多いです。しかし、実際にはフレームワークを使い分けることで、それ以外にもWEBアプリ開発・サーバーサイドの開発が可能です。ここで言うフレームワークとは、「システム開発をサポートするツールや仕組み」を指します。
このフレームワークは種類が多いので、実際に使う場合には効率化・セキュリティ・不具合・今後の拡張性・アプリとの相性など色々な角度から見て、最適なものを選択する必要があります。
例として挙げると、「Ktor」というフレームワークは、システム間を連携するための非同期なサーバー・クライアントを簡単に構築することができるものです。また「Spring Boot」は、汎用性の高いフレームワークで、さまざまなサーバーサイド開発を効率化し、且つ便利にできるという特徴があります。
このように、各々のフレームワークで用途は多岐に渡るため、「開発したいことが何なのか」「実現したいことは何か」など目的をはっきりとさせて、フレームワークを選択し、AndroidアプリだけでなくWebアプリやサーバーサイドの開発に活かしていきましょう。

 

Kotlin 開発事例

Androidアプリの開発が主な印象のKotlinですが、実際にどのようなアプリケーションの開発に使用されているのでしょうか。
今回は3つの事例を紹介したいと思います。

  • LINE
  • Netflix
  • Yahooカレンダー

Netflix

Netflixは近年Prodicle と呼ばれるモバイル アプリを開発しましたが、これはコンテンツの自主制作に力を入れるNetflixが、その制作工程を支援するために開発したツールです。元々はWebアプリケーションでしたが、ネット回線が不安定な環境からの接続が多い、オフラインでも接続ができるようにしたいなどの理由からiOS、Androidで利用できるネイティブアプリへと移行しました。短期間でのアプリの移行が求められ、また、既存のプラットフォームに補完的な立場として使用することがメリットとして考えられ、Kotlinが採用されたそうです。
このように、新たに開発をするアプリではなく、進化させていく際の仕様変更をするという場合には、Kotlinのように全てを書き換える必要がないという言語は工数も削減でき、有効な言語と言えます。

 

参照: ネットフリックスが目指す「働き方改革」 脱・アナログで創造力を後押しする現場づくりへ

 

LINE

2011年6月に開発されたLINEアプリ。このLINEのメッセージングアプリ開発においても、新しいコードは全てKotlinで書かれるようになりました。このLINEのメッセージングアプリ開発ことLINE Messaging APIとは、LINE公式アカウントのBotを作るためのAPI・プラットフォームのことを指します。
LINE Messaging APIは実際にはどのようなことをやっているのかというと、Messaging APIはtalk-serverのプロトコルとはまったく異なるAPIで通信していて、LINEのチームで開発しているMessaging APIのバックエンドサーバーが橋渡し役となって機能しています。
実際にKotlinはどのような部分で使用されているのかというと、Webhook送信側のサーバー構成を2020年から2021年に大幅に構成を刷新しており、その際にKotlinを積極的に採用したとのことで、多くのコンポーネントがKotlinで動いていると伝えています。
LINEのエンジニアは、Kotlinは使用している他の言語(JavaやScala)と比較するとちょうど良い言語だと言います。その主たる理由がやはりJavaから置き換えやすいという点、Javaがわかれば直感的に使うことができる点だと伝えています。

 

参照:
LINEのメッセージングアプリ開発におけるKotlin

LINE公式アカウントのBotを作るためのAPI・プラットフォーム「LINE Messaging API」

 

Yahoo!カレンダー

2000年にサービスを開始したYahoo!カレンダーは、サービスや組織の成長に伴い、その都度発生する課題をPHP製のサーバーサイドの修正をしてしばらくは対応していました。これは修正コストも工数もかかる作業で、これ以上コストが増えると、Yahoo!カレンダーとして目指す「ユーザーへ安定して価値提供をすること」ができなくなるかもしれないという懸念が出てきたことから、Kotlinに技術移行を検討する運びとなったそうです。
またこれと同時にKotlinへの移行を決断した背景には、動作の実行時ではなくコンパイル時にエラーに気付きたい、可能な限り静的な解析や型を導入することで最低限の品質を担保したいという思いがあったと言います。

もちろん、言語の移行にはメリットだけではなくデメリットも当然あるとはいえ、デメリットとして捉えていたのは、学習コストがかかることのみだったとのこと。移行前の目的通り、品質の向上が図れ、生産性も高めることができていることから、今後はJavaの部分もKotlinに移行したいと考えているそうです。

参照:

次世代言語Kotlinを使ったAndroid開発とヤフーの新技術との向き合い方

Yahoo!カレンダーがPHPからKotlinに技術移行し品質アップ! 成功の鍵とは?1

Yahoo!カレンダーがPHPからKotlinに技術移行し品質アップ! 成功の鍵とは?2

GeNEE_システム開発バナー

 

 

まとめ

いかがでしたでしょうか?まだまだ日本での事例が少ないKotlinですが、導入している企業は多少のデメリットは感じてもメリットの部分を多く感じています。コストをかけず、短期間でAndroidのアプリを開発したい場合、是非Kotlinの活用を検討してみてはいかがでしょうか。

 

—————————————————————————————————————

システム開発、アプリ開発、新規事業立ち上げ、DX化の推進でお困りではありませんか?

日本全国には開発会社が無数にありますが、Webサービスやアプリサービスのスケール(規模拡大)を実現するビジネス推進力やシステムの堅牢性、可用性を意識した設計力・技術力を合わせ持つ会社は、全国で見ても多くはなく、弊社は数少ないその一つ。お客様のご要望通りに開発することを良しとせず、お客様のビジネス全体にとって最適な解を模索し、ご提案ができるビジネス×テック(技術力)×デザインの三位一体型のシステム開発/アプリ開発会社です。ITやDX全般に関して、何かお困りのことがございましたら下記の「GeNEEへのお問合せ」フォームからお気軽にご連絡いただけたらと思います。

GeNEEの会社概要

GeNEEの特徴

GeNEEの提供サービス一覧

GeNEEの開発実績

GeNEEからお知らせ

GeNEE発信コンテンツ

GeNEEへのお問合せ

GeNEE社に関する資料をダウンロード

—————————————————————————————————————

 

 

  • コンテンツ
  • kotolin / コトリンとは?メリット、デメリット、開発事例を解説
↑