Blocks というのは Apple が C/C++/Objective-C 向けに独自実装したクロージャ的な機能.Snow Leopard リリース時に GCD すげぇ!という記事で見かけて『Apple やりやがった,あの変態やりやがった』くらいにしか思っていなかったのだけど,iPhone OS4.0 で使うことになりそうなので,ザックリと調べてみた ザクザクっとドキュメントを読みつつテストしつつという状態で書いたメモなので,嘘を書いている可能性が大いにある! 以下,Blocks をクロージャと呼ぶ シンプルに // 無名でダイレクトに呼ぶ ^(void) {puts("closure");}(); //=> closure ^() {puts("closure");}(); //=> closure ^{puts("closure");}(); //=> closure // 名前を付
NSStringのフォーマット文字列生成で、 %n$@ というのが使える! (nは数字) これまでは、必ず [NSString stringWithFormat:@"Hello %@, (%@)", param1, param2]; のように順番に使われるしかなかったんですが、 [NSString stringWithFormat:@"Hello %2$@, (%1$@)", param1, param2]; のようにすれば、コード中の順番に関係なく文字を埋め込めると言うことです。知らなかったよ、早速試してみよう。 ※ 数字は1から始まるので注意。 ネタ元 : WWDC 2009 Session 106 - Building Localized Mac and iPhone Applications
※7/1: キーとなる状態と遷移の説明を追記しました。 iOS4 からアプリケーションのマルチタスク動作が可能になりました。これに伴い、iOS4 ではアプリケーションに新しい状態やイベントが追加されています。ここでは、iPhoneAppProgrammingGuide 4.0 2010-06-04 版 [1] を元にして、新しいアプリケーションの状態遷移をまとめてみます。(まだ、理解しきれていない部分もありますが、自分の理解のまとめという意味でひとまず) 注意:ここで言うアプリケーションの「状態」とは、UIApplicationStateが表す状態や、[1] の P29 Table 2-3にある Application statesとイコールではありません。Launchingや Terminating、Active, Inactive状態のスーパー状態としての Foreground状態など
概要 Mac で Cocoa アプリケーションや iPhone アプリケーションを開発する場合通常 XCode を利用します。 しかしながら、 普段 Emacs を利用している人は XCode に違和感を感じるはずです。 XCode は Emacs 風キーバインドに対応しているのでなんとかごまかしながら頑張っている人もいるかもしれませんが、 Emacs 使いはやっぱり本物の Emacs でないとプログラムのわくわく感が減少してしまうでしょう。 ここでは iPhone アプリケーションのプログラムを、なるべく Emacs でコーディングするための設定を記述していきます。 Cocoa アプリケーションを開発する場合は文章を参考に設定を多少変更してください。
とある理由で UIKit の描画機能が使えず、 Core Graphics のみで文字列の描画処理を行わなければならないことになってしまったので、適当に調べてみました。 ■ことのはじめ Core Graphics の機能だけで日本語の文字列を描画する方法については、既に先人の方々が調べて記事にまとめてくださっていたので、そちらを見ていただければ大丈夫です。 http://iphone-dev.g.hatena.ne.jp/ktakayama/20100129 http://d.hatena.ne.jp/r_kurain/20100316 基本的にはこちらで紹介されている方法に従って進めていけば困ることはありません。ただし、描画した文字が上下反対になることがありますので、 CGContextSetTextMatrix を使う箇所を調整したりする必要があるかも。 で、最大の問題になるのがこれら
CGFontGetGlyphsForUnichars に代わる関数を呼び出せる実装を用意したよ。という話です。 最近 iPhone アプリ開発にはまっているのですが、iPhone の 高速な 2D 描画機能である Quartz で日本語を使うのに苦労したので書き残しておきます。 Quartz は Mac 向けの OSX でも採用されている、PDF の操作なども出来る高速な 描画フレームワークです。Objectice-C から呼び出せますが、基本的には C の関数を呼び出して使うようです。 例によって Apple のドキュメントが素晴らしくまとまっており、Webから閲覧出来ます。 http://developer.apple.com/mac/library/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/Introdu
iPhone,iPadの画面開発ツールにInterface Builder(IB)があります。Apple謹製ということで使い勝手がよくのですが、ソース中にブラックボックスが入ることが嫌がる人、開発でGUIベースのツールを使いたくない人とInterface Builderを使わずに開発したい人は沢山いると思います。でも始めはどうすれば良いのか結構悩みます。決まりきった手順を覚えておけば簡単ですので、まとめておきます。ちなみにこの辺りのことは、iPhoneプログラミングUIKit詳解リファレンスに非常に丁寧に説明されています。 1.プロジェクトの作成 何でも良いです。今回はiPad向けのViewBaseプロジェクトでNoMoreIBという名前のプロジェクトを作成しました。 2.MainWindow.xibの削除 選択して削除するだけです。 3.info.plistの編集 info.plist(
iPhone Application Programming Guide(developer only)にもあるように,PNG画像は圧縮した方がいいらしい. XCodeでリソースとして使用するPNG画像は,自動的に圧縮,最適化される.最適化はビルド時にcopypngというコマンドラインツールで自動的に処理される.以下,XCodeの設定項目.デフォルトでPNG画像は圧縮される. UIImageは,最適化PNGで作成したものの方が,描画が速いことがわかっている.あらかじめリソースとして使用するPNG画像は問題ないのだが,ネット経由でダウンロードしたJPEG,GIF,PNG画像は,そうではない.そこで,ダウンロードした画像や動的に作成した画像を最適化PNGに変換する必要がある. そこで,takiuchi氏が最適化PNGを解析し,それを作成するコードを作ってくれた(すばらしい).しかもMIT Li
OpenCVはIntelが開発したコンピュータビジョンのライブラリで、例えば顔検出などを簡単に行うことができます。 覚え書きとして、OpenCVをiOS SDKをつかってiPhone上やiPadで使う方法を、ビルドスクリプトとデモアプリケーションつきでメモしておきます。 これらのサムネイルはデモアプリケーションのスクリーンショットです。 最新のOpenCVとiOS SDKに対応 プロジェクトをOpenCV 2.2.0、iOS SDK 4.3、Xcode4に対応しました (2011/4/17更新)。 ひとまず使ってみる すべてのソースコードとリソースはgithubのレポジトリに公開されています。 簡単に使えるように、事前にコンパイルしたOpenCVのライブラリとヘッダファイルを入れてあります。 すでにgitがあるなら、githubからレポジトリをcloneしてください。ない場合は、githu
iPhone, OpenCV | 23:29 | EdgeCameraというiPhoneのカメラアプリを9/21にリリースしました。EdgeCameraはカメラで撮影した画像をOpenCVを使って左の画像のように変換するアプリです。アプリのリリースは今回が初めてだったので、いろいろ判ったことがありました。主に技術以外の事をメモとして書いておきます。これから初めてのアプリを開発される方のご参考になれば。(画面は開発中のものです。一番下にも幾つかサンプルを載せてあります)OpenCVをiPhoneアプリに組み込むオライリーから出版されている「詳解 OpenCV」を参考にしました。(この本を参考にしてOpenCVをiPhoneで動かしてみたら、変換した画像がちょっと面白かったので、そのままアプリにしてみたのがEdgeCameraです)原書には無いのですが、翻訳版には「付録A iPhone OSへ
iPhone アプリ開発を初めてはや2年。わけわからんレベルからなんとかアプリをリリースするところまでこぎつけました。もともと趣味ではじめた事ですが今は仕事でも iPhone アプリ開発をしています。ここに至るまで自分が調べたことや参考にした文書をアプリの構想からアプリをリリースするまでの手順にそってまとめてみました。 iOSアプリ開発関連の本を書きました 初めて iOS アプリ開発をされるかた向けに「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」という本を書きました。 この記事を読んで iOS アプリ開発に興味を持たれた方におすすめです(2013年2月26日発売)。2015年1月17日にSwiftに対応した改訂版がでました。 本の内容に関する詳しい記事はこちらです。 iOSアプリ開発の本を書きました 初期投資 8400円とプライベートな時間、iPhoneまたは
2010年08月05日15:38 カテゴリiPhoneプログラム iPhone Objective-Cではないコードのメモリリークを特定するには(今回はソース付き) 今回はメモリリークの話です。 iPhoneでのメモリ管理ですが、Objective-Cのクラスをフル活用してコードを書いているウチは問題ないと思います。InstrumentsのLeaksを使えばコードのどの場所で確保されたメモリかが一目瞭然だと思うからね。 (きっとC++でもそんな感じに違いない) なーのーでーすーがー! 問題なのがCのmalloc()とかcalloc()とかrealloc()とか。これ、InstrumentsのLeaksでも「Malloc area 8K」とかって表示されるんで、その表示の中からメモリリークを探し出すのが至難の技….。 まぁメモリ確保時にクラス名の指定も何もないんだから仕方ないのは判ってるんで
iPhone MMSから送信されたメールをプログラム等で処理する際の注意点です。 iScreenShotではiPhone/iPadからの投稿方法としてメールがあるのですが、処理できないメールがありました。これを調べていったところ、行き着いたのがMMSでした。 そこでiPhone MMSからのメールについて分かったことを残しておきます。なおサーバ構成や変換処理などは、外部からの推測なので実際とは異なるかもしれません。 なお以後の「外部メールサーバ」には、docomo、auなど「携帯キャリアのメールサーバ」は含みません。携帯キャリア間では専用の制御が入っている(入る)可能性があるのでご注意を。 MMSって? まずMMSについてですが、これについては各所に情報があるので、ここでは割愛します。 => マルチメディアメッセージングサービス – Wikipedia => RFC 4356: MMS a
最新版はこちらです。 http://d.hatena.ne.jp/uosoft/20091231/1262186194 前回の目次からエントリーが17個増えてます。 アプリの作り方 HTMLとJavaScriptでiPhoneアプリを簡単に作る方法 Android SDK インストールからHello World実行まで iPhone/iPod touchのSafariやUIWebViewのJavaScriptで使えるタッチイベントのメモ センサー等ハードウェア関連 iPhoneSDKでスリープさせない方法 iPhoneの加速度センサの使い方 iPhoneで緯度経度を取得する簡単な方法 iPhoneのGPSとMapKitを使った地図を連動させる方法 iPhoneSDKで端末IDを取得する方法 ビュー操作関連 iPhoneSDKのUIViewアニメーション iPhoneSDKのiPhoneSD
2009年4月11日 [objective-C日記]テキストファイルの入出力について 自分の付加価値を上げるべく、iPhoneアプリを作ってみようと思いました。続くかどうかわかりませんが、そのメモ的な日記です。 とりあえず、先月MacBook(白、HDD160G、メモリ、4Gに増設)を購入。まずは、iPhone上ではなく、cocoaを使ってMacBookのデスクトップ上で動くアプリを作ってみようと思います。 自分の経験上、簡単なソフトはとにもかくにもテキストファイルでデータをいじくるのが手っ取り早い。csv形式の書き方なら、扱いやすいし。そんなわけで、まずは基本(と思っている)テキストファイルの入出力をobjective-C的な書き方でやってみました。 テキストファイルの読み込みは、stringWithContentsOfFileをつかって、 NSString* text = [NSStr
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く