【NT-2】やさしい Android: ユーザフレンドリかつデベロッパーフレンドリーな Android アプリケーション開発手法
宮川 大輔
デベロッパー向け発表
今回の講演での優しいとはFriendly。(決してEasyではない)
誰にとってやさしいのか?
→ユーザ&開発者
ユーザにとってやさしいとは?
クラッシュ・フリーズはNG。思った通りの動作
互換性
多くのハードウェアでアプリケーションを動くように
アンドロイドはオープンソース。
Androidに手を加える例としてはレイヤー別に、
- Appレイヤ:必要な機能を絞り込む
- Frameworkレイヤ:サイズを小さくする、カーネルのコンパクト化など。
変化するプラットフォーム
全デバイスでの検証は難しい。日本では販売されていない未知のデバイスなども。
より多くのユーザに使ってもらうために開発の軸が必要=「互換性」
AndroidMarketを基準とする(アイディア)
AndroidMarketの互換性さえ意識すればよい、互換性のないデバイスのサポートは難しい。
公開APIを使う
公開SDKで規定されたAPIを使う(SDKにないAPIの使用は非推奨)
JavaとしてPublicなAPIは、非公開APIです。なるべく使わないで。
そもそもデバイス上に存在しないかも。将来、サポート対象から外れてしまう可能性
API Versionの管理
MinSDKVersion 3(1.5),TargetSDKVersion 4(1.6)が良いのでは?
複数解像度対応
各解像度ごとにディレクトリを作ってデータを管理 Drawableほにゃらら。
XMLでのレイアウト
レイアウトをXMLで記述するとAndroid側が自動的にサイズを決定してくれる
手でPixel指定するのはやめる。(レイアウトが崩れる)
RelativeLayout
ビュー間の位置関係でレイアウトを指定できる
国際化対応
インターナショナライゼーション。右から左へ書く言語圏、10 out of 1000
テンプレートに %s out of %s とすると 10件中1000件 あれ?
単純な置換ではないため、非常に難しい。
本来の目標
>
単一言語対応 << 越えられない壁 << 第2言語<
文字列をJavaに埋め込むのはやめましょう
values/strings/xml + values-ja/strings.xml
文字列が読めることが実際に使ってもらえる第一歩
日本人にフレンドリー
unicode:emojiに画像を被せてみる
spannable/span:文字に何かを被せる処理
ImageSpan(文字列を画像に)、文字を画像に変換することが可能。
バグをすばやく見つけるには。
「バグのように見えたらそれはバグです」
UnitTestの作り方、使い方
Log.dでロギング
adb logcat
adb bugreportが便利。
実行するとファイルが出来上がるので、メールで添付して送信
バグ「に見える」挙動を減らす
- 「バグのように見えるならそれはバグです」(繰り返し)
不親切なUIを改善する
例:画面が真っ黒→「フリーズしているの?」
ユーザーがあれ?と思うところなら、その動作が悪いとは言えないが、改善する余地はある。
例:画面が真っ黒の場合は、次にしてほしいことを表示、や新規文章の作成をするなど。
ユーザーからフィードバックを得る
操作方法に気づくまで、時間がかかるようならUIが不親切
やさしいAndroid
フレンドリとはEasyではない。しかし、求めるに値するもの。