Subscribe to our newsletter and never miss our latest news Subscribe my Newsletter for New Posts & tips Let's stay updated!
iOS および iPadOS が対応している Bluetooth プロファイル iPhone、iPad、iPod touch が対応している Bluetooth プロファイルについてご案内します。 以下の Bluetooth プロファイルを使うには、デバイスが最新バージョンの iOS または iPadOS にアップデートされていることを確認してください。 ハンズフリー プロファイル (Hands-Free Profile:HFP 1.8) iPhone 5s 以降、iPad Air 以降、iPod touch (第 6 世代) 以降に対応しています。 HFP を使えば、Bluetooth に対応したヘッドセットやハンズフリーのカーキットで携帯電話と通信できます。 電話帳アクセス プロファイル (Phone Book Access Profile:PBAP 1.2) iPhone 5s 以降
仙台iOS開発者勉強会第7回に参加したので,いつも通り自分用まとめ. 前半はtaiko19xxさんによる,GameKitを使ったBlluetoothプログラミングに関してのお話. スライドはこちら. iPhoneのGameKitフレームワークのBluetoothはApple独自のものなので,Androidなどとの連携は不可. CoreBluetoothならできるかも?Bluetooth4.0 4.0にもSmart, Smart Readyとか色々規格があって,4.0同士でも通信できない場合があるらしい. 基本的に以下に書くのはGKPeerPickerControllerを使用する場合だが,使用せずに接続環境を作ることも可能. GKPeerPickerControllerを使う場合 検索から接続まで全部やってくれる 1対1の接続 GKPeerPickerControllerを使わな
今回はUIScrollViewで表示を任意の座標に吸着させる方法を記していきます。 「あれ、"UIScrollView.pagingEnabled = YES"とすればよくない?」と思うかもしれませんが、 それだとスクロール全体を一気にスクロールしたいということができないため、 今回目標とするスクロールの挙動としては、 「全体を軽快にスクロールできつつ、スクロールの動きが停止したときに任意の座標に吸着させる」 というものだ。 とはいえやるべきことは簡単で、「スクロールの動きが停止したときに」と上で書いたとおり、 UIScrollViewのデリゲートメソッドである、 //スクロールの減速がなくなったとき -(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { [selfadjustScrollViewOffset];
NSMutableArrayをNSUserDefaultsに保存しようとした時のエラー ↓こんなん。 2013-02-12 03:05:31.034 xxxxx[11607:1ca03] *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value '( "assets-library://asset/asset.JPG?id=FA015831-5CD3-47CD-B039-CDA0EEAB0E6D&ext=JPG", "assets-library://asset/asset.JPG?id=BC121EF6-82BA-4C45-8B9F-972D579CEF88&ext=JPG", "assets-library://asset/asset.JPG?id=44BF9DDA-3D68-44DB-B
Core Bluetooth was introduced for the first time in iOS 5 to allow iOS devices to consume data provided by devices used in healthcare, sport/fitness, security, automation, entertainment, proximity and so on. In iOS 6.0, this API was extended to allow also iOS devices to serve data. The Core Bluetooth API is based on the Bluetooth 4.0 Low Energy (LE) specifications. This framework takes care of all
iOS4からBlockが導入されました。利用目的としてはDelegateパターンと大差ないと思っていますが、処理記述が呼び出し元で記述できることで可読性が高くなります。 また、コールバック時に利用されるperformedSelectorが非常に使いづらく複数の引数となった場合などを考慮してNSDictionaryで定義したりInvocationを使う必要がったりと面倒な点が多々ありました。 今回は、CoreFoundationにカテゴリで組み込まれたBlockを活用したBlocksKitフレームワークを紹介したいと思います。かなり便利なため、今後のコーディングスタイルを変えてしまうほどのインパクトがあると個人的には思っています。 BlocksKit https://github.com/zwaldowski/BlocksKit BlocksKitはBSD, MITライセンスの元で利用可能で
尚、今回のサンプルではカメラを使用するので、実機を利用できるようにしてください。 1.UIImagePickerControllerを使う UIImagePickerControllerの導入は非常に簡単です。一般的にUIImagePickerControllerは他のビューコントローラからモーダルビューとして表示します。まず、ViewController.hを開き、以下のように編集してください。 ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate> @end UIImagePickerControllerを使用する場合、今回の呼び出し元となる
マンガゲットで開発を担当している武上です。最近2歳の息子がいろいろお話ができるようになってきました。今までずっとママと呼ばれていたのですが(男親も女親もどっちもママ)、ついにパパとよばれるようになりました!しかも稀に「パパだいすき」とかいってくれます!生きててよかった! ところで、iOS5が半年前にリリースされてからアプリの通知周りのユーザビリティが随分上がりました。そこで今回は、その裏側で動いている、iOSとAndoroidのプッシュ通知の実装方法の違いについてまとめてみたいと思います。 そもそもプッシュ通知とは何か? ユーザがアプリを起動していなくとも、アプリにリアルタイムに何らかの通知を送る仕組みのことです。 iOSの場合はAPNS、Androidの場合はC2DMという名前で用意されており、それなりに容易に使うことができます。 どちらも基本は事前にユーザの許可を取った上で、Apple
iOSアプリからUIWebViewなどを介さずにnode.js+Socket.IOと双方向通信するための簡単なサンプルを紹介します。 サーバ側の実装 iOSアプリからnode.js+Socket.IO間で双方向通信するには、socket.IO-objcというライブラリを使用します。 今回はサーバ側には弊社うえじゅん氏が公開している記事で作ったチャットアプリを使用しますので、まずは以下の記事を参考にチャットアプリを作っちゃってください。 Node + Socket.IO で簡単なチャットアプリの作成 チャットアプリの準備が終わったら、早速iOSアプリ側の準備をしましょう。ここからは以下の環境を前提に説明します。 Mac OS X 10.8 Moutain lion Xcode 4.5.2 iOS SDK 6.0 iOSアプリの実装 サンプルプロジェクトのダウンロード 今回紹介するiOSアプリ
こんにちは、iOSプログラマーの_ishkawaです。 このエントリは tech.kayac.com Advent Calendar 2012 8日目の記事です。 テーマは「私の中のマイイノベーション 2012」です。 12月。恋人たちが心の溝を埋めていく中、僕はiOSバージョンの溝を埋めております。 今日はそのテクニックを紹介したいと思います。 それと、紹介するテクニックを使ったマイイノベーションも紹介します。 基本中の基本 iOSでは、バージョンによってクラス/メソッドの有無やプロトコルへの適合状況が異なります。 これらの状況の違いは以下の方法で判別することができます。 メソッドが存在するかどうか: respondsToSelector: クラスが存在するかどうか: [Class class] プロトコルに適合しているか: conformsToProtocol: これらの条件を以下のよ
iPhone, iPad, iPod touch で音楽などを再生したりするには、MediaPlayer.framework を使います。 MPMusicPlayerController が音楽を再生を制御するコントローラクラスでこのクラスメソッドの iPodMusicPlayer を使うと iPod のコントローラが取得できます。 さらに nowPlayingItem プロパティからその名の通り再生中(一時停止している場合も含む)のデータを MPMediaItem インスタンスで取得できます。 MPMediaItem からメタデータを各フィールドを表す定数を指定して取り出せます。アイテムの種別は MPMediaItemPropertyMediaType で NSInteger をカプセル化した NSNumber で取得できます。 以下は、曲を再生中の場合に曲名、アルバム名、アーティストそ
strong __strong修飾子に対応するプロパティ属性です。strong属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 weak __weak修飾子に対応するプロパティ属性です。__weak修飾子を持った変数と同様、weak属性のプロパティも、参照先のオブジェクトが破棄されたら自動的にnilが代入されます。weak属性を用いたプロパティはオーナーシップ権を持ちません。 weak属性は、delegateやOutletの変数に最適です。 なお、iOS 4では__weak修飾子が使えないため、プロパティのweak属性も使えません。この場合は、後述のunsafe_unretainedを使いましょう。 copy __strong修飾子に対応しますが、実際にはコピーオブジェクトが代入されます。copy属性を用いたプロパティは参照先オブジェクトのオーナーとなります。 unsafe
ARC (Automatic Reference Counting) の管理対象となっているオブジェクトのキャストを行いたい場合は、つぎの 3 通りの方法で行うことができるとのことです。 単純なキャスト まず、"__bridge" をキャスト後の型指定の前につけて、キャストを行う方法です。 このとき、変換元の型が retain 可能なポインターであれば変換先はそうでない型を、変換元の型が retain できないポインターであれば変換先は retain できる型を、指定する感じに使うとのことでした。 このキャストによって、制御レベルが変更されたりとか、retain されたりといったことはないようです。 retain を伴うキャスト つぎに、"__bridge_retained" をキャスト後の型指定の前につけて、キャストを行う方法です。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く