タグ

2012年3月2日のブックマーク (30件)

  • Androidで安全にパスワードを保存する(1)|TechRacho by BPS株式会社

    Webシステムを構築する際、普通はパスワードをハッシュ化して保存するので、生パスワードを保存する人はあまりいないと思います。 (流出したら大問題ですね!) しかしWebサービスのクライアントを開発する際は、パスワードを送信する必要があるので、「パスワードを保存する」機能を実装するには何らかの形で復元できるように保存する必要があります。 もちろん、OAuthなどでトークンを保存するだけにすれば良いのですが、パスワード認証にしか対応していないサービスも多いので、避けて通れません。 AndroidWebサービスクライアントを開発する場合を想定して、安全なパスワードの保存について考えてみましょう。 データの保存 まずは、単純なデータの保存を考えます。 Androidでアプリが終了してもデータを保存しておくには、SharedPreference、SQLite、独自ファイルなどの方式が考えられます。

    Androidで安全にパスワードを保存する(1)|TechRacho by BPS株式会社
    watanata2000
    watanata2000 2012/03/02
    パスワード 保存 安全
  • iTunesにバックアップしたiPhoneのデータを漁る方法

    iPhoneユーザーなら多分何度も行っている「iPhoneiTunes(パソコン)の同期」。これによりiPhoneの中身がバックアップされるので、いざと言う時に「復元」できるわけです。

    iTunesにバックアップしたiPhoneのデータを漁る方法
    watanata2000
    watanata2000 2012/03/02
    iTunes にバックアップされたデータの中身を見る方法? バックアップ先 ~/ライブラリ/Application Support/MobileSync/Backup/ ★★★
  • iPhone/iPadアプリのローカライズ (i18n, l10n) - Awaresoft

    2011年 1月 31日(月曜日) 10:58 iPhone/iPadアプリのローカライズ (i18n, l10n) 地域化(ローカライゼーション, Localization, l10n)とか国際化(インターナショナライゼーション, Internationalization, i18n)とか多言語化(マルチリンガライゼーション, multilingualization, m17n)とかいろいろ言い方があってそれぞれ意味が微妙に異なるようですが、IT用語集を調べるとそれぞれ違うことが書いてあるので、何と呼ぶかは気にしないことにします。 私は開発中は全て文字列を英語で書いておいて、最後に日語化をするようにしています。 1. 多言語化が必要な文字列をNSLocalizedString()コールに置き換える 多言語化が必要な文字列を検索(Command+F, Command+Shift+F,

    watanata2000
    watanata2000 2012/03/02
    ローカライズ マルチ言語 i18n
  • 再利用可能なUIViewのパーツをInterfaceBuilderで作る方法 - Awaresoft

    Interface Builderで画面をデザインする時、基的には1つの画面に1つのViewControllerと1つのXibファイルを用意することになります。しかし、これだと複数の画面や別のアプリでも使い回せるはずのUIパーツをそれぞれのXibファイルに用意しなければならなかったり、一つの画面に同じパーツを複数並べて使うといったことがやりにくくなります。 再利用可能なUIパーツをInterface Builderを使って簡単につくる方法を調べてみたのですが、基的な事項の割にはドキュメントやサンプルが見つけられずに苦労してしまったのでまとめておきます。(Appleのサンプルでは一部をIBで、一部をコードで行うものはありましたが、できることなら極力IBを使うようにしたいところです。) まず、メインのViewControllerのXibファイルにViewControllerを追加してパーツ

    watanata2000
    watanata2000 2012/03/02
    UIView パーツ 再利用 部品化 Interface Builder
  • Xcode 4.2で変わったビルド設定(アーキテクチャとコンパイラ)と問題点などについて - Awaresoft

    iOS 5の正式リリースと共に、iOS 5 SDKを含むXcode 4.2の正式版がリリースされました。Xcode 4.2ではビルド関係で4.1から大きく変わったところがいくつかあってかなり手間取ったので、調べたことをまとめておきます。 Xcode4.2のArchitectures設定 Xcodeプロジェクトの設定で、ArchitecturesのところがXcode4.1.2までは"armv6 armv7"となっていたのが、Xcode 4.2からは、 のように、"Standard (armv7) - $(ARCHS_STANDARD_32_BIT)"などとなっていて、armv6が外されています。 このままビルドすると、Deployment TargetにiOS4.3以前を指定している場合に問題が発生するようです。 iOS4.3以前をサポートする場合は、 のように、armv6も追加しておく必要

    watanata2000
    watanata2000 2012/03/02
    Xcode 4.2 ビルド設定 変更
  • iOSデバイスのクラッシュログを読むには - Awaresoft

    1. クラッシュログファイルを探す iOSアプリがデバイス上でクラッシュしたとき、デバイス上に自動でクラッシュログが生成されています。これを使えば、デバッガで接続していない状態でクラッシュした時でも、クラッシュの原因を調べることができます。 クラッシュログは、アプリがクラッシュしたデバイスを一度iTunesでMacPCに接続して同期すると、デバイスから次の場所にコピーされます。 Macの場合: ~/Library/Logs/CrashReporter/MobileDevice Windows Vista/7の場合: C:\Users\<user_name>\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice Windows XPの場合: C:\Documents and Settings\<user_name>\A

    watanata2000
    watanata2000 2012/03/02
    クラッシュログ 参照方法 ★★★
  • iOS4と5のアプリケーションライフサイクルの違い - Awaresoft

    iOS4と5では、アプリケーションの起動時や終了時に呼ばれるアプリケーションとビューコントローラーのライフサイクルメソッドが呼ばれる順序に若干違いがあります。 起動シーケンスは、例えばアプリに暗証番号を設定して、ロックされていた場合はアプリケーションの画面を出す前にロック解除の画面を出さなければならない場合などには、初回起動時、ホームボタンでバックグラウンドに入ったとき、バックグラウンドから復帰したとき、スリープボタンを押されたとき・・・などあらゆる場面を想定して非常に綿密に検討する必要がでてきます。 iOS5だけをサポートして、iOS4はサポートしないのであればとてもシンプルなので問題ないのですが、両方をサポートする場合は気をつけなければなりません。 アプリケーションライフサイクルについては詳しくはこちら。 ビューコントローラーのライフサイクルについてはこちら。 下の内容はiOS4は4.

    watanata2000
    watanata2000 2012/03/02
    ライフサイクル iOS4 iOS5
  • Xcode 4でビルド番号を自動的に増やす方法 - Awaresoft

    Xcode 4には、ターゲットのサマリーに「Version」と「Build」の欄があります。このBuild番号をビルドの度に自動的に増やしていく方法のメモ。こちらのQ&Aページを参考にしました。 バージョン番号とビルド番号の付け方について ターゲットのサマリーの"Version"はInfo.plistの"Bundle versions string, short" (CFBundleShortVersionString)、"Build"は"Bundle Version (CFBundleVersion)"に相当します。 バージョン番号とビルド番号の使い方の流儀はいろいろあり、プロジェクトにあった方法を選べばよいわけですが、私の場合は上のQ&Aページで説明されているのとほぼ同じように、次のようなルールで付けることにしました。 バージョン番号は、 {メジャーバージョン}.{マイナーバージョン}

    watanata2000
    watanata2000 2012/03/02
    ビルド番号 自動採番 増やす
  • Objective-CでOAuthその2 – なんてこったい

    OAuthConsumerの基的な使い方を説明します。 OAuthConsumerの基的な使い方 OAuthConsumerは公式のドキュメント類が少なく、使い方について書かれたドキュメントもUsingOAuthConsumerくらいしか見当たりません。残念ながらこのチュートリアルも若干説明が不十分な部分があったり、サンプルコードはメモリーリークしまくりのコードになっているので、参考程度にみてあとは実際にコードを読むか使ってみて使い方を覚えていくしかありません。 上記チュートリアルを参考に、メモリーリーク等の問題を直したプログラムは下記のような形になります。 #import "OAuthConsumer.h" ... // サービスからアプリ用に割り当てられたKeyとSecret NSString* consumerKey = @"12345"; NSString* consumerS

    watanata2000
    watanata2000 2012/03/02
    OAuth ライブラリ 使い方
  • Objective-CでOAuthその1 – なんてこったい

    Twitter等の最近の外部サービスではクライアントアプリからの認証にOAuthを使うことが多くなってきました。Objective-CではOAuthConsumerというライブラリを使うことでOAuthによる認証を実現することができますが、ドキュメント類が少なかったり若干癖のあるライブラリなので、ここに使い方を書いておこうと思います。 なお、ここで説明している方法は僕が勝手に解釈/試行錯誤した結果たどり着いた方法であり、OAuthConsumerが公式に説明している情報に基づいたものではありません。なにか問題があっても責任はいっさいとれないので、自己責任のもと注意して使ってください。 OAuthConsumerの入手 OAuthConsumerで検索するとGoogle codeのoauthプロジェクトのページとチュートリアルが見つかります。特にこれらのページに記述がないのですが、実は現在プ

    watanata2000
    watanata2000 2012/03/02
    OAuth ライブラリ 使い方
  • 時間のかかる処理をバックグラウンドで実行する方法 - Awaresoft

    大量のデータ処理等、時間のかかる処理をメインスレッドで実行してしまうと、UIが固まってしまってよろしくありません。これを防ぐためには、時間のかかる処理は別スレッドをつくってそちらで行うようにします。Cocoaにはこれを非常に簡単に実現する方法が用意されていますが、いくつか気をつけるべき点があったので書いておきます。 1.performSelectorInBackground:withObject:メソッドを呼ぶ NSObjectにはperformSelectorInBackground:withObject:というメソッドが用意されていて、バックグラウンドで処理を行うメソッドのセレクタを指定するだけで、非常に簡単に別スレッドで実行してくれます。 例えばこんな感じ。 - (void)runVeryHeavyMethodInBackground { [self performSelectorI

    watanata2000
    watanata2000 2012/03/02
    バックグラウンド実行
  • [Objective-C] Xcode の単体テスト環境 - それはBooks

    iPhone アプリで利用している Xcode 上に単体テスト環境を構築する手順のメモです。 GUI の構築が多い iPhone アプリ開発ですが、一部ロジックもあります。ロジックのテストはあったほうがいいし、なきゃ不安。 ということで単体テスト環境の構築方法をいろいろしらべてやってみた手順のまとめです。 開発環境 僕の Xcode の環境です。この環境でテスト環境を作っていきます。 OS のバージョン Mac OS X 10.6.4 Snow Leopard Xcode のバージョン 3.2.4 iOS のバージョン 4.1 単体テスト環境の作り方 - 手順 Xcode には 単体テスト(OCUnit)用の SenTestingKit というフレームワークが用意されています。 ここでは、iPhone 用のプロジェクトで OCUnit を使った単体テスト環境を構築する手順を紹介します。 手

    watanata2000
    watanata2000 2012/03/02
    単体テスト Unit Test Xcode Objective-C iOS ★★★
  • Java脳でもわかるObjective-C入門

    ちょいAndroidTypescriptいいよ。JenkinsとかGradleとか。APTもいいなー。 photo: Some rights reserved by yukiv Javaと比較しながら「へぇーObjective-Cってそういう感じか」と理解した気になろう。 流れ 軽くジャブ クラスファイルの構成 コメント import文 変数の定義 クラス定義 メソッドの定義 メッセージ式 プロパティ セレクタ プロトコル カテゴリ 文字列リテラル ログ出力 ひと通り使ってみる感じのソース まとめ 軽くジャブ まずは以下のソースを眺める //SampleClass.h #import <Foundation/Foundation.h> #import "SampleClassDelegate.h" @interface SampleClass : NSObject <sampleclas

    Java脳でもわかるObjective-C入門
    watanata2000
    watanata2000 2012/03/02
    Java 言語 比較
  • NSThread で別スレッドを起動する : Objective-C プログラミング

    Objective-C で別スレッドを起動するには、"performSelectorInBackground:withObject:" メソッドや "NSOperation" クラスを使った方法もありますが、ここでは "NSThread" クラスを使った方法について、記してみたいと思います。 NSThread では、指定したメソッドを別スレッドで実行することができます。 例えば、次のようにして、別スレッドでの処理を行うメソッドを定義しておきます。

    watanata2000
    watanata2000 2012/03/02
    NSThread 使い方
  • 任意のメソッドを 3 つ以上の引数を添えて実行したい場合 : Objective-C プログラミング

    Objective-C では "performSelector" メソッドを使用することで、オブジェクト内の任意のメソッドを簡単に呼び出すことができます。"performSelectorInBackground" などで簡単に、別スレッドでメソッドを実行できるところも魅力です。 ただ、標準の "performSelector" メソッドでは、最大で 2 つまでしかメソッドを指定することができないので、それ以上の引数を取る場合には、"NSInvocation" クラスを使って、メソッドを呼び出す必要があります。 たとえば、とあるオブジェクト "argTarget" のメソッド "argSelector" を任意の数の引数 "argWithObjects" を添えて実行するメソッドを次のように定義してみます。 // "target" のメソッド "selector" を任意の数の引数 "wit

    watanata2000
    watanata2000 2012/03/02
    SEL 型 @selector 引数 3つ以上
  • Objective-C @selector SELクラス

    セレクタ(メソッド名)はソースコード上では、 メッセージキーワードを書き並べたものとして表されますが、 プログラム上では、別の形に変換されています。 @selectorコンパイラ指示子を用いる事で、 内部表現をSEL型のオブジェクトとして取得することでき、 これを用いることで、好きなタイミングでメソッドを実行することができます。 // @selector SEL sel1 = @selector(func) //引数なし SEL sel2 = @selector(func:) //引数1個 SEL sel3 = @selector(func:var2:) //引数2個 SELオブジェクトに格納したメソッドの実行には performSelectorを用いる。 第一引数はSEL第二引数、第三引数はSELオブジェクトの指すメソッドに渡す引数。 //引数なし – (id)performSelect

    Objective-C @selector SELクラス
    watanata2000
    watanata2000 2012/03/02
    SEL 型 セレクタ @selector
  • 重い処理をするときにインジゲータを表示する | エンジニア開発記

    ちょっと前にインジゲーターを表示するのにほんの少しだけ悩んだことがありました。 今日の@iphone_dev_jpで、同じ事で悩んでそうな人がいたので書いてみます。 例として、ボタンが押されたときにUIImagePickerをmodalViewで出すことを考えてみます。 UIImagePickerは初回起動に2〜3秒ぐらいかかる嫌な子です。 普通の人がやりそうな書き方 [objc] -(void)tapButton:(UIButton *)sender{ //indicator は UIActivityIndicatorView が入っているとします。 [indicator startAnimating]; UIImagePicker *picker = [[UIImagePickerController alloc] init]; [self presentModalViewContro

    watanata2000
    watanata2000 2012/03/02
    インジケータ Indicator 表示タイミング
  • NSOperationQueue+NSURLConnectionで通信 | エンジニア開発記

    裏でネットワークを大量に捌きたいときにはNSOperationQueueを使います。 NSOperationQueueは登録されたNSOperationを順次実行してくれるクラスです。 幾つか検索すれば手法が出てきますが、自分の環境ではそれらが使えなかったのでこちらに書いてみます。 NSOperationのサブクラスでNSURLConnectionを使うポイントとしては データ待ちの無限ループを作る isConcurrentを設定する です。 データ待ちの無限ループを作る NSOperationではバックグラウンドでデータ受信するの待ってる状態だったとしても、main関数を抜けてしまえば処理が終了してしまいます。 処理が終了しないためには無限ループが必要です。 さらに、ただの無限ループではダメで、その無限ループの最中にデータが来たかどうかなどのシステムの処理をきちんと行なう必要があります。

    watanata2000
    watanata2000 2012/03/02
    NSOperationQueue + NSURLConnection NSRunLoop
  • CFRunLoopSourceの使い方その5:腰も砕けよ 膝も折れよ:So-net blog

    昨日はスレッド間で情報のやりとりを整理するためのメカニズムのうち、unixならだいたい実装されている機能をおさらいした。今日はMacOS X独自のスレッド制御の機能について。 4  MacOS X固有のスレッド制御メカニズム これまでのロックやメモリ障壁はMacOS X以外のOSでも存在する。MacOS X固有のメカニズムとしてrunLoopSourceがある。runLoopSourceはロックやメモリ障壁ではレベルの違う機能で、スレッド間通信とみなしたら遅くてオーバーヘッドも大きいが、複雑で大量の通信をする必要があるときには便利な機能である。前にもちょっとだけ勉強したけどもう一度整理する。 Cocoa/Objective-CのレベルではNSRunLoopはスレッドそれぞれに一つずつあって、このオブジェクトが入出力のディスパッチをしている。NSRunLoopの中でループがあって、キーボード

    watanata2000
    watanata2000 2012/03/02
    NSRunLoop とは 解説
  • 初心者のためのObjective-Cプログラミング入門 - libro

    ※ページが正常に表示されない場合 AddBlockなどの広告ブロックツールがONになっていると、ページの一部が表示されないことがあります。これらのツールをOFFにしてみてください。 Mac OS X、iphoneipadで使われている「Objective-C」というプログラミング言語は、C言語に独特のオブジェクト指向の仕組みを追加した、かなり変わった言語です。あまりプログラミングの経験がない人でも、基礎からしっかり覚えれば、アプリを作れるようになりますよ!(※Automatic Reference Counting対応に全コードを修正しました) ※「まったく何もわからない!」という方は、C言語超入門で基文法から。 新言語「Swift」で開発したい方は、Swift入門をどうぞ。 ※連載がKindleになりました!

    watanata2000
    watanata2000 2012/03/02
    入門 初心者 文法 クラス 使い方
  • NSTimerは基本的にretainせずassignでよい

    NSTimerを初めて使ってみたのでハマったところをメモしておきます。 ■NSTimerはNSRunLoopにretainされる。NSTimerは引数targetで与えられたオブジェクトをretainする。 いちばんハマったのがこの挙動です。 AppleのNSTimerについての公式ドキュメント(http://www.devworld.apple.com/documentation/Cocoa/Conceptual/Timers/Articles/usingTimers.html#//apple_ref/doc/uid/20000807-CJBJCBDE)にもクラスリファレンスにもきちんとと明記されていたのですが・・・思いっきり見落としてました。 これらがいったいどんな問題を引き起こすか。 たとえば普通のクラスと同じ感覚でdealloc中にNSTimerのinvalidateを呼び出すコー

    watanata2000
    watanata2000 2012/03/02
    NSTimer 使い方
  • iOS Keychain Migration and Data Protection - Part 1

    watanata2000
    watanata2000 2012/03/02
    Data protection データ保護 WWDC 2010
  • SANS Institute | How Not to Store Passwords in iOS | SANS Institute

    watanata2000
    watanata2000 2012/03/02
    keychain
  • Wait and notify equivalent in Objective c?

    watanata2000
    watanata2000 2012/03/02
    スレッド NSThread wait notify
  • http://japan.internet.com/linuxtutorial/20070713/4.html

    watanata2000
    watanata2000 2012/03/02
    ディレクトリ パーティション 暗号化
  • http://japan.internet.com/linuxtutorial/20070713/3.html

    watanata2000
    watanata2000 2012/03/02
    ディレクトリ パーティション 暗号化
  • Linux の暗号化パーティションでデータを保護する――2 - japan.internet.com LinuxTutorial

    watanata2000
    watanata2000 2012/03/02
    ディレクトリ パーティション 暗号化
  • http://japan.internet.com/linuxtutorial/20070713/1.html

    watanata2000
    watanata2000 2012/03/02
    ディレクトリ パーティション 暗号化
  • はてなブログ | 無料ブログを作成しよう

    我が家のダグウッド ダグウッドとはハナミズキのことである。昔、日からポトマックリバーの桜の苗木を送った返礼として、アメリカから送られて来たのが日での始まりで、アメリカ原産でアメリカヤマボウシともいうらしい。 最近では日でも、あちこちで、街路樹であったり、庭木であっ…

    はてなブログ | 無料ブログを作成しよう
    watanata2000
    watanata2000 2012/03/02
    フォルダ 暗号化
  • Objective-CでTDDをやってみよう - こんにちはこんにちはmonmonです!

    Objective-CでTDDってどうやるんだっけ?ってなったのでTwitterからPublic Timelineを取得するって流れを簡単にやってみた。 TwitterAPI利用はTweetingを参考にした。 # ということでiOS5で。 前提 public timelineを取得するだけ 簡単なテストをしたいので Xcode4.2を使う TwitterやARCなどiOS5の機能を使うので public timelineを取得するためのインタフェースを考える TTTwitterというクラスにする sendPublicTimelineToDelegate:withSelector:というメソッドを使うとパラメータで渡したdelegateのselectorに結果のtimelineを渡してくれる 結果の形式はstatusとbodyというkeyをもつdictionary statusにはHTT

    Objective-CでTDDをやってみよう - こんにちはこんにちはmonmonです!
    watanata2000
    watanata2000 2012/03/02
    iOS アプリ テスト