@numa08 猫耳帽子の女の子

明日目が覚めたら俺達の業界が夢のような世界になっているとイイナ。

kotlin本出版のお知らせ

Androidアプリ開発のためのKotlin実践プログラミング

Androidアプリ開発のためのKotlin実践プログラミング

内容紹介

Amazon にはもう並んでいるようですね。夏に酢酸先生( id:ch3cooh ) から紹介をして頂いたご縁があってkotlinの本を執筆しました。タイトルにもありますが「Android開発のための」本です。

Amazonの書籍解説では

kotlinを使って、開発の現場ですぐにKotlin言語を採用したアプリ開発をするためのノウハウを解説する本です。

となっているので、著者目線でこの本が想定しているターゲットや本の内容を紹介します。

目次構成は次のようになっています。

目次の解説の前にこの本のターゲットをお伝えすると「すでにプログラミング言語kotlinの本(赤べこ本とか)を読み終えていて、公式リファレンスやqiitaなどの記事を見ながらコードを書くことのできる人」さらに「Androidアプリ開発の経験がある人でjavaで作られたアプリをkotlinに改修したい人」となっています。そのため本文中ではプログラミング言語kotlinのおさらいを兼ねた解説を第1章で行いますが、Androidアプリ開発に関する部分については省略をしています。

そして気になる各章の内容ですが、第1章は先に書いたようにプログラミング言語kotlinのおさらいを兼ねた解説です。簡単なCLIのアプリケーションを構築する手順を通して、gradleを利用したkotlinでコードを書く場合のプロジェクト構成の作り方やコードの書き方、標準ライブラリに用意されている関数、メソッドの利用方法などを紹介します。

第2章からはがっつりとAndroidアプリ開発を行っていきます。具体的にはよくあるシチュエーションと思われる「javaで書かれたアプリをkotlinに改修する」を想定ます。そのためのプロセスとして次の手順を私は提案しています。

  1. まずテストを書く
  2. kotlinを使って機能を拡張する
  3. java で書かれたコードをkotlinに書き換える

テスト大事ですよね、テスト。第2章ではkotlinを使ってAndroidのテストを書くやり方、関連するライブラリやフレームワーク(JUnit, Robolectric, mockito)の紹介を行います。世の中にアプリ開発をするための本は数あれど、テストを最初に持ってくる本もこの本くらいなんじゃないでしょうか?(要出典

なお、先に書いたテストライブラリ、フレームワークに espresso が含まれていないのは本文中では Instrumentation Test を書いていないからです。これについては迷ったのですが、自分自身があんまり Instrumentation Test をやりたくない(実行が遅いし)という気持ちを持っていてサンプルアプリを作る中で自然と Instrumentation Test を用意しないものにしてしまったからです。Androidフレームワークに依存する部分ならだいたい Robolectric でなんとかなるし、レイアウトをテストが必要なくらいややこしいものにするのもなぁって感じで。そもそも、頑張って Instrumentation Test を用意して espresso でテスト書いてもkotlinならではの詰まりどころ、変な所とかを紹介できるわけではないなといった部分を考えた結果です。

なので、「kotlinを使ってespressoでテスト書いてみたい!!」という人には本書の内容は適していないと思います。

第3章ではアプリケーションの方に手を加えて、kotlinに機能を実装した部分を既存のjavaのコードから呼び出すケースを想定したコードの書き方を解説します。アノテーションがいっぱい出てくるやつです。また、kotlinでは使えるけどjavaでは使えない機能の紹介も。今回のケースではjavaをkotlinに書き換える前提なので、javaから使えない機能もガンガンkotlinでは使っていってます。

第4、5章ではついにコードの書き換えを行います。コードの書き換えのためにテストを書いて、Intellij kotlin plugin の機能を使ってコードを自動変換し、自動変換で救いきれなかった部分を修正するという流れ。ひたすらそれの繰り返しの中で、自動変換がどんな動きをするのか、コンパイルが通っても直したほうが良い部分はどういう箇所なのかを解説します。また、5章では執筆時点でExperimental(というか今もか)なコルーチンにも触れてコールバックメソッドを消し去っていきます。

本の内容はこんな感じです。

カバーしていない部分

この本のターゲットや執筆のポリシーから今回カバーしていない部分も多くあります。全部を掲載することはできませんが思いつく限りを。

文法やコードの書き方、ifwhenなどの制御構文、その他標準ライブラリについての解説は第1章にありますがおさらい程度です。「はじめてkotlinに触ります!!」という人にはちょっと不親切かもしれません。そういう方は長澤太郎さんのkotlinスタートブックを先に読まれたほうがいいと思います。

Kotlinスタートブック -新しいAndroidプログラミング

Kotlinスタートブック -新しいAndroidプログラミング

  • Android アプリの基本的な所

これについての解説は一切ないです。「はじめてAndroidに触ります!!」という方の場合・・・今って最初に読んだほうが良い本って何なんでしょうかね?おすすめできる本が何なのかわからなくて恐縮ですが、ともかく初めての人向けの本を読んだほうが良いでしょう。

  • Android のデバイスとかセンサーとか、外部の機器やサービスとの連携

今回の本の内容はgradleによるアプリケーションのプロジェクト管理だったり、ソースコードの書き方に重点を置いています。したがって、デバイスのセンサー周りを触ったりあるいは外部の別の機械との通信とかを想定した内容はありません。今にして思えば、センサー系とか使えばkotlinっぽいコードが書けない部分を作り出せたかもなぁ。次回作にご期待下さい!(あるのか?

  • gitの解説

本文中に登場するサンプルコードはgithubで管理していますが、gitの使い方の解説は省略しています。本文中ではリリースページから.zipファイルをダウンロードできるようにリンクを用意しているのでgitわかんなくても大丈夫なハズ。

  • gradle の解説

これも最低限しか無いかな。本文中にgradlewコマンドの実行箇所とか出てくるけど基本的にコピペで大丈夫。

Androidで使えるjava7の文法についての解説はとくにありません。難しいことはやってないので大丈夫だと思う。

ツッコミとかまさかりとか

自分の経験をベースに執筆した本なので紹介している内容がベストプラクティスじゃなかったり、場合によっては間違っている場合もあるかもしれません。正誤表なんかは公式サイトに公開されるでしょうけど、そういうのに掲載されていない部分についてはアカウントに直接教えてもらえると。お手柔らかに頼みます :pray: