2012年9月13日木曜日

[iPhone] iPhone5発表


ついに正式発表されましたな。

個人的にはNFCにも対応してないし、目立った新機能が無いので肩すかし食らった気分だったのですが

ついにテザリング解禁か?という記事もあったり、よく見たら4Sより30gも軽くなってたり、ついでにiPod Touchの新型に思ったより食指が動いたり

さすがAppleだなぁという感想です。

4Sからの変更点は以下

ディスプレイ:4インチ、画面比率16:9、1136 x 640px(326ppi)
CPU:Apple A6
Wifi:Wi-Fi (IEEE 802.11a/n: 5GHz対応)
付属品:nanoSIM、Lightningコネクタ、Earpods(新型イヤホン)
カメラ: 背面:8メガピクセルiSightカメラ、ビデオ撮影中の写真撮影、パノラマ
リアカメラ:正面:1.2メガピクセルFaceTime HDカメラ、720pHD動画撮影対応(30fpsまで)
サイズ:123.8×58.6×7.6mm(4.87×2.31×0.30in)
重量:112g




au iPhone5に関するお知らせ

http://www.kddi.com/corporate/news_release/2012/0913a/index.html

SoftBank 「iPhone 5」について

http://www.softbankmobile.co.jp/ja/news/press/2012/20120913_01/

2012年9月7日金曜日

[android] SQLiteOpenHelperをシングルトンにする

ActivityとWidgetを併用するようなアプリ

もしくはActivityの裏でDBのデータを頻繁に更新するような、Serviceを動かすアプリ



このようなアプリを作る場合、SQLiteへのアクセスが頻発し、トランザクションをかますような

処理をした時に、参照系のSQLがエラーでアプリが落ちる。という事があります。


このような場合、SQLiteOpenHelperを継承したクラスをシングルトンにすることで対応できます。


class DatabaseHelper extends SQLiteOpenHelper {
    // 唯一のクラスインスタンス
    private static DatabaseHelper instance = null;
    
    /**
     * コンストラクタをprivateにすることで、外部からはインスタンス化できないようにする
     */
    @Override
    private DatabaseHelper(Context context) {
        super(context, "DBNAME", null, 1);
    }

    /**
     * このstaticメソッドからインスタンスを得る
     * 多数のクラスから参照されても、常にインスタンスは1つになる
     */
    public static synchronized DatabaseHelper getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseHelper(context);
        }
        return instance;
    }

    @Override
  public void onCreate(SQLiteDatabase db) {
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  }
}

このクラスは他の常用クラスとまとめてjarにしてもいいかも。

2012年9月3日月曜日