Hatena::ブログ(Diary)

24/7 twenty-four seven Twitter

東日本大震災緊急支援募金募集中。国際NGOワールド・ビジョン・ジャパン

Bloglinesで閲読登録 ADD TO Hatena::RSS Subscribe with livedoor Reader Add to Google

mail address

Follow me on twitter.

iPhone アプリケーション

Hatena touch LDR touch TV Listings LCD Clock MyWebClip MyWebClip LITE  Japan Subway Route Map こころくろっく 英辞郎 on the WEB for iPhone(アルク)
i-Radio くるりんぱ性格診断 英辞郎検索ランキング(アルク) kotobank - コトバンク miil

iPad アプリケーション

LCD Clock HD 「超」整理手帳 for the iPad

共著

2011-11-20

Titanium mobile の KeyChain モジュール TiKeyChainStore を書きました。【添削希望】

UICKeyChainStore を応用して Titanium mobile の KeyChain モジュール TiKeyChainStore を書きました。

kishikawakatsumi/TiKeyChainStore ? GitHub


下記のように使います。

var store = tikeychainstore.createKeychainStore({
  service: 'com.kishikawakatsumi.ti' // optional
});

store.setKeyChainItem ({
  key: 'userame',
  value: 'kishikawakatsumi@mac.com'
});

store.setKeyChainItem ({
  key: 'password',
  value: 'password1234'
});

store.synchronize;

Ti.API.info(store.description); // debug print

Titanium のモジュールは初めて書いたので、詳しい方に添削してもらえるとうれしいです。


関連リンク

KeyChain のデータを操作するラッパークラス UICKeyChainStore を書きました。

アップルのサンプルコード GenericKeychain に含まれる KeyChain のラッパー KeychainItemWrapper.m の実装が微妙だったので書きました。

kishikawakatsumi/UICKeyChainStore ? GitHub


KeychainItemWrapper クラスには下記で報告されている問題や、

A-Liaison BLOG: KeychainItemWrapper を改造して、複数の Keychain Item に同時にアクセス出来るようにしてみた


下記の箇所でメモリーリークする問題があったり、使い勝手もよくないので、そのまま使うのはおすすめしません。

- (void)resetKeychainItem
{
	OSStatus junk = noErr;
    if (!keychainItemData) 
    {
        self.keychainItemData = [[NSMutableDictionary alloc] init]; // <= メモリーリークする!

というわけで、あたらしく書いて見ました。

使い方

  1. リンクするフレームワークに Security.framework を追加します。
  2. UICKeyChainStore.h と UICKeyChainStore.m をプロジェクトに追加します。

クラスメソッドを使って値を操作する

便利メソッドとしてクラスメソッドを用意してあります。キーと値を指定するだけで簡単に使えます。

サービス名を指定しない場合は自動的に Bundle ID がサービス名になります。


キーと値を指定して値を追加・更新する。

[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username"];
[UICKeyChainStore setString:@"password1234" forKey:@"password"];

//=> ["username" = "kishikawakatsumi", "password" = "password1234"]

サービス名を明示的に指定することもできます。

[UICKeyChainStore setString:@"kishikawakatsumi" forKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore setString:@"password1234" forKey:@"password" service:@"com.kishikawakatsumi"];

値をキーチェーンから削除するにはキーを指定します。

[UICKeyChainStore removeItemForKey:@"username"];
[UICKeyChainStore removeItemForKey:@"password"];

サービス名を指定していた場合は、サービス名も含めて指定します。

[UICKeyChainStore removeItemForKey:@"username" service:@"com.kishikawakatsumi"];
[UICKeyChainStore removeItemForKey:@"password" service:@"com.kishikawakatsumi"];

KeyChainStore オブジェクトを使って値を操作する

複数の項目を追加・更新する場合は UICKeyChainStore のインスタンスを作成するほうが便利です。

NSUserDefaults のような使い勝手になります。


デフォルトのサービス名 (Bundle ID) の KeyChainStore を作成した場合。

UICKeyChainStore *store = [UICKeyChainStore keyChain];

[store setString:@"kishikawakatsumi@mac.com" forKey:@"username"];
[store setString:@"password1234" forKey:@"password"];

[store synchronize]; // Write to keychain.

サービス名を指定して KeyChainStore を作成した場合。。

UICKeyChainStore *store = [UICKeyChainStore keyChainStoreWithService:@"com.kishikawakatsumi"];

[store removeItemForKey:@"username"];
[store removeItemForKey:@"password"];

[store synchronize]; // Write to keychain.

miil 1.0.1 がリリースされました。

miil

miil miil

miil.me


miil 1.0.1 がリリースされました。


バージョン 1.0.1 の変更点

機能改善

  • ユーザー一覧画面のフォローボタンのタップ領域を拡大し、押しやすくしました。
  • Twitterから友だちを検索する際のUIを改善しました。
  • 現在地以外の位置情報を投稿できるようになりました。
  • お店を新しく登録する際の手順を改善しました。

不具合の修正

  • HOTタイムラインの並び順が更新されない問題を修正しました。
  • フォローボタンが正しく動かない問題を修正しました。
  • ユーザー登録できないことがある問題を修正しました。
  • お店の情報が正しく追加されないことがある問題を修正しました。
  • iPod touchで電話をかける画面が表示されてしまう問題を修正しました。
  • 「お知らせ」を表示する際にクラッシュすることがある問題を修正しました。
  • 「続きを読みこむ…」を押した際にクラッシュすることがある問題を修正しました。
  • 新着の「お知らせ」バッジが表示されないことがある問題を修正しました。

関連リンク


東日本大震災緊急支援募金募集中。国際NGOワールド・ビジョン・ジャパン

miil 1.0.0 がリリースされました。

miil

miil miil

miil.me


私がプログラムを担当しました、miil 1.0.0 がリリースされました。


食べものの写真を通して「おいしい!」を共有するアプリケーションです。


写真を撮って投稿したり、ほかの人の写真をみたり、

f:id:KishikawaKatsumi:20111120151225j:image:w320


ほかの人の写真をみたり、感想を書き込んだり、

f:id:KishikawaKatsumi:20111120151226j:image:w320


食べたい写真があったら、お店を調べたりできます。

f:id:KishikawaKatsumi:20111120151227j:image:w320


眺めているだけでも楽しい気分になるアプリケーションですので、ぜひダウンロードしてみてください。

関連リンク


東日本大震災緊急支援募金募集中。国際NGOワールド・ビジョン・ジャパン