タグ

ブックマーク / jarinosuke.hatenablog.com (10)

  • 実践 Auto Layout - jarinosuke blog

    今こそ frame 思考脱却の時 Xcode 4 / iOS 6 から存在していた Auto Layout でしたが、 当時は Interface Builder の Auto Layout 対応も中々ひどく、使うのが辛かった記憶があります。 そんななか僕は順調に layoutSubviews に傾倒していったわけですが、 iPhone 6/iPhone 6 plus がついに登場し、Size Class という新しい概念も投入され 現状では間違いなく2年前とは比べ物にならないレベルで Universal アプリは作りやすくなりました。(ただし iOS 8 専用アプリのみ) ある程度のデザインパターンを懐に用意していた方が時間が省けます。 ここでは Auto Layout を用いたレイアウトに関するユースケース毎に簡潔に書いていますので、 「それ知ってるわ」みたいなのがあったら適宜読み飛ば

    efcl
    efcl 2014/10/09
    等間隔の配置、中心から言って感覚ずらす、UILabelの複数行、UIScrollViewとAutoLayout
  • CADisplayLink について - jarinosuke blog

    ユースケース CADisplayLink を実際に使う例と共にどんなクラスなのか簡単に紹介します。 例えば現在時刻を表示する場合。 画面に表示されている日時を定期的に更新する必要があります。 そのような場合に NSTimer で 0.01 秒など適当なインターバルを設定して更新、みたいなこと実装した経験ありませんか? 僕はあります。 それを解決するための表示されているビューを更新するためのイベントを取得するためのクラス、それが CADisplayLink です。 最近 facebook が OSS 化した pop や、長年 iOS の 2D ゲームフレームワークとして親しまれている cocos2d でも、もちろん使われていました。 facebook/pop cocos2d/cocos2d-iphone CADisplayLink の使い方 CADisplayLink を以下の様にしてセット

    CADisplayLink について - jarinosuke blog
    efcl
    efcl 2014/04/30
    表示して時刻をメインスレッドをロックしないで更新する方法。 Twitterとかの相対時間表示に便利そう
  • CGGeometry 啓蒙活動 - jarinosuke blog

    コードを用いてのレイアウト処理 iOS 6 から Auto Layout が導入され、レイアウトに関するコードを書く機会が ずいぶんと減ってきていると思いつつもなかなか減らない今日この頃。 最後の砦となるのはやはり以下の2メソッドでしょう。 //UIView - (void)layoutSubviews; //UIViewController - (void)viewDidLayoutSubviews; 上記2メソッド内でコードを用いて様々なレイアウトを行うわけですが、 今回はその中でのコーディング作法として CGGeometry をもっと使って読みやすくできるよ! という事を知って欲しくて書きました。 CGGeometry CGGeometry というと聞き慣れないですが、CGRect や CGPoint, CGSize などの構造体と、それを取り巻くマクロ関数を含めた総称です。 CGG

    CGGeometry 啓蒙活動 - jarinosuke blog
    efcl
    efcl 2014/01/26
    CGRect周りの計算を楽に行えるマクロ関数について
  • モダンなインスタンス変数の扱いとプロパティ宣言 - jarinosuke blog

    導入 最近、最近ふと 詳解 Objective-C 2.0 初版 を手に取る(電子化しているので実際に手に取るのは Kindle ですが)機会がありました。 もちろん最新の3版も持っているのですが、初版と比べて読み進めてみると色んな事を振り返る事ができて楽しいんですね、もう歴史です。 言うまでもなく、Objective-C は僕が関わってきた約5年近くだけでも凄まじい発展を遂げています。 コミュニティも WWDC や Developer Forum を初めとして、最近では CocoaPods など 3rd party のものまで活発になっています。 そのような環境の中でも、たまにそれらの範囲外では数年前の「構造」のままのコードを見る事があったりもします。 「構造」と少々分かり辛く書いているのは、以下のような「コーディング規約」を超えた考え方だと思ったので分けて書いています。 もちろんどちら

    モダンなインスタンス変数の扱いとプロパティ宣言 - jarinosuke blog
    efcl
    efcl 2014/01/26
    Structuring Modern Objective-C - インスタンス変数とプロパティ。 readonlyとBOOLプロパティとgetterの命名
  • JRNPasteboardMonitor をつくりました - jarinosuke blog

    JRNPasteboardMonitor [JRNPasteboardMonitor] monitoring UIPasteboard changes even if your app state is in background. https://t.co/HmJov7VYk6— CocoaPods (@CocoaPods) 2013, 10月 22 ペーストボード監視 ここ最近(といっても半年〜1年前位から)、辞書やURL共有のためのアプリでペーストボードを用いた他アプリとの連携が流行ってきているように思っていました。 というのも iOS では他アプリとの連携が Android などに比べて制限が厳しく、その中で Custome Scheme や Keychain Service などを用いて実装することが一般的です。 そのような環境下のなかで、ペーストボードのコピーイベントを元にした

    JRNPasteboardMonitor をつくりました - jarinosuke blog
    efcl
    efcl 2013/10/24
    ペーストボードを監視するライブラリ バックグラウンドでも10分間はポーリング監視する
  • JRNPrivacyChecker をつくりました - jarinosuke blog

    iOS のプライバシー設定 写真、現在地情報、カレンダーなどユーザ個人の情報をアプリ内で使用したい場合が多々あります。 これらの個人情報には iOS 6 より全体的に(一部は iOS 4.2 から)プライバシー制限がかかり、ユーザの許可無しに利用することができなくなりました。 これらの許可をユーザに要求するには、それらの情報を利用する機能を使用する時に勝手にアラートを表示してくれます。 プライバシー設定の確認 現状のユーザのプライバシー設定を知るためには、それらの機能を含むフレームワークを用いて確認します。 電話帳だったら AddressBook.framework の ABAddressBookGetAuthorizationStatus() 写真だったら AssetsLibrary.framework の [ALAssetsLibrary authorizationStatus]; だ

    JRNPrivacyChecker をつくりました - jarinosuke blog
    efcl
    efcl 2013/09/06
    iOSでプライバシー設定の状態を取得するラッパー
  • 中級者向け iOS デバッグ Tips - jarinosuke blog

    導入 iOS 開発者のみなさん、こんにちは。 このブログでは主にチュートリアルだったりフレームワークの紹介みたいなことを書いてきました。 そこで、たまには中級者向けのエントリを書いて「Xcode バリバリ使って、ビシバシ Objective-C 書いてますよ」アピールします。 iOS 開発をはじめて一通り Framework は理解したけど Xcode 使いこなせてる感が足りない方、夢にまで EXC_BAD_ACCESS が出てくる方に参考になる記事となればと思います。 といっても Xcode はマッシブな IDE なので、4つのデバッグツールに分けて「あれ、それ知らなかった!便利じゃん!」な方法を紹介します。 ブレークポイント デバッグには切っても切れない関係ですね。アプリを実行中に指定した行で処理を中断し、そこからステップ実行で細かいデバッグを可能にしてくれます。 ショートカットキー

    中級者向け iOS デバッグ Tips - jarinosuke blog
    efcl
    efcl 2013/01/27
    ブレークポイント、NSLog、Instruments、デバイスからデータを取ってシミュレーターで状況再現する方法.
  • iOS開発における現実的なCI環境 - jarinosuke blog

    継続的インテグレーション 最近では iOS アプリでも単体テストを使った継続的インテグレーションが注目されています。 iOS 開発の単体テストについては、このブログでも取り扱いました。 Xcode 4 からはじめる Unit Testing GHUnitとOCMockでUnit Test効率化 一般的な CI 環境についての説明は、以下のから抜粋するとこんな感じです。 Jenkins 作者: John Ferguson Smart,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2012/02/22メディア: 大型購入: 12人 クリック: 299回この商品を含むブログ (26件) を見る デプロイメントに至るまでの開発プロセスをスムーズにし、バグの検出とフィックスを素早く行えるようにし…(略) では iOS 開発における現実的な CI 環境を考えていきましょう。

    iOS開発における現実的なCI環境 - jarinosuke blog
    efcl
    efcl 2012/04/10
    iOSのCI環境構築について
  • GHUnitとOCMockでUnit Test効率化 - jarinosuke blog

    また、テストを書く。 最近 iOS 界隈のテストのベストプラクティスについて調べているのですが、そこで目に留まった文章があるのでまずそれを紹介します。 How comfortable are you on a bike without a helmet? Writing code without tests is like riding a bike without a helmet. You might feel free and indestructible for now, but one day you’ll fall and it’s going to hurt. http://paulsolt.com/2010/11/iphone-unit-testing-explained-part-1/ ヘルメットを付けずに自転車を漕ぐのはとても快適ですね。でも、ふとしたある日に取り返しの

    GHUnitとOCMockでUnit Test効率化 - jarinosuke blog
    efcl
    efcl 2012/02/28
    GHUnitとOCMockの導入方法
  • UIView画像加工レシピ集 - jarinosuke blog

    リッチなインターフェースにするために。 アプリを作る以上、ダウンロードしてもらったユーザには一回でも多くタップしてもらいたいですよね。 タップワーシィな UI を作るためには、現実のメタファーを反映させたコントロールを作る必要があります。 もちろん iOS SDK に付属している UIKit を用いるだけで十分な場合も多いのですが、今までにない独創的なアプリを作るためには、自分でイチから UI を作り込まなければいけない場合もあります。 しかし、 イチから作るとなると CoreAnimation や Quartz など今まであまり触ったことのないレイヤまで手を加えないといけないような気がして、腰が引けてしまったりすると思います。(自分がそうだっただけですが…) そこで「CoreAnimation とか良く分かってないけど、ちょっとリッチな UI にしてみたい」っていう人のために、簡単な画像

    UIView画像加工レシピ集 - jarinosuke blog
    efcl
    efcl 2011/09/27
    QuartzCoreを使った角丸とか簡単な画像処理のレシピ
  • 1