タグ

開発とobjective-cに関するDNPPのブックマーク (22)

  • 中級者向け iOS デバッグ Tips - jarinosuke blog

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

    中級者向け iOS デバッグ Tips - jarinosuke blog
  • StoryboardのUnwind Segueの使い方 | DevelopersIO

    Exitという名前の謎の緑アイコン Xcode 4.5から、Storyboardに「Exit」という名前の緑のアイコンがシーンに追加されました。当初調べた際には、セグエで繋いでいる画面を戻るための機能(Unwind)であることは分かったのですが、具体的な利用方法が分からずもやもやしていました。最近になってようやく役割と利用方法が分かったのでまとめたいと思います。 Unwind Segue iOS 6になってUnwind Segueという新しいセグエが追加されました。UIViewControllerには、これをサポートするためのcanPerformUnwindSegueAction:fromViewController:withSender:などといったメソッドが追加されています。 Unwind Segueは前の画面に戻る遷移をStoryboard上で表現するためのセグエです。それとともに、

  • Technical Note TN2123: CrashReporter

  • $(SRCROOT) や $(BUILD_DIR) 等の Xcode で使用しているマクロの置換内容の一覧を調べる方法 - その後のその後

    Info.plistや、ビルド設定をいじっていると、こんな文字列に出くわすかと思います。 $(PRODUCT_NAME) $(TARGET_TEMP_DIR) $(SRCROOT) これらはそれぞれ特別な意味を持ち、Xcode がビルド時だか何だかのタイミングでプロダクト名とか環境に応じたパスとかに置き換えたりしてくれるものです。 が、 「SRCROOTってどこだっけ?プロジェクト直下?それともその一つ下?」 「Library Search Path を指定したいけどこの場所を指定するのにどのマクロを使っていいかわからない」 みたいなことになることが度々あるのではないでしょうか?(僕はあります) そして困ったことに、これらを網羅したAppleのドキュメントもありません。 (※というのは間違いで、バッチリありました。末尾の追記をご参照ください) 最近やっとその「Xcode で使用しているマク

    $(SRCROOT) や $(BUILD_DIR) 等の Xcode で使用しているマクロの置換内容の一覧を調べる方法 - その後のその後
  • バッテリー消費量の計測方法など、iOSのデバッグに関するドキュメント - その後のその後

    NSZombieEnabledをYESにするとか、そういう開発ノウハウの情報ソースはどこにあるんだろうと不思議だったのですが、iOS Dev Centerのドキュメントを漁っていて発見しました。 iOS Debugging Magic たとえばNSZombieEnabledなどの話は、Table 10 Foundation environment variables にあります。 以下、使えそうだと思った情報。 UIView の階層構造を書き出してくれるメソッド UIViewはdescription メソッド以外に recursiveDescription というメソッドを備えていて、これを使うとビューの階層構造を書き出してくれるようです。 <UIView: 0x6a107c0; frame = (0 20; 320 460); autoresize = W+H; layer = […]

    バッテリー消費量の計測方法など、iOSのデバッグに関するドキュメント - その後のその後
  • 『第3回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表してきました - その後のその後

    先日の記事で第2回勉強会向けに用意していた発表内容について書きましたが、日(7/21)開催された第3回で発表の機会をいただいたので、資料とサンプルコードをアップデートして発表してきました。 iOS 5 から Accelerate.framework に追加された高速画像処理ライブラリ、vImage についての話です。 前回との差分は、サンプルコードでできる画像処理が増えたこと(回転とか膨張/収縮とか、前回記事のときから倍ぐらい対応メソッドが増えてます)と、資料でそのへんについて触れているp19〜p25あたりと、OpenCV, CoreImageとの比較を表にしたp26あたりです。 vImageのススメ(改訂版) View more presentations from Shuichi Tsutsumi 資料の内容抜粋 vImageとは Accelerate.framework内のライブラ

    『第3回 iphone_dev_jp 東京iPhone/Mac勉強会』で vImage について発表してきました - その後のその後
  • UITableViewController のreloadDataをコールするタイミング - その後のその後

    こちらのページで知ったのですが、下記のように書いておけばビューが表示されるたびにリロードされ、かつ初回表示時に二重にリロードされてしまうこともないらしいです。 - (void)viewWillAppear:(BOOL)animated { [self.tableView reloadData]; [super viewWillAppear:animated]; } なぜなら、 UITableViewControllerのviewWillAppear:メソッドでは、まだデータがロードされていない状態の時にだけ、reloadDataを呼び出すよう、実装されているようです。 とのこと。 これ知らなくてフラグ立てて管理してました・・・

    UITableViewController のreloadDataをコールするタイミング - その後のその後
  • 入門本から得たTipsなど - その後のその後

    一番最初に買った入門を「もうそろそろ必要ないかな」と思い処分する際に、 改めて読むと知らないことが沢山あって色々とツイートしたのが昨年5月。 それを改めて読んでみるとまだ知らない(忘れている)ことが 多々あったので以下に抜粋。 uiwebviewで表示するhtmlソースにはmetaタグのviewportで横幅を320に指定するとよい UIViewAnimationTransitionの第三引数であるcacheをNOにすると、アニメーション実行中にビューの中身が書き換わったときにリアルタイムに反映される。YESにしておくと処理負荷が軽いのでトランジションは滑らかに。 UIResponderのtouchesXXXメソッドの第二引数、UIEventのallTouchesメソッドを呼ぶと、他のビューを含めた全タッチ情報を取得できる。 touch down repeatは繰り返しタッチの「2回目以

    入門本から得たTipsなど - その後のその後
  • パフォーマンスチューニングに関するアップルのドキュメント - その後のその後

    アップルの『 iOSアプリケーションプログラミングガイド(英語版)』に、『パフォーマンスと応答性のチューニング』という章があって、これが今読むとかなり参考になったので、引用します。 個人的には、「リソースをあらかじめロードしておくと高速化になりそうだけど、メモリの無駄遣いになって結果的に遅くなるので絶対にやるな」というのが一番ささりました。 画像ファイルはUIImage化しておくと使うときに速そうだなーとか考えてたところだったので。 他にも個人的にためになった部分を太字にしてあります。 メインスレッドを妨害しない アプリケーションのメインスレッド上で実行する処理のタイプを必ず制限します。メインスレッドは、アプリケーションがタッチイベントやその他のユーザ入力を処理する場所です。 アプリケーションが常にユーザに応答することを保証するには、時間のかかるタスクの実行や際限なく続く可能性のあるタスク

    パフォーマンスチューニングに関するアップルのドキュメント - その後のその後
  • iOSアプリ開発に役立つTips100連発! - Qiita

    1年半ほどコツコツと書きためてきた iOS アプリ開発 / Objective-C 関連の Tips をカテゴリ別にまとめてみました。 数が多いので、オススメのものを太字にしてあります。 (更新情報 2012.8.11)ちゃんと数えてみたら88個しかなかったので、20個ほど追加しました。 (追記 2013.10.1) 記事をきっかけに秀和システム社よりお声がけいただき、書籍を執筆 させていただきました。iOS開発に役立つTips集です。ぜひ下記ページより 目次を見ていただき、興味のある項目がありそうであれば ご購入いただけるととても嬉しいです。 『iOSアプリ開発 達人のレシピ100』というを書きました ライブラリ/フレームワーク ゲームアプリ向け UI コンポーネントセット "UIKitForGame" ゲームアプリをつくる際に便利な UIKit のカテゴリ/サブクラスの詰め合わせラ

    iOSアプリ開発に役立つTips100連発! - Qiita
  • iOS 6 新機能のサンプルコード/ライブラリのまとめ33個 - Over&Out その後

    英語のリファレンスだけじゃよくわからん、動くサンプルが欲しい!」という僕のために、NDA解禁されたてほやほやの iOS 6 関連のサンプルコード/オープンソースライブラリ等を集めてみました。 UICollectionView 1. iOS6-Playground iTunesから取得したムービーのカバー画像を、UICollectionView を用いて様々なレイアウトで表示するサンプルコードです。 UICollectionViewController, UICollectionViewCell, UICollectionViewLayout, UICollectionViewFlowLayout 等、UICollectionView 関連の新クラスは一通り使われています。 StoreKit に新たに追加された SKStoreProductViewController も使われていて、参考

    iOS 6 新機能のサンプルコード/ライブラリのまとめ33個 - Over&Out その後
  • iOS Viewライフサイクルまとめ、iOS6での変更点 – Zero4Racer PRO Developer's Blog

    TwitterでViewライフサイクルについて話題になったので、まとめてみました。 @tomohisa @gaolay @replicantnexus6 @t_okada これまではiOS5では呼ばれてましたね。5ではwillUnloadっていう使いドコロのわからないメソッドも追加されてそれも呼ばれてましたし。 — kishikawa katsumiさん (@k_katsumi) 9月 20, 2012 シングルビューの動作 こちらが基となります。よく勘違いされているのは、ViewDidUnloadは、いつもViewが閉じるときに呼ばれるというものですが、これは間違いで、通常、ViewDidUnloadは呼ばれません。 モーダルビューが呼ばれたとき モーダルビューが呼ばれたときの注意点は、裏にあるビューは、一度UIWindowから削除されて、ViewDidDisappearが走るという点

  • My365の作り方 〜iOS編〜

    My365は、まずiPhoneアプリとしてリリースすることにしました。 iPhoneアプリをリリースしたのはこれが初めてで、勉強しながらの開発となりました。(iPhoneアプリ開発自体では、ヒマボタンという素晴らしいアプリの開発経験があるのですが、このアプリは残念ながら僕のiPodにしか入っていません。) (よかったらこちらもどうぞ → iOS編, サーバ編, サーバサイドプログラム編 ) 勉強に使った書籍 「よくわかるiPhoneアプリ開発の教科書」は、Objective-Cの言語体系についてはほとんど触れられていませんが、Xcodeの使い方であるとか、iOSのフレームワークの使い方であるとかが、とても丁寧に説明されていて分かりやすいです。 4〜5時間くらいで読み終わります。このだけでとりあえずアプリが作れる風になれることは間違いないです。 「Objective‐C 2.0徹底解説」

    My365の作り方 〜iOS編〜
  • iPhone デバッグ用のマクロ - Psychs's blog

    iPhone アプリをデバッグするときに、ソースに NSLog をそのまま書いてしまうと、リリース時に削除するのが面倒なので、以下のようなマクロを使っています。 #ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_METHOD NSLog(@"%s", __func__) #else # define LOG(...) ; # define LOG_METHOD ; #endif 使い方は、まずプロジェクトの設定を開き、「Debug」構成を選択してから、一番下のユーザ定義カテゴリの「GCC_PREPROCESSOR_DEFINITIONS」に「DEBUG」を追加しておきます。 こうすることで、Debug build のときにだけ「DEBUG」が定義されます。 あとは、NSLog の代わりに LOG を使うようにすれば

  • iPhoneデバッグ用のマクロで、クラス名とメソッド名を自動的にログ出力する - 24/7 twenty-four seven

    iPhone デバッグ用のマクロ - Windchase #ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog(NSStringFromSelector(_cmd)) #else # define LOG(...) ; # define LOG_CURRENT_METHOD ; #endif iPhone デバッグ用のマクロ - Windchase このマクロをちょっと変えて、クラス名を自動的に出力するようにしました。 #ifdef DEBUG # define LOG(...) NSLog(__VA_ARGS__) # define LOG_CURRENT_METHOD NSLog(@"%@/%@", NSStringFromClass([self class]), NSSt

    iPhoneデバッグ用のマクロで、クラス名とメソッド名を自動的にログ出力する - 24/7 twenty-four seven
  • iPhoneアプリ開発におけるデバッグのTIPS

    2011-2-28 NSLogの出力を分りやすくするを修正しました。 新型MacBookAirをケーキ入刀用に買おうとしてるみなさんこんにちは。ダニーです。 iPhoneアプリ開発をしてるとメモリ周りで落ちることがあってデバッグするのが大変ですね, 今回はデバッグについて紹介したいと思います。 CGRectの中身を表示する CGRect rect = CGRectMake(13, 30, 100, 200); NSLog(@"%f %f %f %f", rect.origin.x, rect.origin.y, rect.size.width, rect.size.height); NSStringFromCGRectを使うと簡潔になります。 CGRect rect = CGRectMake(13, 30, 100, 200); NSLog(@"%@", NSStringFromCGRec

    iPhoneアプリ開発におけるデバッグのTIPS
  • Clang の構文解析インターフェースを Python から叩いてみようという話

    iOS App 開発担当の松です。 Sleipnir for Mac をお試しいただいた皆様、ありがとうございます。まだの方は是非! さて、先日の記事にもあるように、Apple は LLVM を基盤とした開発環境を着々と整備してきています。今日は LLVM 関連ツールの中でも特に注目されている Clang で少し遊んでみたいと思います。 Clang は LLVM をバックエンドとした C/C++/Objective-C のコンパイラです。GCC に比べてコンパイルが速かったり、生成されたバイナリがより最適化されてたりと、色々と優れているのですが、中でも面白いのがコンパイル途中で生成される構文木に、アクセスする為のインターフェースが用意されている点です。Xcode ではお馴染みの「コード補完」や「リファクタリング」などの機能が、このインターフェースを利用して実装されていて、方法次第でかなり

    Clang の構文解析インターフェースを Python から叩いてみようという話
  • Custom Controls for iOS, iPadOS, macOS, tvOS, and watchOS - Cocoa Controls

    FrameGen is a powerful application designed to streamline the process of creating xcarchive files from your xcodeproj projects. With an intuitive user interface and a wide range of functional capab...

  • viva Cocoa / Objective-C 入門

    Apr 21 . nota リリース 4月21日、nota の iPhone 版 . nota (ドット・ノタ) がリリースされました。App Store で販売中です。 iPhone version launch April 21. ". nota" (dot-nota) has been released. dot-nota is iPhone version of the nota. Is being sold in the App Store. nota を発売中。全文検索、タイムスタンプ、Mac 間での iCloud をサポートしています。現在450円で発売中 nota の購入 、 nota チュートリアル notePad も Mac 間での iCloud 対応になりました。250円 notaPad の購入 、 notaPad チュートリアル 覚書 は価格据え置きで、notePa

  • メモリ管理 - かみやんの技術者ブログ

    iPhone開発で、メモリ管理の基礎を社員に伝えることが増えてきたので、エントリとして書こう。 Objective-C基礎 メモリ管理の前にObjCの基礎として、メソッド呼び出しの話。 クラスのインスタンスaがmethodAをコールするときは、 [a methodA] と書く。このとき、aがnilだったときは、エラーではなく、コールされない。methodAに戻り値があるときは、それは、0やnilやNOが返る。ObjCでは、 void dealloc { if(a!=nil){ [a release]; } [super dealloc]; } は、気持ち悪いので、nilチェックはやめましょう。 なお、ObjCでは、動的にメソッドを差し替えることができ、コールの度にメソッドが存在しているかも確認しています。そのため、LL言語(ライトウェイト言語、スクリプト)のように柔軟な記述が可能です。そし

    メモリ管理 - かみやんの技術者ブログ