その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

Objective-C

Core Imageを用いたリッチな画面遷移アニメーション

昨日、クラスメソッドさん主催の勉強会『iOS 9 週連続 Bootcamp!2週目』にて登壇させていただきました。 Core Image Tips & Tricks in iOS 9 from Shuichi Tsutsumi タイトルにある "Tips&Tricks" はWWDCのセッション名でもたびたび使われている用語で、Tri…

iOS / OpenCV 3.0 で画像の特徴点を検出する(AKAZE, SIFT, SURF, ORB)

局所特徴量とは / SIFT, SURF 特徴量 このスライドが超わかりやすかったです。 画像認識の初歩、SIFT,SURF特徴量 from takaya imai で、SIFT (Scale-invariant feature transform)、SURF (Speed-Upped Robust Feature) というのは、拡大縮小・回転・照明変化…

WatchKit もろもろ実機検証

Apple Watch をたまたま発売日当日ゲットできたので、いろいろと WatchKit アプリ開発に携わってきた 中で、「実機でやってみないと確信が持てないな。。」と思っていた諸々について検証してみました。 Xcodeからの実機インストール Parent App をインストー…

オープンソースになった ResearchKit の中身を見てみる

昨日、Apple が ResearchKit フレームワークのソースコードをまるっと GitHub で公開しました。 https://github.com/ResearchKit/ResearchKit ここで「おお ResearchKit!!・・・って何だっけ・・・?」ってなった方も実は多いのではないでしょうか。僕はす…

『iOS×BLE Core Bluetoothプログラミング』という本を書きました

konashi 開発者の松村礼央さんと、iOS エンジニアの堤の共著で執筆させていただいた技術書「iOS × BLE Core Bluetooth プログラミング」がついに本日発売となりました! iOS×BLE Core Bluetoothプログラミング タイトルの通り、BLEを利用したiOSアプリ開発の…

Xcode 6 時代のマルチデバイス対応 〜Size Classとベクター画像〜

とあるお仕事で、iPad をサポート(= Universal 化)してほしいという要望があり、せっかくなので iPhone 6 / 6 Plus (4.7 / 5.5 inch スクリーン)もサポートしようってことで、新しい Xcode 6 の新しい仕組みである Size Class を使って複数画面対応を行…

iOS 8 の新機能のサンプルコード集『iOS8-Sampler』を公開しました

WWDCでのアップルの発表によると、iOS 8 では4000以上もの API が追加されたとのことですが、新しいAPIはどう使うのか、実際に何がどこまでできるのか、といった具体的なところが、英語のドキュメントや動画をながめているだけだと正直あまりよくわかりませ…

【Xcode 6】delegateをセットするところで「incompatible type 'id'」なるwarningが出る件

