著者のひとり、森本さん(@dealforest)および版元の技術評論社様よりモバイルアプリ開発(Android、iOS)を解説する技術書「モバイルアプリ開発エキスパート養成読本」をご恵贈いただきました。
この表紙に見覚えがある方もいらっしゃるかもしれません。そう、本書の刊行は1年前、2017年4月24日です。Swift 3、iOS 10、Xcode 8とメジャーバージョンにして最新からひとつ前になってしまった数字を見るにつけ記事を書くのが遅れたことを申し訳なく思う気持ちを抱きつつも、いや、バージョンが変わってしまって注目度が下がっているかもしれない今こそこの良書を改めて紹介するタイミングなのではと。
たとえば「Swift 3入門」という記事がありますが、この章では3からの大きい変更である「命名規則」について詳しく解説されています。これはSwift.orgのAPI Design Guidelinesに書かれている1内容で、これはSwift 4になった今でも重要ですし、これを日本語で解説してくれているまとまった情報源というのは貴重ではないでしょうか。
またiOS 10の新機能/新API群も、iOS 12がそろそろ発表されるであろう今こそ、これからiOS 9を切り、いよいよiOS 10のAPIを積極的に使っていくぞ、という時期なのではないでしょうか。User Notificationsフレームワークによって新たに可能になったリッチなpush通知や、Haptic Feedback等は多くのアプリにとって導入を検討する価値があります。
(User Notifiationsを利用したリッチなプッシュ通知 2)
ちなみにiOS 10からの機能ではありませんが、日本では同時期から利用可能になったということで、本書ではApple Payの実装についても詳しく解説されているのも貴重なポイントです。
Xcode 8の章も、(当時の新機能である)Memory Graph DebuggerとInstrumentsを両方活用してメモリリークをデバッグする方法や、PlaygroundでCocoaPods/Carthageを使う方法など、さらっと実践的なTipsが書かれていたりします。他にも「なぜXcode Extensionが導入されたのか?」「Automatic Signingで困るケース」等々、とにかく開発者視点だなと。
他の解説書にはない、実際の開発現場に即した内容
iOSアプリ開発やSwiftの入門書は数多出ています。いずれの書籍にも重要なことが書かれていますし、アプリをつくれるようにはなるでしょう。しかし、実際に会社に入り、ひとつのサービス/プロダクトを継続的に開発・運用していく場合、それら既存の本に書かれていることとはまた別の知識が多く必要になります。
本書ではリアクティブプログラミング(RxSwift)、設計手法、テスト、運用ツール(Fastlane等)、mBaaS(Firebase)といった、他の書籍ではなかなか扱わないであろう、しかし昨今の開発現場では必須ともいえるテーマについても書かれています。
目次
目次と、それぞれの著者を載せておきます。現場でバリバリやってるあの人やこの人が書いてます。また本記事はiOSエンジニア視点で書いてますが、Androidについても同じテーマで書かれています。
第1章: モバイルアプリ開発の基礎知識
- 1-1 モバイルアプリ開発を取り巻く最近の動向…… 黒川 洋 坂田 晃一
第2章: Android開発最前線
- 2-1 快適な開発を実現! Kotlin徹底入門…… 藤田 琢磨
- 2-2 最新Android Studio入門…… 山戸 茂樹
- 2-3 アプリの使い方を大きく変えるAndroid 7.0/7.1の新機能…… 山田 航
第3章: iOS開発最前線
第4章: リアクティブプログラミング入門
- 4-1 リアクティブプログラミングとRx…… 黒川 洋
- 4-2 RxJava実践入門…… 黒川 洋
- 4-3 RxSwift実践入門…… 坂本 和大
第5章: 現場で役立つモバイルアプリ設計・開発
第6章: 現場で役立つテスト
第7章: 運用に役立つツールの使い方
第8章: 今注目の「統合アプリプラットフォーム」Firebase活用入門
- 8-1 今注目の「統合アプリプラットフォーム」Firebaseとは…… 山田 航
- 8-2 Firebaseをアプリに導入しよう…… 山田 航
- 8-3 導入したFirebaseを運用してみよう…… 山田 航
まとめ
そんなわけで、「モバイルアプリ開発エキスパート養成読本」、他の書籍には書かれていない「実際の開発現場に即した実践的な知見」にあふれていて、非常に良い本なので気になった方はぜひ。Kindle版もあります。
本書はSwift Evolutionのproposalをベースに書かれています。↩
画像はiOS 10 Samplerより↩