iOS

ARKitによる自分の位置判定

iOS

これはARKit Advent Calendarの17日目の記事です。(遅れてすみません) ARKitでは、空間にある平面などを判定できます。 同時に、自分が動いた時に自分の位置もわかるので、その位置をとってみましょう。 ARKit まずは、XcodeでARKitのサンプルアプリを作り…

iOSDCチートシート

iOS

これはiOSDC Advent Calendarの12日目の記事です。 今年のiOSDCで配ったチートシートのお話です。 iOSDC チートシート 今年の9月に開催されたiOSDCでは、スポンサー(企業スポンサー、個人スポンサー)のみなさまに何点かノベルティーグッズを配ったんです…

SwiftにおけるAssertとFatalError

iOS

これはSwift Advent Calendar 2017の10日目の記事です。 assertはSwiftでコードを書く時の基本的なデバッグ機能です。 いろいろな会社のiOSプロジェクトを拝見していますが、assertを有効につかっているプロジェクトは意外と少ない印象なんですよね。 書く癖…

iOS11で変わったロケール

iOS

これはiOSアドベントカレンダーの2日目の記事です。 毎年アドベントカレンダーでは、カレンダーに関係あることを書くことにしています。 今回はiOS11で仕様変更があったロケールについて。 ロケールとは iPhoneの設定に、「言語と地域」という項目がありま…

iOSDC 2017と個人的なファミリーデー

iOS

去年に引き続き、今年も iOSDC 2017 にスタッフ/スピーカーとして参加しました! チートシート 今回はスポンサーノベルティにこんなしたじきがはいっています。 今までに発売されたApple製のデバイスで、アプリインストール可能のものをすべて網羅したデバイ…

ISO8601とUnix Timestamp

これはiOS Advent Calendar 2016の12/2の記事です。 アドベントカレンダーはDate/Calendarネタを描こうと思っているので、今年はいろいろな現場で必ず目にする日付フォーマットのバグについて。 ある程度iOSをやっている方には当たり前の話なんですが、なぜ…

iOSDC 2016にスタッフとして参加しました

iOS

土曜日に、練馬ココネリホールで開催された国内初の iOS Developerの祭典、iOS Developers Conferenceにスタッフとして参加しました。 (こちらはスタッフの@motokieeさんが作ったオープニングビデオ。カッコイイ……。) スタッフ業務 私の担当は、受付や入り…

I love you. I know.

iOS

これはVOYAGE GROUP Advent Calendar 2015の13日目の記事です。 今日はiPhoneを使った音声認識の話です。 スターウォーズ! 今月の18日、いよいよスターウォーズの最新作、「フォースの覚醒」が公開されますね。 前作から10年、懐かしいキャラにも会えるし、…

Swift 2.0 の新しいOption、OptionSetType

Swift 2.0では、Optionの型が変わりました。 あたらしく導入された OptionSetType についてちょっと見てみました。 OptionSetTypeとは 最近、Swift1.2の既存プロジェクトのSwift2.0対応を少しずつ始めたんですが、UIUserNotificationType の option 設定でコ…

iOS9のコンテンツブロッカー

