読者です 読者をやめる 読者になる 読者になる

koogawa log

iOS、Android、foursquareに関する話題

Objective-C

watchOS 2 の Watch Connectivity を使ってみた

※本記事は、 一般に公開されている情報を元に作成しています。 watchOS 2から Watch Connectivity が使えるようになりましたね。 Watch Connectivityとは (Watch Connectivity Framework Referenceより引用) The Watch Connectivity framework (WatchConne…

Apple Watchでの作業をHandoffでiPhone側に引き継ぐ

※本記事は、一般に公開されている情報を元に作成しています。 Handoffとは Handoffは、iOS 8およびOS X 10.10から追加された機能です。 Handoff Programming Guide には次のように書かれています。 Handoff is a capability introduced in iOS 8 and OS X v1…

iOS 8から位置情報を取得する方法が変わるよ

※本記事は、一般に公開されている情報を元に作成しています。 (WWDC 2014 発表資料より引用) どういうこと? iOS 8 から位置情報の取得の方法が変わるようです。今までの方法だと位置情報が取れなくなります。 iphone - iOS 8 : Location Services not wor…

iOS 8から追加されたWebKit Frameworkを使ってみる

Qiita でも公開しています。 ※本記事は、一般に公開されている情報を元に作成しています。 iOS 8から新たに WebKit Framework が追加されました。 これにより、Webページのロードプログレスがついに取得できるようになったり、JavaScriptエラーを受け取れる…

iOS 8で導入されたLocal Authenticationを使ってTouchID認証

iOS 8で導入されたLocal Authenticationを使ってTouchID認証 - Qiita Qiitaでも紹介しております。 iOS 8から追加された Local Authentication でTouchID認証を行うドキュメントが 一般にも公開 されていたのでメモ。 Local Authentication Framework Refere…

#yidev @恵比寿勉強会に参加してきたよ

今日は恵比寿にて開催された「yidev@恵比寿勉強会」に参加してきました。 (なるべく皆さんの顔が写り込まない写真を選んだつもりですが、問題があれば @koogawa までご連絡ください) yidev(横浜iPhone勉強会)の東京出張勉強会は去年の渋谷勉強会に引き続…

スマホアプリ開発勉強会 #dev.Talk @六本木で発表してきたよ

今日は、Talknoteさん主催の勉強会に参加してきました。 スマホアプリ開発勉強会〜著名開発者による脱初心者のかんどころ〜無料懇親会付き! 第1回 dev.Talk@六本木 - dev.Talk@六本木 | Doorkeeper 今回お声がけ頂いたTalknoteの小池さん、大川さんとは、以…

Objective-Cのいろいろな反復処理

本日、iOS_LTというイベントで、Objective-Cで利用できるいろいろな反復処理について発表してきました。 発表内容 例えばこんな配列と辞書があるとします。 NSArray *anArray = @[@"a", @"b", @"c"]; NSDictionary *aDictionary = @{@"key1": @"val1", @"key…

モダンなObjective-Cの書き方メモ

ナウでヤングな書き方をいっつも忘れちゃうので、自分用にメモしておきますc⌒っ゚д゚)っφ メモメモ... 配列 NSArray *array = @[@"a", @"b", @"c"]; NSMutableArray *array = [@[@"a", @"b", @"c"] mutableCopy]; NSString *string = array[0]; // "a" array[0] =…

iOSで検知できるセンサー10個をまとめたサンプル集「iSensor」を公開しました

輝度センサーやモーションセンサーなど、いろいろなセンサーを使用したサンプルコードをまとめたアプリ「iSensor」をGithubにアップしました。 koogawa/iSensor · GitHub 検知できる項目 光・音声系 輝度センサー 近接センサー シェイクジェスチャー マイク…

【Tips】iOSのペーストボード(クリップボード)を操作する

UIPasteboard を使って、文字列や画像などをコピー&ペーストする方法です。 実装方法 まずはインスタンスを生成します。 UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; コピー 文字列をペーストボードにコピーします。 [pasteboard setVal…

【Tips】iOSで歩数をカウントする

2016.4.23 追記:Swift版の記事を書きました。 blog.koogawa.com CoreMotionを使って、歩数カウントを取得する方法をメモしておきます。 実装方法 まずは「CoreMotion.framework」を追加します。 ヘッダをインポートします。 #import <CoreMotion/CoreMotion.h> インスタンスを生成し</coremotion/coremotion.h>…

【Tips】iOSでマイクの音を検知する

2016.4.17 追記:Swift版を書きました blog.koogawa.com Core Audioを使用して、マイクから音を検知する方法をメモしておきます。 実装方法 ヘッダをインポートします。 #import <AudioToolbox/AudioToolbox.h> 音声入力用のキューと監視タイマーを準備しておきます。 @interface AudioVie</audiotoolbox/audiotoolbox.h>…

【Tips】iOSで電子コンパスを使う

2016/4/2追記:Swift編はこちら blog.koogawa.com 磁力センサーを利用し、iPhoneの向きを計測する方法を解説します。 「磁北」と「真北」について 単純に「北」と言っても、「磁北(じほく)」と「真北(しんぽく)」の二種類が存在します(2つの違いについ…

【Tips】iOSでシェイクジェスチャーを検知する(Swift対応)

iPhoneのシェイクジェスチャー(振る動作)を検知する方法を説明します。 実装方法 まずは、シェイクジェスチャーを検知したいクラス*1で canBecomeFirstResponder をオーバーライドして YES を返します。これは、シェイク動作を検知するためにファーストレ…

【Tips】iOSで近接センサーを使う(Swift対応)

近接センサーとは iPhone の上の方に付いているセンサーです。 通話中、画面に顔が近付くと、近接センサーがそれを感知して画面をオフにしてくれます。これにより、通話中の誤操作を防ぐことができます。 実装方法 まずは近接センサーをオンにします。 Objec…

【Tips】iOSで輝度センサーを使う(Swift対応)

iPhoneの画面輝度(明るさ)が取得・設定できます。 画面輝度=周りの明るさなので、輝度が高ければユーザが明るい場所にいると判断することもできそうです。しかし、中には画面輝度を固定しているユーザもいるので、一概にこの基準が当てはまるとは限りませ…

foursquareのOAuth認証部分をライブラリに切り出してみた

タイトルそのまんまです。 ソースはこちら:koogawa/FoursquareOAuth 使い方 README に書いておきました。 悩んだところ 認証部分だけをライブラリとして切り出したい場合、クライアントIDとかの情報はどこで定義するのが良いんだろうなぁ。ライブラリ内で定…

foursquareが提供するネットワークライブラリFSNetworkingを使ってみた

今さらですが、foursquareが提供するネットワークライブラリ FSNetworking を使ってみました。 FSNetworking という名前から、このライブラリはてっきり foursquare の API にアクセスするための専用ライブラリだと思い込んでいたのですが、そういうわけでは…

iOS 7: Dynamic Typeに対応したUITableViewを作ってみた

前回書いた「iOS 7から追加されたDynamic Typeを使ってみた」の続編です。 新しくわかったこと 前回は「UIFontDescriptor を使う必要がある」と書きましたが、その後の調査で + (UIFont *)preferredFontForTextStyle:(NSString *)style メソッドを使えば Dyn…

iOS 7から追加されたDynamic Typeを使ってみた

iOS 7から突如、設定画面に「文字サイズを変更」が出現しました。 「Dynamic Type機能をサポートしているAppでは、下のスライダで指定したサイズでテキストが表示されます」とのことらしいですが、Dynamic Type機能をサポートするにはどうすればよいのでしょ…

あるオブジェクトが特定のプロパティを持っているか調べる方法

オブジェクト "myObject" がプロパティ名 "myProperty" を持っているか調べる例。 BOOL hasProperty = class_getProperty([myObject class], [@"myProperty" UTF8String]) != NULL; 関数class_getPropertyは、プロパティが宣言されていないとNULLを返すので…