VPN接続が必要なプロキシサーバへiOSデバイスから接続する

developer.apple.com

VPNを経由してHTTP(S)プロキシ・サーバに接続する方法を調査した。

構成プロファイルの vpn.proxies ペイロードを使用する。 ここでは保護されたネットワーク内にあるプロキシサーバ 192.0.2.1 を経由するサンプルを示す。

<key>Proxies</key>
            <dict>
                <key>ProxyAutoConfigEnable</key>
                <integer>0</integer>
                <key>HTTPEnable</key>
                <integer>1</integer>
                <key>HTTPProxy</key>
                <string>192.0.2.1</string>
                <key>HTTPPort</key>
                <integer>3128</integer>
                <key>HTTPSEnable</key>
                <integer>1</integer>
                <key>HTTPSProxy</key>
                <string>192.0.2.1</string>
                <key>HTTPSPort</key>
                <integer>3128</integer>
 </dict>

iOSDC Japan 2018で発表しました

iosdc.jp

iOSDC Japan 2018 でアプリをデモする時のテクニックについて、話しました。

speakerdeck.com

Twitterでのフィードバック(その他にも多数いただきました、ありがとうございます!)

所感

当日まではこんなニッチな発表枠、ギャラリー埋まるのかなと心配しましたが、杞憂に終わって安心しています。 1月からiOSアプリ開発はメインではなくなったのですが、来年以降もお祭りに参加できるよう、インプット・アウトプットを継続していきたい!

iOSDC Japan 2017で発表しました。

iOSDC Japan 2017でApp Transport Securityとローカルネットワーキングについて発表しました。

speakerdeck.com

内容は次のようなものです

  • App Transport Security(以下ATS)の復習
  • ATSとローカルネットワーク内での平文通信の共存をするには
  • iOS後方互換性の問題
  • Bonjourを使う時の注意点
  • SecurityやPrivacyのセッションに参加しよう

というような内容です。

セッションの時間が少し残りそうだったので、会場でATSをオンにしている人がどのくらいいるかアンケートを取ってみたところ、まだオフのひとと半々といった感じでした。

カンファレンスについて 前回の運営のクオリティも高かったのですが、今回はさらに磨きがかけられたようで、非常に高いクオリティだったと思います。スタッフの皆様に感謝します。

前回のフィードバックとして学生枠があるといいね、という件も、会場の学生無料枠や、スカラシップスポンサー制度などが取り入れられていて嬉しく思いました。

来年の開催にも期待します!!!!

iOSDC Japan 2016で発表しました

iOSDC Japan 2016 でアクセサリを使用するiOSアプリ開発について発表しました。

speakerdeck.com

内容は主に次のようなものです。

  • アクセサリ種類増えてきていろいろなものがiOSバイスとつながるようになってきた。Pokemon Go Plusでアクセサリを使うアプリがいよいよマスにもヒットしそう。
  • アクセサリの接続方法やフレームワークiOSの進化に合わせて種類が増えていて、アクセサリを使うアプリ開発をする場合は、どのフレームワークを使っていくのか、慎重に検討する必要がある。
  • App Store ReviewやiOSのバグなど、つきもののトラブル付き合っていくにはどうすればいいか、実例を紹介。

カンファレンスについて 第1回とは思えないレベルの高い運営に驚きました。発表の機会を用意していただいた、スタッフの皆さまに感謝します。ありがとうございました。

次回は是非、若い人たちの参加を期待したいです。コミュニティの若さを保つためにも、学生さんの発表や参加がたくさん見られるとうれしいですよね。開発だけでなく、教育現場でモバイルデバイスをどう使っているか?とかも聞いてみたいですね。

(自分もWWDCに学生枠で招待してもらってこの世界に入ってきたので、後に続く人たちにも同じような機会を作れるといいなと思っています!)

あと、発表時の写真、持ってる人がいればください!

「Swift+Core DataによるiOSアプリプログラミング」レビュー

