ブログ

  • Androidのテストプロジェクト – JUnit test

    Androidのテストプロジェクトを試していたところコンストラクタのところで警告が出ました。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super("package.name.hogehoge", MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    
    

    Referenceを調べてみたところ、パッケージ名を指定するコンストラクタがdeprecatedになっていました。
    ActivityInstrumentationTestCase2
    ということで、下記のように修正。

    public class MainActivityTest extends ActivityInstrumentationTestCase2 {
    
    	public MainActivityTest() {
    		super(MainActivity.class);
    		// TODO Auto-generated constructor stub
    	}
    

    以上です。

  • Chrome Extension の セキュリティポリシー(CSP)

    GoogleのChromeウェブストアチームから Chrome extension に関するアップデートのお知らせが届いていました。

    詳細はこちら Manifest Version

    記事によると、Chrome機能拡張を作る際はマニフェストに、
    'manifest_version': 2:
    と書きなさい、とのことです。
    そして、これより前の Manifest version 1 は、今後リリース予定のChromeで動作しなくなります。
    また、スケジュールに沿ってウェブストアのウォールやカテゴリからも削除されます。

    このバージョン1と2の違いについて、上記ページにまとめられていて、
    Browser action や Page action の各種プロパティが変更されているようです。
    それと、セキュリティポリシー(CSP)の導入に伴って、HTMLとJSの分離が必要です。

    CSPの詳しい記事はこちら Content Security Policy (CSP)

    例えば “Inline JavaScript will not be executed” について。

    <button onclick="clickHandler(this)">

    HTML内に上記の記述があっても、デフォルトのポリシーでは動作しません。

    この様な場合、HTML内にはボタンを配置しておいて、

    <button>Click for awesomeness!</button>

    ボタンクリックの処理についてはJS側でイベントリスナを登録します。

    document.addEventListener('DOMContentLoaded', function () {
      document.querySelector('button').addEventListener('click', clickHandler);
    });

    それと “Only local script and and object resources are loaded” の部分。
    外部サイトのスクリプトを参照している場合は、デフォルトのポリシーのままでは動作しないので、

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>

    パッケージ内に組み込む必要があります。

    <script src="jquery.min.js"></script>

    あるいは “Relaxing the default policy” にあるようにCSPの設定を緩めるなど。
    リリース済みパッケージのメンテナンスや今後のリリースの参考まで。

  • Lintチェックのエラーと旧バージョンのサポート

    以下、自分用の備忘録として
    Lint API Check
    の記事を読みながら簡単にまとめたものです。

    Androidアプリ開発において、API 4(Android 1.6) までサポートする際に、ターゲットのビルドバージョンによって呼び出すAPIを切り替えたい場合があります。
    しかし、マニフェストが、

    <uses-sdk android:minSdkVersion="4" />

    となっているので、API 4では対応していないAPIを呼び出すところで次のようなLintチェックのエラーになってしまいます。

    Call requires API level 11 (current min is 4):

    そのような場合に、@TargetApi というアノテーション(annotation)をつけることで回避できます。

    @TargetApi(11)
    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.hogehoge, target);
        }
    
  • 本の紹介 – リーダブルコード

    リーダブルコード – より良いコードを書くためのシンプルで実践的なテクニック
    (オライリー・ジャパン)

  • Androidのデバッグでソースが読めない – eclipse

    Androidのデバッグでソースが読めない – eclipse

    Androidのアプリ開発において、eclipseでステップ実行しようとしてソースが開けない場合。
    (Source not found となってしまう)

    上記の [Attach source] をクリックしてソースを置いているフォルダのパスを指定します。
    例えば、次のようにします。

    で、そうなるまえにソースのパスをセットしておく方法。

    [Project] -> [Properties] を開きます。

    次に [Java Build Path] -> [Libraries] を開いてターゲットの android.jar を展開します。

    そして [Source attachment] が (None) になっていれば、[Edit…]をクリックして先ほどと同様にソースのフォルダを設定します。

    あるいは、Package Explorerからターゲットの android.jar を右クリックで Build Path を設定することができます。

  • jQueryの今後のリリースについて

    jQueryの今後のリリースについて

    本日の(Twitterの)ホットな話題。

    来年2013年の1.9および2.0のリリースに向けて、ブラウザのサポート状況がアナウンスされています。

    BLOG » JQUERY CORE: VERSION 1.9 AND BEYOND

    • jQuery 1.9 (early 2013)
      IE 6/7/8 は、今までどおりサポートされる予定。
    • jQuery 2.0 (early 2013, not long after 1.9)
      IE 6/7/8 のサポートは削除されます。

    なので、jQuery 2.0を使いたいけどこれまでどおり従来のブラウザにも対応したい場合は、
    次のようなスクリプトで対応できるとのことです。

    <!–[if lt IE 9]>
    <script src=”jquery-1.9.0.js”></script>
    <![endif]–>
    <!–[if gte IE 9]><!–>
    <script src=”jquery-2.0.0.js”></script>
    <!–<![endif]–>

    ところでjQueryで何ができるの…?
    という場合の各種エフェクトはこちら。
    Effects – jQuery API

  • 短期間のインターネット回線契約について

    例えば、
    1ヶ月間だけ1台もしくは複数台のパソコンでインターネットが利用できる環境を作りたい場合、
    について調べてみました。(2012/06/27時点)

    • UQ WiMAXさんのサービス。
      1日単位の UQ 1 Day というサービスもありますが、
      1ヶ月の利用となると割高なので、
      月額固定の UQ Flat(ユーキューフラット)がよさそうです。
      30日を超えて利用する場合は日割りで計算してもらえます。

      必要な費用は、登録料と月額費用。それとWi-Fiルータ。
      Wi-Fiルータは購入(買取)になります。
      パソコン1台で利用する場合はデータ通信カードの選択肢もあります。

    • イー・モバイルさんのサービス
      こちらには「30日定額プラン」とさらに高速通信が可能な「30日定額プランEMOBILE G4」というサービスがありました。
      データ通信端末は対応する機種を自前で調達して持ち込みが可能とのこと。

    固定電話(光回線)やケーブルテレビの回線だと開通までに日数がかかったり、
    回線とは別にプロバイダ契約が必要だったり、
    さらに、短期の利用だと解約金が発生したりしますので、
    状況に応じて、このようなモバイル系のデータ通信サービスを活用するのもよさそうですね。

  • アジャイルサムライ読書会 – インセプションデッキ

    本日の読書会のふり返り。

    「第4章 全体像を捉える」を読みつつワークショップ形式で行いました。
    この章では3章で説明のあったインセプションデッキをひとつずつ理解して具体的に作成していくことを目的としています。
    ちなみに、インセプションデッキとはプロジェクトの全体像が把握できるように10個の設問を作成し、それぞれを1枚のカード(スライド資料)にするものです。これからスタートするプロジェクトにおいてチームおよびステークホルダで認識をそろえることを目的とします。また、プロジェクトの進行状況によっては改訂する必要もあります。

    1. 我われはなぜここにいるのか?
    2. エレベーターピッチを作る
    3. パッケージデザインを作る
    4. やらないことリストを作る
    5. 「ご近所さん」を探せ
    6. 解決案を描く
    7. 夜も眠れなくなるような問題は何だろう?
    8. 期間を見極める
    9. 何を諦めるのかはっきりさせる
    10. 何がどれだけ必要なのか

    で、本日は仮のプロジェクトを想定して「我われはなぜここにいるのか?」と「エレベーターピッチを作る」について学びました。

    • 「我われはなぜここにいるのか?」
      ここで思ったのは、例えば業務系システムを開発する場合、開発側の人は現場(いわゆるエンドユーザの作業場所、環境)に出向くケースが少なくて、現場に行く人は限られていたり、あるいはステークホルダ側の担当者も特定の人に固定されていて、現場を知らないまま進行していくケースが多いのではないかということです。本に書いているトヨタの設計事例や請求書発行の事例など、チームのメンバーがそれぞれ現場に行って実際に見ることで何が必要かということをしっかりと把握できると思います。そして、それを体験して終わり、ではなくて、1枚のカードに簡潔にまとめておくことが重要です。
    • 「エレベーターピッチを作る」
      ここでは、上の「..なぜここ..」を踏まえてプロジェクトの本質を簡潔に明確に表現します。
      例えば、営業的な立場の人は、顧客にプレゼンテーションを行う場合に、このエレベーターピッチ的な資料を作るケースが多いと思いますが、開発側の人は要件とか機能定義から始まってしまうケースが多いのではないでしょうか。さらには、技術的な専門用語を書き並べたものとか。
      どうしても普段の仕事柄そのようになりがちですが、ここではそのような専門用語を排除して特に業務やシステムに関する知識がない人にとっても明確にその必要性が伝わるようにまとめる必要があります。

    時間の都合もあって、それぞれを仕上げるところまではできませんでしたが、今回勉強会に参加した皆さんは普段のお仕事の中でそれぞれ問題意識を高く持っていらっしゃるようで、いろいろと意見交換ができて充実した内容になりました。

    私自身、これまではざっと本を読んで行く程度でしたが、次回からはもう少し下調べをしていくこと、それと与太話で脱線をしないようにしたいと思います。

  • Inkscapeの練習

    以前の記事でも紹介をしたのですが、Androidアプリのアイコンを作る際に少し作り方を変えてみようと思って Inkscape を使い始めました。何かのセミナーでこのツールを教わったような…

    で、あらためて使い方を勉強してみようと調べたところ
    Inkscaper というサイトが見つかりました。

    ということで、簡単なサンプル。

  • Facebookアプリ – WiFiで接続できない場合【その3】

    Facebookアプリ(for Android)がWiFiでなかなかつながらない件について追加の記事です。

    先週の7日に1.9.5がリリースされ、その数日前あたりから特に問題なくつながるようになりました。
    これまでにも同じような状況が何度かありましたので、例えばFacebookの公式アプリで問題が発生した場合はブラウザやSeesmicなど他の利用手段を用意しておいて、次のバージョンアップまでしばらく様子をみるのが良いのかも知れません。

    それと、3GからWiFiに切り替えた直後や電波の状態でWiFi接続が安定していないと
    「接続が切れました」
    という表示になって、そこからなかなかつながらなくなる場合があります。
    そのようなときに、WiFi Fixerを利用すると改善されるかも知れません。

    ネットワーク環境や機種によると思いますが、参考まで。