Lionaroid

Lionasの技術ブログ

Android Wear - UI概要

Android Wearが発表されましたね。早速、勉強ついでに UI Overview を翻訳してみました。

概要

新しいフォームファクターは、新しいUIモデルに相当します。高レベルでは、Android Wear UI は、サジェスト(Suggest)とデマンド(Demand)のコア機能に集中した2つのメインスペースで構成されます。アプリーケーションはこれらスペースの両方に重要な役割を持つでしょう。

サジェスト(Suggest): コンテキストストリーム

コンテキストストリームはカードの縦のリストで、それぞれが便利な、または、タイムリーな情報の部品として表示されます。
Android携帯電話とタブレット上のGoogle Nowのように、ユーザは、重要な更新が簡潔に分かりやすく書かれたカードから、他のカードへ遷移するために縦にスワイプします。
一度に画面に表示されるカードは1つのみで、背景画像は追加のビジュアルな情報を提供するのに役立ちます。
アプリケーションは、最も有用な時にカードを生成し、ストリーム中に挿入することができます。

ストリーム中のカードは単一の通知よりも多いです。水平方向にスワイプすることで追加のページを表示することができます。
さらに水平方向にスワイプすると、タップ可能なボタンが現れるかもしれません。これは通知に対して何かしらのアクションをユーザに許すことを意味します。
カードは左から右へスワイプすることで、次回に情報が表示されるまでストリームから除去することができます。
エミュレータでは、画面の上部にマウスオーバーすると、端末の上部の青いバーが表示され、クリックするとホームに戻ることができます。

デマンド(Demand): キューカード

コンテキストストリームでユーザが何をしたいか予想できないようなケースにおいて、キューカードはユーザが端末と話すことを許します。
キューカードは、"OK Google" または ホーム画面の "g" アイコンをタップすることで開くことができます。
キューカードを上方向にスワイプするとアクションのリストが表示され、それらはタップすることもできます。

アクションリストは、音声アクションの Android インテントを含みます。
来たる Android Wear SDK では、開発者のアプリケーションと、ユーザがボイスコマンドを使ってアクションを実行するインテントをマッチさせることが可能になります。
単一の音声インテントによって複数のアプリケーションが登録されるかもしれません。その際、ユーザはいずれのアプリケーションを使うかを目的に応じて選択するでしょう。

Androidテスト本を出版します

久々のブログ更新です。
本年 5/25にオライリー社から「O'Reilly Japan - 入門 Androidアプリケーションテスト入門Androidアプリケーションテスト」という本を出版します。
内容は、テストの設計方法の概要とAndroidのテスティングフレームワークの基礎です。
(※執筆から出版まで色々とあって、随分時間がかかってしまいました。。)


あくまでも入門書なので、新入社員の皆さんやテスト設計の方法を体系的に学んだことのない方に、おすすめします。逆に実務でTDDを実践しているような人には内容が簡単すぎるかも知れませんのであしからず。。

O'Reilly Japan - 入門 Androidアプリケーションテスト


個人的には、"TOYOTA86を10倍楽しむ本" とか書いてみたいんですけどねw
興味のある出版社さんいないかなー?

86峠セレクション2012アプリを公開しました

先日、TOYOTA 86を購入しました。納車待ちの期間があまりに長いので、TOYOTA 86サイトの86 SOCIETYで公開されている「86峠セレクション2012」の全ての峠を、簡単にカーナビに目的地として設定できる Android アプリを作りました。

元々は個人的なアプリとして作っていたのですが、もしかしたら他の86ユーザーにも需要があるかも?と思って公開しました。



アプリのダウンロードはこちら。アプリの説明はGoogle Playの説明文から。

TOYOTA 86 の 86 SOCIETYで公開されている "86峠セレクション"全120峠をNaviCon対応カーナビの「目的地」に簡単に設定することができるアプリです。お気に入りの峠を見つけて、実際に峠に出かけてみましょう!

トヨタ純正カーナビ(2012年版)は、NaviCon対応アプリに対応しています。
※ 本アプリはデンソー社製「NaviCon カーナビ連携」アプリと連携するため、本アプリ以外にNaviConアプリのインストールが別途必要です。アプリがインストールされていない場合は、Google Playのダウンロードページが表示されますので、NaviConアプリをダウンロードの上、ご利用下さい。
※ 本アプリは86オーナーが個人的に作成したアプリであり、トヨタ自動車並びに関連会社とは一切関係ございません。

ProGuardに関するまとめ

ADT17で変更になったProGuard(プログラム/リソースの圧縮・最適化・難読化ツール)について会社ブログの方に書いたついでに、過去のProGuardについて記事をまとめてみた。いずれも自分が書いたエントリです。

AndroidでProGuardを使わないと色々と損をすることがあるので、まだご存知でない方は一読することをオススメします。

AndroidでSDにアプリを移動した際に本体側の必要領域がゼロにならない理由

Android 2.2からアプリケーションを「携帯端末」から「SDカード」に移せるようになりました。これは携帯端末(本体)側のアプリの保存領域が限られているためで、インストールしたアプリをSDカードに移すことによって、本体側の空き容量を確保することができるようになるからです。

