「作ればわかる!TitaniumMobileプログラミング」献本いただきました。翔泳社の編集の方、ならびにユーザ会会長のyagi_さんどうもありがとうございます!
最近、Titaniumいじる機会がガクっと減ってしまったのですが献本いただいたのでひと通り眺めてみたのでそのレビューをちょっと書いてみます
どういう感じで読み進めたか?
ターゲットの読者が
- とにかく何かを作りたい
- iOSアプリを作りたいけど何から始めれいいのばよくわからない
- アプリを作りながらプログラミングのコツをおぼえたい
という感じでこの本が書かれています。
TiStudyの内容をベースにして、先端技塾シリーズJavaScriptでiPhoneアプリ開発をマスターしよう!というタイトルで4日間のコースで行った講座で想定してる読者像と近いかなぁと何となくイメージしました。
なので、自分としてはこの本を読むのに「上記のようなターゲットの方向けにどういうコンテンツだと響くのかな〜」という観点で読んでみました。
コンテンツとして面白いと思った所
ListViewの説明がある所
SDK3.x対応という記述通り、これまでのTitaniumでのサンプルアプリではあまり取り上げてないListViewについて取り上げた説明があります。(P.217〜)
しかも、嬉しい事に
- TableViewとの比較の説明がある
- TableViewベースで作ったものをListViewではどう実装するのかというサンプルアプリがある
という部分は、個人的に理解が未だに甘い所があるのでこういうのはいいですね
Titanium使ったアプリのサンプルでATNDを採用してる所
Webサービス連携のスマフォアプリが作りやすいしイメージがつかみやすいかなと個人的には思ってます。実際自分もQiitaの非公式ビューワーアプリ作ってるし、それを題材に講座で教えていて、こういう見た目にわかりやすいものが作れるようになると勉強している人のモチベーションにつながるかなと思ってます。
数年前ならこういうWebサービスの題材としてTwitterAPIが使われていたと思うのですが、本書ではATND APIを題材にアプリ開発の手法を紹介されてます。ATNDなら、とにかく何かを作りたい/iOSアプリを作りたいけど何から始めれいいのばよくわからないというターゲット読者に響きそうな題材かなと思いました。
個人的に気になった内容
JavaScriptの基本文法の説明
自分も資料作っててJavaScriptの基本文法の説明をどこまで踏み込んで書くのか悩んだ所ではあるので、本書ではどういうアプローチで解説しているのかちょっと気になって読み進めてみました。
本書で変数のスコープの説明が、P48あたりに説明があるのですが、もうちょっとだけ踏み込んだ説明を入れつつ、実際のサンプルアプリでも、
var win1 = Titanium.UI.createWindow({ // 省略 }); var button1 = Titanium.UI.createButton({ // 省略 }); var label1 = Titanium.UI.createLabel({ // 省略 });
という記述ではなく
var win1, button1, label1; win1 = Titanium.UI.createWindow({ // 省略 }); button1 = Titanium.UI.createButton({ // 省略 }); label1 = Titanium.UI.createLabel({ // 省略 });
という感じで開発元のAppcのJavaScriptCodingStyleGuideにあるように先頭でひとまとめに宣言するスタイルで統一したほうがいいのかなと感じました。
まぁ、こんな偉そうなこと書いてるけど、そんな自分も最近までこの辺りの理解浅かったけどね^^;
変数ネーミングの工夫
想定読者がアプリを作りながらプログラミングのコツをおぼえたいという狙いを考えると、
var data = [];
var detail = Ti.UI.createWindow({});
function useHanbaiDB(){ };
という感じのネーミングが時折見かけられるので、プログラミングのコツを覚えるという観点ではもう一工夫あってもいいのかなぁと
最後に簡単なまとめ
- 想定ターゲットの読者の気を引きそうな題材をベースにアプリ開発手法を取り上げてる所は良いかなと感じます
- プログラミングのコツを覚えるという狙いがあるのを考えると、JavaScriptの文法解説などはもう少し工夫があってもいいかなと個人的に感じました。
ビジネス書籍はいぜん読んだものをこまめに書評っぽくまとめていたのですが、こういう技術書のレビューって難しいですね・・