delegateやprotocolの勉強をしたいという人がいるので、なるべくわかりやすくここに書いておこう。propertyとか、delegateっていうのはObjective-Cで楽しいところでもある。 でも、delegateだけじゃなくて、他にもいろいろ非同期的な処理をやる方法あるんで、それも、まとめて説明する。 適当に思いつくだけ書くと、非同期的な処理をするために、Objective-Cでは以下のようなやり方がある。他にもあるかもしれないが、だいたいこれだけある。そして、どれを使ってもいい。 Objective-C、C/C++でも可能 ・関数のアドレスを保持しておいてコールバックする。 ・pthread条件変数を使う。(デッドロックやスレッド管理) ・非ブロッキングI/Oする。(データの検査コスト大、結局カーネル空間からユーザ空間に必要なデータをコピーするときにブロックされる) ・シ
サルでき.jpは閉鎖しました。 今まで沢山の方々にお越しいただき本当にありがとうございました。 新しいサイト「サルでき.com」はこちらです。 また皆様とお会い出来るのを楽しみにしております。 サルでき.jp管理人 カワサキタカシ
さっき書いた記事で、iPhoneの標準カメラアプリのシャッター音の扱いは盗撮対策としては不十分であることがわかったが、せめて標準カメラアプリのシャッター音と同様に効果音を鳴らすようにすることは抑止につながる。 琴線探査: iPhoneの標準カメラアプリのシャッター音の鳴り方を調べる では、どのように鳴らせばよいのか? //AudioSession初期化 AudioSessionInitialize(NULL, NULL, NULL, NULL); //AudioSessionカテゴリーをMediaPlaybackにセット(サイレントモードに従わない、iPodと共存不可) UInt32 ssnCate = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty(kAudioSessionProperty_AudioCatego
8月は花火大会、夏祭り、私のバースデーと目白押しな一ヶ月 そんな熱中症予備軍・大量光合成中のUTOです。 今回はAVAudioPlayerを使ったサウンド再生において ちょいと特殊な手法をまとめてみました。 ケース1 カメラのシャッター音のようにマナーモード時でも音を鳴らす(日本仕様なだけなんですけどね…シャッター音) アプリ内でサウンド再生において、音量設定の影響をうけてしまうのですが まずマナーモードにされていても音を鳴らす方法です。 AVAudioPlayer* audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil]; [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error
アプリケーションの設定値など、アプリを停止させてもずっと保持しておきたい情報などはよくありますが、NSUserDefaultsを使うとそうしたデータを簡単に保持できます。 使い方としてはNSUserDefaultsを取得して、取得したNSUserDefaultsに対してデータを保存したり取り出したりすることでデータ保持を行います。 NSUserDefaultsのクラス階層 生成 // NSUserDefaultsの取得 NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaultsを取得する時は常にこの方法で取得します。この方法だとNSUserDefaultsがある場合はそれを返してくれ、NSUserDefaultsが無い場合は新規に生成して返してくれます。 NSUserDefaultsのメソッド 【NS
アプリ内でウェブを表示するにはUIWebViewを使います。ちなみにウェブビューだけで構成されたアプリはAppleにリジェクトされるとか。 ウェブページを表示 UIWebViewを使ってyahooのページを表示します。 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. // 画面サイズの取得 CGRect frameSize = [[UIScreen mainScreen] applicationFrame]; UIWebView * webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, frameSize.size.width, frameSi
最近iOSでOCR(Optical Character Recognition:工学文字認識)をしたいとの声をよく耳にするので調査してみました。 オープンソースのOCRエンジン「tesseract-ocr」 オープンソースで日本語に対応したOCRエンジンを探してみると、tesseract-ocrなるものを見つけました。このtesseract-ocrですが、Google先生が開発を支援していると噂のオープンソースのOCRエンジンで、C++で書かれています。また、英語、日本語だけでなく多数の言語にも対応しています。ライセンスはApache License 2.0です。ちなみに読み方は「テッサラクトOCR」だそうです。 tesseract-ocrではiOSで簡単に利用できる形式では配布しておりませんが、C++で書かれているので当然Objective-Cでも使うことが出来ます。iOSでtesser
iOS 4.0 と iPhone OS 3.x の両方で動作するアプリケーションをビルドする設定 - 24/7 twenty-four seven ↑ こちらも参考に iOS 4.0 が登場したくらいのときに上の記事を書いて、仕組みは変わってないのですけど Xcode 4.x 系だと UI が変わってるので現在のやり方をまとめます。 ベース SDK と Deployment Target を設定する プロジェクトの "Build Settings" で "Base SDK" を "Latest iOS" にします。 前にも書きましたが、ベース SDK は最新を指定したほうがいいです。 プロジェクトの "Info" で "Deployment Target" をサポートする OS の最も低いバージョンにします。 (下の場合は iOS 5.0 以降で動作する。) 今なら、Base SDK 6.
何を言っているんだと笑われそうな内容ですが、引っ掛かってしまったので書く。 恥ずかしくてもこれが現実。 現在、iOSプログラミングの勉強中。 考え方的な部分は先日読了した 「iOSにおけるパターンによるオートマティズム」で学べました。 しかし、実践部分がさっぱり出来ていない。 頭でっかち。 なので、ドリル形式で勉強できそうな本を探したところ、この本が見つかりました。 つくって覚えるObjective-C入門 iOS対応 実際にアプリを作りながら勉強すると言う点では、 「iOSにおけるパターンによるオートマティズム」も同様です。 しかし、こちらはより詳細に、実際の作成がメインで書かれています。 「とにかく理屈はいいから書いて覚えろ」的な感じです。 いきなり引っ掛かる で、意気揚々と取り掛かったのですが、第3章でいきなり引っ掛かりました。 タイトルにもある「Resourcesディレクトリ」です
APNs(Apple Push Notification Service)のテストをしたのだが、本番(Production)で動かすとPush通知が来ない現象がおこった。大まかな構成は... iOS用アプリ・・・APNsよりトークンの取得、APNsからのPush通知の受け取り プロバイダー(Webサーバー)・・・任意デバイスへのPush情報をAPNsに送信 尚、iOSアプリは「Ad Hoc」、プロバイダーは「ApnsPHP」を使用した。 APNsの仕組みや具体的な実装については、「iPhoneアプリで稼げるのか」さんが、ApnsPHPは、「PROGRAMMING NOTE」さんが、それぞれ詳しく解説されていてとてもありがたい。 push-notificationの実装方法 Apple Push Notification サービス(APNs) の実装方法 Development用に実装した場
仕事を持つ女性が一段と増えて来ています。 自立する女性が多くその結果、晩婚化や少子化の原因とも言われています。 しかしながら自分で生活して男性に頼らなくてもいいということは、女性のが男性に依存しなくてもいいので自由度が多くなって来たと言えるでしょう。 働きながらでも結婚して仕事を辞める事なくやっていく事も、可能になってきました。 今でもいわゆるマタニティハラスメントと呼ばれるものもあり、妊娠したら辞めるように言われる事もあるみたいですが働きながらでも育児休業を利用している人も多くいるのです。 しかし、そのような環境で勤務されている人もまた少ないのではないでしょうか? 公務員や大企業では、育児休業などもきちんととれると思いますが一般の中小企業では難しいものがあると思います。 今の時代は女性が働ける環境が整っているところは、まだ少ないと思います。 その上この不景気が続いていては、給料が少ないた
特定のページのみUIWebViewを使ってWebページを表示することはよくあると思いますが、そのページでの処理終了したタイミングで、再びネイティブコードを実行したいというケースがあります。 PhoneGapではJSからネイティブコードを呼ぶ仕組みが実現されていますが、これと似たような仕組みを作るにはどうすればよいのか紹介します。 ネイティブからWeb呼び出し JSを実行するためのメソッドがあるので任意のタイミングでそれを利用するだけでOKです。 [webView stringByEvaluatingJavaScriptFromString:@"alert('call from native');"]; 簡単ですね。 Webからネイティブ呼び出し UIWebViewDelegateにある、ページがロードされる前に呼ばれるメソッドを利用します。 - (BOOL)webView:(UIWebVi
2012年06月29日 iPhoneのネイティブ機能をWebViewから呼び出す方法(1) ・はじめに リワード広告の「Reward Plus」の担当エンジニアをやっています、波切です。 最近、iPhone向けの新サービスが立ち上がり、私自身もiPhoneアプリ開発に入門したばかりなので、iPhone系の開発の話題を提供できればと思います。 ・ネイティブとWebの連携 HTML5の普及で、昨今ネイティブ機能でしか実現できないことは、だいぶ減ってきました。 Webの方が柔軟性があり、しかもネイティブの開発よりも少ない労力で開発することができるので、Webが利用できる場面では積極的に活用していきたいものです。 一方で、アプリ内課金やデバイス機能へのアクセス、プッシュ通知等といったiPhoneの特性を生かしたサービスをつくるためには、ネイティブ機能へのアクセスは、まだまだ避けて通ることはでき
AndroidプログラミングのTOPへ HTMLやJavaScript等のWeb技術を使って,AndroidやiPhoneなどモバイル環境のネイティブ・アプリを作成する事ができる。 そういうアプリの事をハイブリッド・アプリと呼ぶ。 AndroidとiOSでは,ハイブリッド・アプリを実現するためのアイデアは,非常に似ている。 下記の図を見れば,仕組みが酷似している事が分かるはずだ。 なおWindows Phoneの場合も,だいたい似たようなフロー。 以下では,各プラットフォームごとの詳細な事情をメモする。 また,複数プラットフォーム間での移植性を向上させるために,HTML側でどのように対処したら良いか?という課題についても述べる。 (1)Androidの場合 Androidでハイブリッド・アプリを実現するための仕組みは,下記のエントリに記述した。 たった2ファイルで,HTML+JS製のネイテ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く