WWDCで新しいiOS9の機能がいろいろと発表されましたが、Safariでの表示項目を制限することが 「コンテンツブロッカー」機能については、Web業界の方はちょっと気になるのではないでしょうか。 さっそく調べてみました。 (なお、この記事はAppleが一般に公開…

WWDC 2015 に参加しました

今年は久しぶりにWWDCに当選しました。 前回参加したのが2010年だったので、5年ぶりでした。 今年のWWDC 久しぶりの参加になったんですが、5年前より会場の快適さがかなりアップしていました。 いたるところに座りごこちのいいソファや、電源と有線LANが完…

Swift でUIWebViewにUserAgentを設定する

SwiftでUIWebViewにuseragentを設定する場合の処理です。 (Objective-Cと同じですが……。) 独自のUserAgentを設定する アプリ独自のUserAgentを設定する場合にはこちら。 let originalUserAgent = "Toyship Original Application" let agentDict = ["UserAg…

Swift コードをコンパイルする

Swift で作ったコードはclangでコンパイルして実行ファイルにすることができます。 コマンドラインツールなどを作成したりするのにいいかもしれません。 Swiftのコンパイル Swiftのコンパイルコマンドは swiftc です。 デフォルトの swiftc は /user/bin に…

日付が変わったときの処理

iOS

カレンダーなどのアプリで、画面に今日の日付などを表示している場合、真夜中に日付が変わった瞬間にUI表示を変えたりなどの処理をしたいことがありますよね。 そのためだけにNSTimerなどを使ってタイマー処理をするのも面倒くさいので、たいていはスルーし…

Swift の Embedded Framework と namespace

iOS

Embedded Frameworkを、Swiftで作ると、Objective-Cで作るときとは違った利点がいろいろと見えてきました。 SwiftによるEmbedded Framework Embedded Framework in Objective-Cのエントリで、Objective-CによるEmbedded Frameworkを実装してみましたが、Swif…

Embedded Framework を iOS7 以下で使うには

iOS

iOS8で導入されたEmbedded Framework ですが、iOS7以下で使うにはどうすればいいでしょうか。 iOS7でもEmbedded Frameworkがしたい Objective-C で Embedded Frameworkで実装したEmbedded Frameworkは、iOS8からしか使えません。 でもまだまだiOS7対応も必要…

Objective-C で Embedded Framework

iOS

iOS8から使えるようになったEmbedded Framework。 その使い方と、iOS7 でEmbedded Frameworkを使う方法を調べてみました。 Embedded Frameworkとは Embedded Framworkは、複数のプロセスから利用できる共通ライブラリで、iOSでは、OS8のApp Extensionと同時…

WatchKit で Table を表示する

これはWatchKit Advent Calendar 2014の19日目の記事です。 WatchKitではいろいろなUIコントロールが表示できますが、ここではTableを表示してみましょう。 テーブル用クラスの作成 WatchKitでテーブルを表示する場合は、UITableViewではなくWKInterfaceTabl…

Objective-C オブジェクト間通信のパターン

iOS

この記事は、Tech Women Advent Calendar 2014の17日目の記事です。 基本ですが、あらためてiOS開発でのオブジェクト間通信についてまとめてみました。 オブジェクト間通信 Objective-Cでソースコードを書いているときに、オブジェクト同士で通信を行う必要…

バスボタンでビルドしてみました

この記事はVOYAGE GROUP エンジニアブログ Advent Calendar 2014の13日目の記事です。 ちょっと前に、業務用のバスボタンを買ったので、バスボタンを押してiPhoneアプリのビルドができるシステムをつくってみました。 ビルドだけじゃなくて、バスボタンで起…

新しいTestFlightでExternal Test

iOS

新しいTestFlightを使ってみましたでApple Storeのエクスターナルテストのための審査をSubmitしましたが、無事終わりました。 エクスターナルテスト審査 エクスターナルテストを実施するには、Appleのテスト用審査を申し込まないといけません。 その審査が実…

新しいTestFlightを使ってみました

iOS

TestFlightがAppleに買収されて iTunes Connectから使えるようになりました。 さっそく使ってみましたが、いままでのTestFlightにくらべて予想以上に楽になっています。 すべてのDeveloperがいますぐ使い始めるべきレベルなので、ぜひつかってみることをおす…

App Groupでアプリ間データ共有

iOS

そろそろiOS8の正式なリリースも間近になってきましたね。 iOS8のリリースと同時に、新しいアプリ間情報共有機能、 App Groupが使えるようになります。 iOS8 の新機能、App Extension にも必須な機能なので、使い方をちょっとまとめてみました。 App Groupと…

iOSでURLエンコード

iOS

iOSでネットワークプログラミングをする上でかかせない、URLエンコーディング。 なんだか気になる動作もあるので、ちょっとまとめてみました。 URLエンコードとは URLエンコード(URL encode)とは、文字列をhttp://www.apple.com/からhttp%3A%2F%2Fwww.apple.…

App Extension

iOS

CookpadのWWDC2014 振り返り勉強会でApp Extensionについて発表させていただきました。 App Extension App Extensionは個人的にiOS8で一番お気に入りの機能ですが、技術的にはいろいろと深い部分があります。 App Extensionといっても、いろいろな種類のモジ…

NSURLConnectionをサブスレッドで使用する

iOS

iOS7でNSURLSessionがでて、少し陰の薄くなったNSURLConnectionですが、まだまだネットワーク処理の中心としてよく使われていますよね。 NSURLConnectionの使い方は比較的簡単ですが、サブスレッドからよぶときには少し注意が必要なのでまとめてみました。 …

Objective-CのSingleton、その歴史的経緯など

Objective-Cのシングルトンって、昔はcopyWithZoneとかもあって、無駄に面倒だったような記憶があるんだけど、いつの間にか簡単になったんだっけ……?と思ってたので、ちょっと整理してみました。 ARCとGCDが出る前からシングルトンを実装してた人にはちょっ…

Xcode の Quick Look で艦娘をデバッグする

iOS

Xcode 5から導入された、デバッグ時の Quick Look機能、デバッグ時にオブジェクトの情報をグラフィカルに見ることができてとっても便利ですよね。 Xcode 5.1からは、システムクラスに加えて、カスタムクラスのQuick Look機能も使えるようになっているので、…

複数の App ID Prefixとキーチェーンについて

iOS

先日、Appleから「複数のApp ID Prefixについて」(Technical Note TN2311:Managing Multiple App ID Prefixes)というTechnical Noteが出ていました。 ふだんあまり意識することのない App ID Prefixですが、使い方を間違うとキーチェーンに保存されたデー…

NSCalendar on iOS Advent Calendar 2013

iOS

この投稿は iOS Advent Calendar 2013 - Qiita の25日目の記事です。 今年の iOS Advent Calendarの最後の日に、NSCalendarをとりあげてみますね。 iOSとMacOSXで暦を司る、あまり目立たないですが重要なクラスです。 NSDate さて、NSCalendarの説明をするに…