単純に考えると、アプリ移動後は本体側のアプリ保存領域はゼロになっても良いようにも思えますが、実際はゼロにはなりません。SDカード側に本来のアプリサイズの領域が必要な上に、本体側にも数百Kバイト〜数Mバイトの領域が必要になります。

この本体側の領域(正確には/data/以下)には「dalvik-cache」と呼ばれる、起動・実行・シャットダウンなどアプリの動作に必要なキャッシュファイルが保存されています。
dalvik-cacheは、端末の起動時にインストール済みアプリとフレームワークの情報を収集し、書き込み可能なファイルとして生成され最適化されたアプリのバイトコードを格納することで、アプリのスムーズな動作を実現しています。dalvik-cacheはAPKファイルに含まれるclass.dexからDalvikによってビルドされます。

dalvik-cacheのサイズを小さくする(=本体側の必要容量を小さくする)には、

  • プログラムのサイズを小さくする
  • Proguardでバイトコードを最適化する(難読化の他にも最適化機能があります)

などが有効です。

私が試した限りでは、proguardを適用した後にSDカードへ移す処理を行ったところ、本体側で13Mバイト程度消費していたアプリが、移動後は700Kバイト程度まで抑えられる結果となりました。

※dalvik-cacheの詳しい解説は、こちらのサイトが参考になるかもしれません。
※proguardの詳細はこちら

JSTQB 認定テスト技術者試験(Foundation)に合格しました

以前から受けたいと思っていた「JSTQB認定テスト技術者資格 第11回 Foundation Level試験」に合格しました。ソフトウェア開発者の中でも、意外とテスト技術者の資格があること自体知らない人も多いのですが、この試験は国際的なソフトウェアテスト試験「ISTQB」に準拠した国際資格です。(感覚的にLinuxの資格試験に近いかな?)

合格者番号を眺めていると、結構歯抜けな感じ。例年と変わらず合格率は50%前後なのだろうか。

今回は初めてのAdvancedの試験があったこともあり、合格発表自体が例年より2週間ほど遅かったです。

次回はAdvancedを・・・と言いたいところですが、公私に渡って忙しすぎで無理そうな予感。

ちなみにISTQBでは、「Expertレベルの試験」の検討も既に始まっているようです。

ISTQB の Expert レベル概要

仕事柄、プロジェクトマネジメントの一環でテストのマネジメントもやることがあるので、時々 ISTQB (International Software Testing Qualifications Board) のサイトを覗いたりしています。偶然、Newsのページに Expert レベルの Introduction and overview のプレゼン資料がありましたので、興味のある所だけ訳してみました。

ISTQB とは?

念のため解説すると、ISTQBとはソフトウェアテストのプロフェッショナルを認定する資格を設けることで、ソフトウェアテスト技術者の育成を図ることを目的として組織された団体です。同一の名前を試験名として用いられています。各国のソフトウェアテスト技術資格認定運営組織が加盟しており、日本からはJSTQBが加盟しています。

Expert レベル試験の区分

  1. テストマネジメント(Test Management)
  2. テストプロセスの改善(Improving the Test Process)
  3. テストの自動化(Test Automation)
  4. セキュリティテスト(Security Testing)
  5. その他

1,2 は Advanced レベルの TestManager が、3,4 は Advanced レベル の Technical Test Analyst がそれぞれ前提となっているようです。例えばテストマネジメントを極めたことを証明するために本試験を受験する場合、Advanced/TestManager 試験に合格している必要があります。

Expert レベル試験の概要

Expertレベルの資格スキームは、ステークホルダーからの期待と認識の上で、本当の意味での"エキスパート"として見られなければなりません。そのため、資格は多岐選択式セクションと記述式の小論文セクションによって構成されています。75% 以上の正答で合格となります。

  • 多岐選択式セクション
    • 試験時間:1時間
    • 問題数:20問
    • 学習カバレッジ:K2, K3, K4(Advanced レベルと同等)
  • 小論文セクション
    • 試験時間:読解30分、解答2時間(非ネイティブは+45分)
    • 問題数:5問中4問を解答
    • 学習カバレッジ:最も高いレベル K5, K6

資格は無期限ではない!

Expert レベルの資格の有効期間は5年です。資格更新は以下の2つのうちのどちらかによって行う必要があります。

  1. 5年以内に再試験を受け、合格する
  2. Certification Extension Credits(CEC) を 200 ポイント貯める。CEC は様々な方法でカウントすることができます。例えば、
    • プロのテスト活動を行う
    • 関連するトレーニングコースを受ける
    • テストカンファレンスに出席する
    • テストカンファレンスで発表する
    • テスト記事やテスト本を執筆する
    • Working Group(NG, SIGIST, ISTQB) で活動する
  3. 上記を証明する証拠を試験主催者に提出しなければなりません。
  4. ISTQB によって資格延長プログラムが提供されます。

その他

その他、トレーニングコースやシラバスの策定状況などがプレゼン資料には記載されています。興味のある方は一度ご覧になってはいかがでしょうか。