2011-12-19
■ iOSプログラミング第2版の翻訳本を出版しました
- 作者: アーロン・ヒレガス,ジョー・コンウェイ,Aaron Hillegass,Joe Conway,木南英夫,上堀幸代,内橋真吾
- 出版社/メーカー: ピアソン桐原
- 発売日: 2011/12/21
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 107回
- この商品を含むブログ (9件) を見る
iOSプログラミングというiPhone/iPadのプログラミングの書籍を翻訳して、ピアソン桐原から出版しました。
# 同僚と3人で手がけたのですが、いろいろあって、3倍楽しめました!
書籍の内容は、Xcodeの使用方法から、基本的なGUIパーツを使ったプログラミング、そして、PushNotificaitonまで、非常に幅広くiOSのプログラミングのテクニックを解説しています。
各章の最後には、「チャレンジ課題」や「より興味のある人へ」というセクションがあり、勉強会の教材としても有効です(私も勉強会で使用しています!)。
以下、各章で取り扱っている内容の紹介です。
第1章は、おきまりのHello, World的なプログラミングサンプルを使った入門の章です。
第2章と第3章では、Objective-Cとメモリ管理の概要を説明します。これらの章をきちんと理解することで、本格的なiOSプログラミングの基礎を理解することが出来ます。
第4章と第5章では、Core LocationとMapKitフレームワークを扱います。Androidでもそうですが、やはり、Mapアプリケーションを動かす事で、モバイルアプリケーションの醍醐味を味わう事が出来ます。
第6章と第7章では、ビューのスクロール、ズーム、ページング、画面間のナビゲーションなどを解説します。
第8章では、iPhoneの加速度センサーを扱う事で、デバイスの扱い方を学びます。
第9章では、通知のメカニズムを理解し、アプリケーション内での自動回転の実装方法を解説します。
第10章、第11章、第16章では、Table View、Table View Controller、データソースを扱います。iOSのアプリケーションではとてもよく使用されるパターンです。
第12章は、UINavigationControllerでドリルダウンインターフェイスとNavigation Barの使用方法を解説します。
第13章では、カメラでの写真撮影方法と画像を表示、保存する方法を学びます。
第14章では、iPad用のUIPopoverControllerとモーダルView Controllerについて学びます。さらに、iPhoneとiPadの両方でネイティブ実行できる方法を取り扱います。
第15章では、データの保存とロードの方法、特に、NSCodingプロトコルを使ってデータをアーカイブする方法を扱います。この章ではマルチタスキングと、アクティブ、バックグラウンド、一時停止などアプリケーションの状態遷移への対応についても説明します。
第17章はCore Data入門です。データの保存とロードにNSManagedObjectContextを使う方法を解説します。
第18章、第19章では、国際化とローカリゼーション、NSUserDefaultsなどを取り扱います。
第20章では、マルチタッチ機能の追加と、タッチイベントについてさらに学びます。
第21章では、Instrumentsアプリケーションや、Xcodeスキームとスタティックアナライザについて解説します。
第22章と第23章では、レイヤとCore Animationフレームワークを扱います。
第24章では、Objective-Cの重要な特徴であるブロックとカテゴリを扱います。(ちなみに、ブロックの概念は、新しいマルチスレッドプログラミングのパラダイムであるGCD(グランドセントラルディスパッチ)を有効活用するためにも必要です。)
第25章では、Webサービスへのアクセスで使用する、NSURLConnection、NSXMLParserや、WebViewを取り扱います。
第26章では、UISplitViewControllerを解説します。
第28章では、Bonjourを使ってネットワーク上のデスクトップアプリケーションを見つけるiOSアプリケーションも作成します。
第29章では、Push Notificationを取り扱います。
そして、最後の訳者補記では、「Xcode4.2を使ったQuizアプリケーション」ということで、最新のXcodeを使用したサンプルの作り方を解説しています。
内容的には中級者向けの内容の濃い本ですが、実際に演習を行いながら進める事で、入門者の方でもiOSの全体像を理解できるのではないかと思います。
興味があるかたは、ぜひ、本屋さんで手に取ってご覧下さい。
2011-08-10
■ Programming Androidの感想
- 作者: Zigurd Mednieks,Laird Dornin,G. Blake Meike,Masumi Nakamura
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2011/07/31
- メディア: ペーパーバック
- クリック: 19回
- この商品を含むブログ (1件) を見る
Programming Androidをざっと読んだので、ちょっとした感想です。
この本の章立ては、以下のようになっています。
- Chapter 1 Your Toolkit
- Chapter 2 Java for Android
- Chapter 3 The Ingredients of an Android Application
- Chapter 4 Getting Your Application into Users’ Hands
- Chapter 5 Eclipse for Android Software Development
- Chapter 6 Effective Java for Android
- Chapter 7 Building a View
- Chapter 8 Fragments and Multiplatform Support
- Chapter 9 Drawing 2D and 3D Graphics
- Chapter 10 Handling and Persisting Data
- Chapter 11 A Framework for a Well-Behaved Application
- Chapter 12 Using Content Providers
- Chapter 13 Exploring Content Providers
- Chapter 14 Multimedia
- Chapter 15 Location and Mapping
- Chapter 16 Sensors, NFC, Speech, Gestures, and Accessibility
- Chapter 17 Communication, Identity, Sync, and Social Media
- Chapter 18 The Android Native Development Kit (NDK)
一言でいうと、中上級者向けのAndroid解説書といったところです。
以下、ちょっと気になった章です。
Chapter 2. Java for Android
Androidの本にしては珍しく、Javaの基本を解説しています。
InterfaceやAnonymous Classなど、Androidでアプリを書くときにJava初心者がつまずきやすい点をきちんと解説していることろは、とてもよいと感じます。
Capter 6. Effective Java for Android
この章は、Android開発で必要になる実践的な項目が丁寧に解説されています。
特に、AsyncTaskやThreadの解説などは、ネットワークアプリケーションを組む上で重要なポイントなので、独立した節として解説している点は好感が持ています。また、初心者本ではあまり触れられないAIDLやPercelableの解説もよいと思います。
Chapter 16 Sensors, NFC, Speech, Gestures, and Accessibility
NFCは、Android 2.3の肝となる機能であり、この章のなかでも比較的丁寧に解説されている点が良い点だと思います。だた、NFC以外の項目がかなりあっさりとしている点が少し気になります。
Chapter 16 The Android Native Development Kit (NDK)
NDKは完全に上級者向けの機能ですが、Native Activityなど必要な部分をきちんと解説してる点がよい点だと思います。このあたりの解説書は比較的少ないので、重宝しそうです。
全般的にいうと、凝ったサンプルコードをのせずに、シンプルなサンプルを、きちんと言葉で説明している本だと思います。ソースコードを実行しないでも、本を読むことで理解が進むという意味では、読み物的な技術書が好きな人向けでしょうか?
少し、もの足りない点は、Android 3.0がほとんど解説されていない点ですが、これは、執筆時期の関係でしかたがないと思います。また、項目によって解説の量のばらつきが大きいのも少し気になりました。
2011-08-06
■ Android SDK 開発クックブックのレビュー
- 作者: ジェームズ・スティール,ネルソン・トゥー,James Steele,Nelson To,柴田芳樹
- 出版社/メーカー: ピアソン桐原
- 発売日: 2011/07/26
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 26回
- この商品を含むブログ (3件) を見る
今年のはじめから翻訳のお手伝いをしていた、「Android SDK開発クックブック」がPEARSONから発売されています。
この本の特徴は、Androidの代表的な機能をサンプルプログラムを中心に解説している点です。
例えば、自分のアプリにちょっとプログレスバーを付けたりSMSの送信機能を付けたいときに、基本的な使い方のサンプルコードをみながら理解することができます。
もちろん、基本的なサンプルをそのまま使用する事もできますが、ここを手がかりに本当に自分がやりたいことを掘り下げていくことができます。たとえば、SMSを送信するには、SEND_SMSパーミッションを設定する、SmsManagerを取得する、sendTextMessageを使用して送信するということが理解できると、あとは、対応するリファレンスマニュアルを掘り下げることができます。
以下、本の目次と簡単な感想です。
第1章 Android の概要
Androidの歴史とともに、初期のAndroid搭載機器(HTC Dream/G1からSamsung Galaxy S)のCPUやRAMサイズなどのスペックが載っています。
(HTC Dream/G1の名前をみると、感慨深いものがあります。)
また、Android SDKのインストールからマーケットのアップロードまでの概要が記載されています。
第2章 アプリケーションの基本:アクティビティとインテント
Androidといえば、やはり、まず、アクティビティとインテントという定石どおりの展開です。
アクティビティのライフサイクルや、暗黙的なインテントの使い方などが解説されています。
ちょっとしたTipsとしては、「スクリーン方向の強制に載っているandroid:screenOrientation="portrait/landscape"の指定のほかに、ハードキーボードがスライドして出された場合の処理として、android:configChanges="orientation|keyboardHidden"を指定する」といった情報などでしょうか?
第3章 スレッド、サービス、レシーバ、アラート
ネットワーク関連の処理を行う場合にはさけて通れないスレッド処理、バックグラウンドで走るサービス、レシーバーを使用したアプリケーションウィジェットのレシピが載っています。
ウィジェットはアプリケーションに対してダイナミックなショートカットを作れるという点でAndroidの肝なので、ちょっと押さえておきたいところです。
第4章 ユーザインタフェースのレイアウト
一般的な開発者が苦労するユーザーインタフェースのレイアウトのレシピです。
基本的なレイアウトから、テキスト操作の方法、プログレスバーの使い方などが載っています。Tipsとしては、SeekBarのスライディングボックスの画像を指定するあたりでしょうか?
第5章 ユーザインタフェースのイベント
物理キープレイスの受け取り方法(onKeyDown/onKeyUp)やジェスチャやOpenGL ESの使い方といった、かなりマニアックな使用方法のレシピが載っています。
このあたりは、実際に動くサンプルがあるというのは、最初の一歩としてはとても貴重だと思います。
第6章 マルチメディア技法
画像イメージや音声データのハンドリング方法のレシピが載っています。
音声を録音する方法などは、普段はあまり使われない機能なので、ちょっと勉強になりました。
第7章 ハードウェア・インタフェース
カメラ、オリエンテーション、電話、Bluetoothなどのレシピが載っています。
特にBluetoothは、興味はあってもなかなか使ってみる機会がないので、出発点としては有用だと感じました。
第8章 ネットワーキング
HTTP POSTのサンプルはとてもシンプルですが、さりげなくAsyncTaskの使い方を説明していたりします。
第9章 データストレージ技法
共有プリファレンス、SQLite データベース、コンテンツ・プロバイダーのレシピが載っています。
共有プリファレンスは設定画面を作る手間をぐっと簡単にしてくれるので、覚えておいて損の無い機能だと思います。また、データの件数が多くなる場合に必要となるSQLiteの使い方も解説されています。
第10章 位置情報に基づくサービス
Android本ではお約束の位置情報とMapsの使い方です。
Tipsとしては、ジオコーディング、逆ジオコーディングの使い方のあたりでしょうか?Maps上に画像を配置するOverlayの使い方などもMapsを使いこなす上では必須の項目ですね。
第11章 高度な Android 開発
カスタムビュー、ネイティブコンポーネント、セキュリティ、プロセス間通信、バックアップ・マネージャ、アニメーションなど、かなり高度な項目が取り上げられています。
バックアップ・マネージャを使えるようになると、アプリケーションによっては、他のアプケーションとの差別化につながるかもしれません。
第12章 デバッグ
DDMS、adb、LogCatの使い方が簡単に説明されています。
TraceViewは普段あまり使わないのですが、きちんとパフォーマンスチューニングするときには活躍するツールなので、一度は使ってみておきたい機能です。
全体的な感想
この本自体は、初心者向けではなく、ある程度Androidの開発ができる開発者が、使用法をちょっと思い出すときの取っ掛かりとして有用な本だと感じています。
約300ページという分量のなかにサンプルコードが多く掲載されているため、プログラム自体の詳細な説明はありませんが、必要なポインターにたどり着くにはちょうどよい感じです。
ちなみに、著者の柴田芳樹さんは、『プログラマー”まだまだ”現役続行』などの自著の他、『プログラミング言語Java 第4版』や『Effective Java 第2版』など多くの本の翻訳も手がけています。このため、今回の翻訳では、原著者と連絡をとりながら、すでに動作しなくなっているサンプルコードの修正や、Javaのコーディングスタイルに合わせたソースコードの修正など、日本語版に向けた多くの改善が入っているようです。
2011-08-01
■ Androidの6x6cm(ロクロク)を使ってみました
リリースから2ヶ月もたってしまいましたが、Androidアプリの6x6cm(ロクロク)を使ってみました。
使ってみての第一印象は、「シンプルで楽しいカメラアプリ」です。
特徴は、撮ってすぐにエフェクトをかけて、TwitterとFacebookにアップロードできるという点です。
作者のブログにかいてあったように「ちょっとみてみて!」という気持ちをシンプルに表現できるような気がします。
やはり、楽しいのはエフェクトです。
ベランダからとった前の公園の遊具の写真に、Toyのエフェクトをかけたら箱庭のようになりました。
その他にも、いくつかのエフェクトをかけてみました。
行きつけのカフェをsepiaで
Lineでエフェクト
写真をとって、コメントを入れて、見てもらうというサイクルが楽しくなりました。
ちなみにFacebookに投稿すると以下のように表示されます。
しばらく、つかってみようと思います。
2011-03-20
■ 検索エンジンはなぜ見つけるのか
検索エンジンはなぜ見つけるのか ―知っておきたいウェブ情報検索の基礎知識
- 作者: 森大二郎
- 出版社/メーカー: 日経BP社
- 発売日: 2011/03/10
- メディア: 単行本
- 購入: 8人 クリック: 1,014回
- この商品を含むブログ (22件) を見る
「検索エンジンはなぜ見つけるのか」という本を献本していただいたので、早速読まさせていただきました。
すでに、生活の一部と化している検索エンジンの基本を、ともて身近な例を使って説明されています。
冒頭で記憶に残ったのは「検索エンジンが、実はどんなしくみで動いているのか、疑問を持つ方は少なくないと思われます」という言葉でした。
確かにそういわれるとかなり興味のある話題なのですが、すでに空気のような存在になっている検索エンジンなので、疑問を持つ事を忘れてしまっていたなぁというのが僕の感想でした。
そういった観点で読み進めてみると、この本は、検索エンジンに対する興味をたくさん刺激してくれる本です。
内容的には、以下のような構成になっています。
- 第1章 検索エンジンの目指すもの: 利用者の情報要求に対して、ウィブ上の情報資源のなかから最善の情報を見つけ出してくる
- 第2章 集める: クローラの役割と課題(分類問題、学習)
- 第3章 整理する: 「最低のコスト」で高速に検索を実行する(検索対象文書量とスループット)
- 第4章 検索する: 利用者に「最善の検索結果」を返す(スコア、パーソナライゼーション、リコメンデーション)
各章で、図書館や出雲の国の神々などの比喩を使用することで、とてもイメージしやすい形で技術の説明があります。
エンジニアという観点でみると3章のアルゴリズム的な部分はとても面白く感じましたが、今後の可能性という意味では、やはり、4章の「検索する」という部分が一番興味深いです。ウェブページのスコアが「非ゼロサムゲーム」であり「囚人のジレンマ」が発生することや、「多義語、類義語」の問題、パーソナライゼーション、リコメンデーションの課題など、こらからの技術の方向性を考えさせられる内容です。
また、この本のもう一つの魅力は脚注にあると思います。最後まで読み終わった後に脚注だけを追ってみると、また新たな興味がわいてきます。
2010-12-07
■ Android 2.3 (Gingerbread)が公開
ようやく、Android 2.3 (Gingerbread)が公開されました。
今回の機能的な追加は、いろいろなサービスやハードウェアへの対応と、ゲーム作成のためのグラフィックスやNDKのエンハンスなどがメインです。
- SIP-based VOIP(Skypeのようなインターネット機能)
- Near Field Communications (NFC)(オサイフケータイのFeliCaのような機能)
- テキストインプットの拡張(ワンタッチコピーペース選択など)
- ジャイロスコープなどのセンサーの追加
- 複数のカメラ対応(フロントカメラなど)
- UI Frameworkの拡張(オーバースクロールやマルチタッチのエンハンスなど)
- オーディオエフェクト
- ダウンロードマネージャー
- OpenGLのエンハンス
- ビデオ形式の追加( WebM)
- エクストララージスクリーン(7から10inch)の対応
- コンテントプロバイダーの拡張(アラームクロックや、メディアストアなど)
- ロケーションマネージャー(クライテリアの拡張)
- ストレージ(OBB :Opaque Binary Blob対応)
- Dalvikのエンハンス(コンカレントGCやJITなど)
- I18Nの拡張(ロケールの追加など)
全般的には、Gingerbread対応のハードウェアや、サービス(VIOPやNFCなど)が市場に出てきてから威力を発揮する機能が多いように感じます。
今回のアップデートでは、クストララージスクリーンの宣言はあるものの、フレームワーク的にはタブレットの対応は見送られ、このあとの、Honeycombでの対応となるようです。
今回、開発関連の機能に関しても、数多くの拡張が行われています。気になるのは、新しいUIビルダーです。見た目は、それほどドラスティックには変更されていないようですが、細かい点で、使いやすくなっているようです。
- 新しいUIビルダー (Eclipse Plugin)
- HierarchyViewerのエンハンス
- Debugビルドの簡略化(<application>に、android:debuggableを指定する必要がなくなった。)
- パフォーマンスチューニング用にStrictModeが追加
- ProGuardのサポート
- NDKで、Activityのライフサイクルが扱えるようになった
- monkeyrunnerの追加
- adbの場所が変わった。<SDK>/tools/adbから <SDK>/platform-tools/adbになった。PATH環境変数の変更が必要
- Dev Guideに、「Testing」の項目が追加 (前からあったかも、、、)
- Dev Guideに、「Web Applications」の項目が追加(前からあったかも、、、)
ちなにみ、毎回わかりにくいバージョン番号ですが、今回、ADTのバージョンが0.9から、8.0へと変更されています。ちょっと、焼け石に水的な気もしますが、普段はあまり気にならないので、まぁ、よしとしましょう。
ちなみ、今回のバージョン一覧です。
Android 2.3 Platform
2010-11-27
■ ユニークなAndroid本2冊
- 作者: ウラジーミル・シルバ,安生真,長尾高弘
- 出版社/メーカー: 日経BP社
- 発売日: 2010/11/25
- メディア: 単行本
- 購入: 2人 クリック: 206回
- この商品を含むブログ (6件) を見る
AndroidアプリUIデザイン&プログラミング アイデア固めからユーザーフィードバック分析まで
- 作者: 渡嘉敷守
- 出版社/メーカー: 日経BP社
- 発売日: 2010/12/02
- メディア: 単行本
- 購入: 9人 クリック: 504回
- この商品を含むブログ (20件) を見る
一冊は、「プロフェッショナルAndroidゲームプログラミング」です。
この本は、Androidの基本言語であるJavaと、それを補うC言語のネイティブライブラリを組み合わせたハイブリッドアプリケーションの作成ガイドです。
入門本ではなかなか取り扱えない、JNI(Java Native Interface)、Java OpenGLだけではなく、ネイティブコードによるOpen GLといった、かなり現実的な解説まで踏み込んでいます。
もう一冊は、「Android アプリUIデザイン& プログラミング」です。
日本人で唯一のADP1のファイナリストの渡嘉敷さんが、ご自身のアプリ開発の経験を通して、アプリの開発の全体像を解説しています。
この本がユニークな点は、プログラミングではなく、アプリ開発のプロセスを扱っているという点です。具体的には、アイデアの探し方から、実現性の確認、デザイン、設計、実装、マーケットへのリリース、フィードバックの分析までを扱っています。
特に、デザインのパートには、多くのパートでその重要性に触れられています。僕を含めて、多くのプログラマーが、デザインに対して不安を感じていると思うので、とても有用な本だと感じました。
2冊の本を読んで感じたのは、最近、アプリケーションの価値の中で、特にユーザーインタフェースの比重が高くなってきているということです。
そして、優れたユーザーインタフェースは、単純なデザインフェーズで作られるものではなく、アプリケーション開発全体のプロセスを通して作られるものだということに、気がつかされました。
最近、Androidの開発者を見ていて気がつかされるのは、このような開発プロセスが、一人、もしくは、数人の開発者によって行われているという点です。これは、一昔前には、企画、開発、営業といった企業で行われていた開発プロセスです。それが、たった一人の開発者の中で行われ、世界中のユーザーに価値を提供できる可能性があるという所に、Androidの価値があるような気がします。





