スペシャルトーク@プログラミング+ 第20回
5月19日 (土) 初開催「国内第一人者が教えるKotlin入門 ~Androidアプリ開発のスタートを後押しする1日集中講座~」
プログラミング言語「Kotlin」でAndroidアプリ開発を始めよう!
2018年05月09日 12時00分更新
角川アスキー総合研究所は2018年5月19日(土)に、Androidアプリ開発に初めて挑戦してみたい方を対象に「国内第一人者が教えるKotlin入門 ~Androidアプリ開発のスタートを後押しする1日集中講座~」と銘打った講座を初開催します。
本講座で講師を務める長澤太郎氏は、今回の講座で学んでいただける新しいプログラミング言語「Kotlin」の魅力を最初期から発信し続けている、国内第一人者とも呼ぶべき存在です。本記事では「KotlinでAndroidアプリ開発をおこなうことのメリット」などについて、長澤氏からの分かりやすい解説と紹介をお届け。より深くKotlinを学んでみたい、Androidアプリ開発を今から始めたいという方は是非お読みください。
プログラミング言語「Kotlin」でAndroidアプリ開発を始めよう!(文:長澤太郎氏)
「Kotlin」というプログラミング言語をご存知でしょうか?2016年に正式リリースされた、新しいプログラミング言語です。Javaの動作環境の上で実行することができ、Androidアプリの開発言語としてGoogleが採用することを発表しています。
今まで、Androidのネイティブアプリを作るときに使用言語の選択肢はあまりありませんでした。すなわち「Androidアプリ開発と言ったらJava」という世の中でした。ここに、もう一つの選択肢が加わります。それがKotlinです。
本記事では、Kotlinという言語の魅力についてご紹介します。
「よりよいJava」としての「Kotlin」
Kotlinの動作する環境は、今や数種類あるのですが、メインとなるのはJavaの実行環境であるJava仮想マシン(JVM:Java Virtual Machine)です。Kotlinのコードが記述されたソースファイルを、Kotlinコンパイラに入力すると、Javaの中間コードであるJavaバイトコードが記述されたclass
ファイルが出力されます。class
ファイルは、普段あまり内容を見ないかもしれませんが、使用される命令(Javaバイトコード)は、Javaソースファイルからコンパイルしたものと同じ種類のものが使用されます。「Javaが動くところでは、Kotlinも動く」ということが言えます。
なぜ、JVMで動くJavaとは違う言語が必要だったのでしょうか。Javaは非常に優れたプログラミング言語で、歴史があり、多くのプログラマーに愛されてきました。しかし、そのコードの冗長さや、古い文法が残り続けるなど、課題感を抱く人も増えてきたように思えます。一方JVMは、その長い歴史により、性能が上がり、世界中に広く浸透しており、魅力的なプラットフォームです。
Kotlinは、このような状況を受け、JetBrainsというチェコの会社によって開発されました。Android StudioのベースとなっているIntelliJ IDEAなど、開発者向けツールを開発・提供している会社です。同社の一部のチームではJavaを使っており、上記のような課題を打破すべく、自分たちのために新しい言語を作ったのです。
Kotlinは後発言語としての強みを持っています。つまり、まったく新しい文法で、既存の問題を回避できるということです。Javaのコードは冗長なところがあると述べましたが、単純なクラスの定義を考えてみましょう。
例えば、製品(Product
)を表すクラス。これは、名前と価格というデータを持っているとしましょう。Javaで記述すると、下記のようなコードが出来上がります。
public class Product {
private final String name;
private final int price;
public Product(String name, int price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public int getPrice() {
return price;
}
}
データの持ち方は、実装の詳細なのでprivate
として隠蔽するのがよい設計だとされています。データの取得はゲッターと呼ばれるメソッドを介して行います。これは、Javaプログラマーにとっては自然なことでしょう。
次に、Product
クラスをKotlinで書き直すと、下記のようなコードになります。
class Product(val name: String, val price: Int)
すごいですね!たったの1行です。ゲッターの明示的な定義はありませんが、コンパイラにより自動生成されます。
このように、Javaで記述するのがまだるっこしかったものが、Kotlinではチャチャッと記述することができます。
Androidアプリ開発でKotlinを使う
冒頭でも述べましたが、KotlinはAndroidアプリの開発言語として、Googleが正式採用する旨を発表しました。この発表の前と比べて、Kotlinをアプリ開発に導入するリスクが軽減したことを意味します。開発者は安心してKotlinを実践投入することが可能になったということです。
また、KotlinとIntelliJ IDEAの開発元が同じであることで、開発環境の面でも有利です。Android Studio向けにKotlinプラグインが提供されており、プログラミングを手伝ってくれます。今では、Android StudioにKotlinプラグインがプリインストールされているので、追加のセットアップなしに、すぐにKotlinでAndroidアプリ開発を始めることができます。
もうひとつ、Kotlinの便利な機能を紹介します。AndroidではContext
というクラスのオブジェクトが必要な場面が数多くあります。それを関数の第一引数に渡して、何かしらの操作を行うということが頻出します。例えば、トーストを表示してユーザに簡易的なメッセージを見せたいということがあるでしょう。AndroidのAPIをKotlinから使用すると、次のようなコードになります。
Toast.makeText(this, "Hello", Toast.LENGTH_SHORT).show()
ここでのthis
は、Activity
クラスのオブジェクトだと思ってください。
もし、Kotlinの文法・機能を活用した関数が定義されていたら、次のような呼び出しで上記と同じことが実現可能です。
toast("Hello")
コードがとても短くなりました!これはKotlinの「拡張関数」と呼ばれる機能を上手く利用しています。あなた自身がこの関数を定義することは、もちろん可能です。しかし、その必要はありません。Android KTXというAndroid公式のKotlin向け拡張ライブラリが提供されています。これを使えば、トースト表示だけでなく、多くのAndroid機能にKotlinらしくアクセスすることが可能となります。
まとめ
いかがでしたか?Kotlinは、Javaの抱える課題を克服するために誕生し、コードの冗長さの面を具体例に優位な特徴を見ました。また、Androidアプリ開発でKotlinが問題なく利用でき、またその機能を活用した公式ライブラリがあることを知りました。これからのAndroidアプリ開発ではKotlinが主流になっていくのではと、筆者は考えています。
Kotlinは新しい言語であるため、Javaと比べると教材の数は圧倒的に少ないのですが、いくつか書籍があります。手前味噌で恐縮ですが、拙作『Kotlinスタートブック』(2016年、リックテレコム刊)は、Javaプログラマー向けのKotlin入門書として自信を持っています(著者注釈:筆者が共同で翻訳を行った『Kotlinイン・アクション』(2017年、マイナビ出版刊)もおすすめです!)。しかし、特にAndroidアプリの開発パートの内容が、若干古いことは否めません。
今回開催する講座「国内第一人者が教えるKotlin入門」では、Kotlin、Androidともに最新の内容を学べます。この素晴らしい言語を学んでみませんか?
5月12日開催:講座概要
国内第一人者が教えるKotlin入門 ~Androidアプリ開発のスタートを後押しする1日集中講座~
- 日時:2018年5月19日(土)10:00 - 19:00(当日9:30受付開始)
- 会場:角川第3本社ビル(東京都千代田区富士見1-8-19)
- 対象者:
- 既になんらかの言語を利用したプログラミング経験をお持ちで、Androidアプリ開発へチャレンジしてみたい方向けの講座です。
- 本講座は「Androidアプリ開発は未経験」の方を対象とします。その旨をご理解いただければ、アプリ開発経験をお持ちの方の受講も歓迎します。
- 参加費(昼食付):2万7千円(税込)
- 講師(敬称略):長澤太郎(Twitter:ngsw_taro)
- 主催:株式会社角川アスキー総合研究所
- 詳細情報・ご応募:Peatixページをご覧ください
講師プロフィール(敬称略)
長澤太郎
Ubie株式会社でソフトウェアエンジニアとして医療に貢献するかたわら、Kotlinの啓蒙活動に尽力。著書に『Kotlinスタートブック』など、共同訳書に『Kotlinイン・アクション』がある。
当日の予定カリキュラム
第1部:Kotlin入門
- Kotlinの概要(特徴や誕生の背景)
- 開発環境の準備
- 基本的な文法(最後に練習問題)
- 関数(最後に練習問題)
- クラスとオブジェクト(最後に練習問題)
- Null安全(最後に練習問題)
- 継承・インタフェース
- Javaとの親和性
第2部:AndroidでKotlin
- 開発環境の準備+KotlinでAndroidアプリ開発の始め方
- 開発するアプリの説明(題材は単純なGithubブラウザ、ハンズオンあり)
- リポジトリ詳細画面への遷移(ハンズオンあり)
- Github REST APIを使う(ハンズオンあり)
- コルーチンを使う
※上記カリキュラムは予定です。都合により変更する場合がございます。
※途中一時間程度の昼食休憩がございます。昼食は主催者側で用意いたします。
この連載の記事
-
第30回
トピックス
『第九回技術書同人誌博覧会』が11月25日に開催 -
第29回
トピックス
「ChatGPTはどう変わろうとしているのか」を学ぶ講座、11月24日に開催 -
第28回
プログラミング+
U-22で経済産業大臣賞など4冠の中学生上原直人(15歳)さんに聞いた -
第27回
プログラミング+
教育研究家とケンカして作った子どもプログラマー向けキーボードとは? -
第26回
プログラミング+
まだ間に合う! SDLアプリコンテスト応募へ、サンプルコードを一挙公開!! -
第25回
プログラミング+
アプリ開発者のみなさま! SLDアプリコンテスト〆切迫る -
第24回
プログラミング+
クルマは巨大なIoTだ! SDLハッカソンレポート -
第23回
プログラミング+
PyCon JP 2018レポート~参加者1000名超!過去最大の規模で開催~ -
第22回
プログラミング+
『みんパイ』著者が、Pythonはなぜ流行ったのかを考える -
第21回
プログラミング+
イノベーションが強く求められている時代だからこそ「非エンジニアがプログラミングを学ぶべき」な理由 - この連載の一覧へ