タグ

ブックマーク / kazzz.hatenablog.com (7)

  • ゾンビオブジェクトを検出する (Instruments編) - Kazzz's diary

    先日のエントリではXcodeと環境変数、アロケーションヒストリログを使用して解放済みのオブジェクト=ゾンビオブジェクトを検出する方法を書いた。これでも十分使えるが、Xcodeではもっとスマートにこの作業を行うことが出来る。 Instruments Xcode4.2と共にインストールされているInstrumentsは単体で使用できるプロファイリングツールであり、開発するアプリケーション、既存のアプリケーションの各種解析を行うことが出来る。 InstrumentsはXcodeと統合されており、Xcodeのプロジェクトターゲットに対してプロファイリングを実行することが出来るが、ゾンビオブジェクトの検出もすぐに実施することが出来る。 手順 対象のプロジェクトを開いた状態で、Xcodeのメニューから「Product->Profile」を選択する Instrumentsのダイアログが起動するので、実施

    ゾンビオブジェクトを検出する (Instruments編) - Kazzz's diary
  • PortraitとLandscapeの正しい判定 - Kazzz's diary

    デバイスのポートレイトとランドスケイプを判定する処理をなんとなく以下のように書いていた。 + (BOOL)isDevicePortrait { UIDevice* d = [UIDevice currentDevice]; return (d.orientation == UIDeviceOrientationPortrait || d.orientation == UIDeviceOrientationPortraitUpsideDown); } + (BOOL)isDevicelandscape { UIDevice* d = [UIDevice currentDevice]; return (d.orientation == UIDeviceOrientationLandscapeLeft || d.orientation == UIDeviceOrientationLandscap

    PortraitとLandscapeの正しい判定 - Kazzz's diary
  • 次のUIKit/Foundationには入れて欲しいもの - Kazzz's diary

    がちがちに決まっているiOSアプリの開発ならばオープンソースが提供するライブラリィを使う必要など殆ど無いだろう、そう思っていた時期が私にもありました。 既に使用している中から是非とも標準のライブラリィとして組み込んで欲しいなと思うものを挙げてみた。 fmdb (https://github.com/ccgus/fmdb) SQLiteを使うならlibsqlite3.0が用意されているが、もう少し抽象度の高いライブラリィが使いたい場合に有効、というか必須。 基的にはlibsqliteのラッパーなので、必要なことは殆ど書ける。 MBProgressHUD (https://github.com/jdg/MBProgressHUD) 処理最中であることをユーザに提示するプログレスバー、アクティブインジケーターはUIKitに用意されているが、ビュー上に乗せて使うことが前提であり、画面のオーバレイ

    次のUIKit/Foundationには入れて欲しいもの - Kazzz's diary
  • Flexible iOS Logging - Kazzz's diary

    Flexible iOS Logging « The Brenwill Workshop Flexible iOS LoggingはBill Hollings氏によるCocoa Touch SDKの開発で使用することができるロギングライブラリィ。 元々Cocoa TouchにはNSLogというロギングのためのライブラリィがあるが、これはprintf同様の非常に簡易なものであり、 ロギングレベル(info/error/debug ..etc.)が選べない 条件を設定することが出来ずに必ず実行されてしまう という弱点があるが、"Flexible iOS Logging"を使うことで簡単にそれを解決することができる。 使い方は非常にシンプルであり、 1.Logging.hをインクルードする 2.ロギングのためのマクロを呼び出す これだけである。 既に内部ではレベル分けがされており、 LogTra

    Flexible iOS Logging - Kazzz's diary
  • サービスをアプリケーションプロセスから分離する - Kazzz's diary

    Androidのサービス(Service)はマニフェストの要素におけるandroid:process属性の記述により、サービスが実行されるプロセスをアプリケーションから分離することができる。 android:process の記述無し (デフォルト) サービスはアプリケーションに割り当てられたプロセス上で、他のActivityと共に実行される。 android:process = ":servicename" とコロン":"で始まる名前を指定した場合 サービスはアプリケーションのプロセスからプライベートに生成された、新たなプロセス上で実行される android:process = "servicename" と英子文字で始まる名前を指定した場合※ サービスはアプリケーションのプロセスからグローバルに生成された、新たなプロセス上で実行される 実際に記述して実行してみれば分るが、別プロセスで実

    サービスをアプリケーションプロセスから分離する - Kazzz's diary
  • ForegroundDispatchとonPauseに注意 - Kazzz's diary

    Android 2.3.3(4)、NFCのForegroundDispatchを制御するにはActivityのonResume/onPauseを基準にする必要があるということで、以下のようなスニペットがよく紹介されている。 private NfcAdapter mAdapter; private PendingIntent mPendingIntent; private IntentFilter mFilters; private String mTechLists; private TextView mText; private int mCount = 0; @Override public void onCreate(Bundle savedState) { super.onCreate(savedState); mAdapter = NfcAdapter.getDefaultAda

    ForegroundDispatchとonPauseに注意 - Kazzz's diary
  • CA証明書とandroidの危うい関係 3 - Kazzz's diary

    では端末にインストールされていない証明書をandroidアプリケーションで利用することは不可能なのだろうか? 否。 具体的にはHTTPS(SSL)通信で使用するソケットを生成する際に、通常使われるCA証明書の代わりに自ら用意した証明書を使って生成してやれば良い。コーディングに関してはandroid上の標準のHTTPクライアントであるApache HttpClientを使っても、javax.net.ssl.HttpsUrlConnectionを使っても実装できるが、後者はアドホックなコーディングで不具合を回避する必要があるのでApache HttpClientを使う方がお勧めだ。 以下、その手順。 使用するCA証明書からBouncy Castle形式のキーストアを作成する androidで使用するCA証明書はBouncy Castle形式(.bks)のキーストアに格納することになっている。な

    CA証明書とandroidの危うい関係 3 - Kazzz's diary
  • 1