「Swift+Core DataによるiOSアプリプログラミング」の読者モニターに当選したので、内容の紹介と感想について。

iOSアプリ開発の中でも難解なデータ保存のためのフレームワーク、Core Dataを使用するアプリ開発のための解説書です。

Core Dataに関する情報は数が限られていて、Objective-C時代のものがメインでした。正直もうCore Dataに関する書籍は出てこないだろうと思っていた矢先に登場したのでちょっとびっくりしました。書籍の構成としては、チュートリアル形式でCore Dataを使用したベーシックなアプリを作成しながら、フレームワークの知識を取得していく形式となっています。

最低限アプリ開発に必要なUIKitなどの基礎も触れられているので、突き放される感じがないのはよいです。Core Dataを扱った他の書籍ではこの辺りを完全に省略してしまっているものが多いので、丁寧だと感じました。

サンプルコードで使用しているSwiftのコードも、奇をてらったものではなく、鉄板のような感じで、安心して勧めることができると思います。Objective-CからSwiftに乗り換えようとしている人にも読みやすいコードだと感じます。

逆に、Swiftで取り入れられている、Protocol Extension, Value Typeを使ったプログラミングスタイルについては触れられていないので、そのような知識がほしい方には物足りないかもしれません。たとえば: Let's Play '巨大ビューコントローラをリファクタリングしよう!' with Andy Matuschak - Realm is a mobile database: a replacement for SQLite & Core Data

後半の章では最新のiOSで追加されたCore Dataの機能が登場します。非同期フェッチやiCloudとの連携など、iOSのアップデートとともに登場した新しい機能がフォローされているので、iOSの黎明期からCore Dataに触れられている方にも新しい発見があるでしょう。

おまけ

-アイロンビーズの表紙かわいい :)

iCloudの不調(解決済み)

iCloudSafariのブックマーク同期ができなくなってしまった。 現象としては、 Mac側でブックマークを編集しても編集前の状態に戻ってしまう。 iPhone側で行ったブックマークの変更がサーバに送信されない。

Appleのサポート担当の方に助けてもらい、最終的にOS再インストールまで進めたが結局問題は解決せず、エンジニアリング分門へのエスカレーションとなった。今の所同様の問題が確認できていて、修正を急いでいるとのこと。

iCloudでデータ不整合が起こると、ユーザ側から手出しが一切できなくなってしまう。バックアップを取った上でサーバ上のDBをクリアするような機能がほしい...

追記 やはりサーバ側でDBをリセットすることになった。

追記その2 対処してもらったものの、改善せず。原因はサポート側で引き続き調査中。

追記その3 OS Xを10.11.4 に更新したところ同期が復活。OS Xの不具合だったのか、アップデートのプロセスで問題あるデータが消されたのかはわからないがとりあえず解決。

Bluetooth Low Energy Advent Calendar 2015 12/24 tvOSでCoreBluetoothを使用する

qiita.com

tvOSでは従来のiOSに存在するフレームワークから多くのものが削られていますが、CoreBluetoothは残されていました。

ただし、従来のiOSで実装されていたすべての機能が使えるわけではありません。確認できた中では、以下の制限が加わっています。

  • CBCentralManagerは使えるが、CBPeripheralManagerを使うことはできない。
  • 同時に接続できるPeripheralは2台以下に制限される。
  • Background-Runnning状態でCoreBluetoothを使うことはできない。

この制限の下であれば、既存のCoreBluetoothのコードを生かして、Peripheralとのやりとりを行うことができます。 例えば、定番のハートレートモニターに接続することもできますし、iPhoneiPad上でCBPeripheralManagerを使用すれば tvOS <-> iPhoneの通信も可能です。アクセストークンを渡して認証に使用したり、続きをiPhoneで見る、のようなこともできそうです。

参考資料 https://speakerdeck.com/nolili/tvoswokuo-zhang-suru

ハートレートモニターに接続するサンプルコード https://github.com/nolili/BluetoothExampleTV