たとえば下記のように、delegate プロトコルと、それをプロパティに持つクラスを定義し、 @protocol HogeManagerDelegate <NSObject> @end @interface HogeManager : NSObject @property (nonatomic, weak) id<HogeManagerDelegate> delegate; @end HogeViewController で下記のように `setD</hogemanagerdelegate></nsobject>…

【iOS8】App Extension の実装方法 その2:Custom Keyboard

「その1:Action」から1ヵ月以上経ってしまいましたが、「その2」として Custom Keyboard の App Extension 実装手順について書きたいと思います。 *1 。 キーボードは改善し続けてきた iOS の中でもわりと進化が止まっていた/むしろ使いづらくなるアップ…

【書評】中級者向けのUIKit解説本『UIKit徹底解説』

インプレスジャパン様より *1 献本いただきました。 UIKit徹底解説 iOSユーザーインターフェイスの開発posted with amazlet at 14.06.21西方 夏子 インプレスジャパン 売り上げランキング: 8,651Amazon.co.jpで詳細を見る 著者の西方夏子さんは、『上を目指…

【iOS8】App Extension の実装方法 その1:Action

App Extension とは? App Extension (Extensions) は、iOS 8 から導入される、新しいアプリ間連携のしくみです。 iOS では、以下の 6種類の Extension point *1を利用することができます。 Today Share Action Photo Editing Storage Provider Custom keybo…

開発者向け公開情報から見る iOS 8 の細かい新機能8つ

今まさに開催中のWWDC2014のキーノートでは、Swift、HealthKit、HomeKit、Metal、Extensions と、iOS 8 の言語レベル、新規フレームワークレベルでの大きな新機能について発表されましたが、従来フレームワークにもいろいろと有用な機能が追加されています。…

Objective-C で書いたアプリを Swift で書き換える5ステップ

iBookでSwiftの解説本出ましたが、言語自体にはそれほど興味がないので、実践的なところとして、手始めに「Objective-Cで書いた既存アプリをSwiftで書き換える」ところからやってみました。 アプリ全体、となると壮大なテーマになってしまうので、まずは App…

Core Bluetooth のラッパーライブラリ『LGBluetooth』の使い方

Core Bluetooth はそれほど規模の大きいフレームワークではないので、最初は全容を把握するためにライブラリに頼らずそのまま使ってみるのがおすすめなのですが、ペリフェラルのスキャンやコネクト時のタイムアウト処理等、結局毎回書く必要があって面倒だな…

Audio Unit 再入門

Core Audio においてもっとも低レベルに位置する Audio Unit。リアルタイムで高度なオーディオ波形処理を行いたい場合や複雑なルーティングによるオーディオ処理を実現したい場合、これを使用する必要が出てきます。 が、このフレームワーク、個人的には使用…

Facebook Paper のアニメーションエンジン「pop」のソースコードを読んでみる

先日公開されたFacebookのpop、アニメーションライブラリですよとリリース前から言われてたものの、popについて語られるときは大抵「Paperアプリのテクノロジーをオープンソース化」という枕詞がつくので、Paper風UIコンポーネント(ジェスチャーでヌルヌル…

iOSのカスタム画面遷移64種類を試せるサンプルコードを公開しました

リポジトリだけつくって、ずっと放置してた 「iOS のカスタム画面遷移ギャラリーアプリ」 にやっと手をつけて、64種類 を試せるようにして公開しました。 https://github.com/shu223/AnimatedTransitionGallery なぜつくったのか iOS 7 から UIViewControlle…

第5回、第6回 #potatotips で勉強になったことのまとめ

例のごとく、『第5回 #potatotips』『第6回 #potatotips』について @hirama2 さんの記事を読んでキャッチアップさせていただきました。 第5回 #potatotips で発表された12個のiOSのtipsをまとめる - Think Big Act Local 第6回はUIEvolution開催! #potatoti…

複数のWiFi設定を保持しIRKitにセットできるユーティリティアプリをつくりました

IRKit は基本的に家に据え置きで使うことが想定されたプロダクト設計になってますが、自分の場合はいろいろと仕事で使う場面が多く、家とコワーキングスペース、その他別の作業場所など、使う場所がコロコロ変わります。 で、IRKitは軽くて小さいのでデバイ…

UISegmentedControlで複数セグメントを選択する

UISegmentedControl は複数のセグメントの中からどれか1つを選ぶための UI なので、セグメントごとにOn/Offをトグルさせる、といった使い方はできないわけですが、見た目的にそういう挙動を期待したくなることがあります。 たとえば、TableViewやCollectionV…

IB上でカスタムフォントを選択してプレビューできるXcodeプラグイン『MoarFonts』

iOSでカスタムフォントを使う場合、いままで(自分の場合)は UILabelやUIButtonのサブクラスを作成(内部でfontプロパティをカスタムフォントで差し替える) IB 上で UILabel オブジェクトを置いて、"Custom Class" に 1 で作成したクラスを指定 IB 上でフ…

第3回 #potatotips で勉強になったことのまとめ

だいぶ乗り遅れましたが、『第3回 potatotips』の資料を一通り拝見しました。 第3回はヤフー開催! #potatotips で発表されたiOSのtipsまとめ - Think Big Act Local どのTipsも勉強になったのですが、とくにメモっておきたいと思ったことをメモっておきま…

Core Bluetooth / BLEで音声データをやりとりする

以前書いた2つの記事でわかったことは、BLEは少量データ/低頻度での用途に特化することで省電力を実現した規格なので、音声データをやり取りするような用途にはそもそも向かない、ということでした。 http://d.hatena.ne.jp/shu223/20140109/1389216052 ht…

konashiをSDKなしで使う

konashiは親切にもドキュメントでサービス(Service)やキャラクタリスティック(Characteristic)の仕様を公開してくれているので、 konashi - Documents オフィシャルに提供されている iOS SDK を使わなくても、Core Bluetoothから直接接続・通信すること…

OpenEars 1.6で音声認識を行う

フリーのiOS向け音声認識/音声合成ライブラリ『OpenEars』について半年ほど前に記事を書いたのですが、 http://d.hatena.ne.jp/shu223/20130810/1376105883 このときのバージョンは1.3.6でしたが、2014年1月現在の最新バージョンは1.64となっています。 で…

【iOS7】MFMessageComposeViewController の宛先フィールドが真っ黒になる件の対処法

iOS7で、MFMessageComposeViewController を表示すると、次のように宛先(Recipients)フィールドが真っ黒になって表示される件の対処法のメモ。 これ、UINavigationController 管理下にある UIViewController から MFMessage〜 を presentViewController:an…

Twitter APIでコードいじってないのに403エラーが出るようになった件

SLRequest 使って直接 Twitter API をたたいてる機能が、コードいじってないのにエラーになるようになったので、調べてみると、NSJSONSerialization でエラーが出ていました。 Twitter API からのレスポンスに何か変更あったのかな、と typedef void(^SLRequ…

家電を自由に操作するiOSアプリがつくれる『IRKit』

カヤック時代の恩師 maaash 氏 *1 が、IRKitという新デバイスを個人で開発(!)して、本日よりAmazonで販売を開始しました。 IRKitposted with amazlet at 14.01.14maaash.jp Amazon.co.jpで詳細を見る このIRKitをつかうと、家電を操作するiOSアプリを好き…

【iOS7】MapKitで移動手段(徒歩 or 車)を指定して経路探索する

iOS7から使えるようになった MKDirections, MKDirectionsResponse, MKPolylineRenderer 等を用いて経路探索と地図上への描画を行う方法は、iOS7 Samplerに入っているサンプルのとおりなのでここでは割愛しますが、 http://d.hatena.ne.jp/shu223/20130924/13…

12月に書いた全40記事のまとめと2014年の抱負

今月はたくさんブログを書いたので、ジャンル別にまとめます(まだ12/24なので、もし年内に記事書いたら追記します)。 人気記事(20ブックマーク以上)に☆マークを、とくに人気でもないけど埋もれるには惜しい記事には★マークを付けました。 画像/動画/音…