#ios8yahoo に行ってきた
行きました。
追記
Yahoo!公式の方でまとめがありましたのでリンクを貼っておきます。
スライドも全て公開されています。
iOS 8/Swift 勉強会 全セッションの資料を公開します #ios8yahoo - Yahoo! JAPAN Tech Blog
これはなに
日記です。
iOS 8/Swift エンジニア勉強会@ヤフー に行ってきたので備忘録的に発表内容を書いていこうと思います。
自分が知らなかったことを中心に書くので詳しくはヤフーでググってください。
iOS8 Overview
@hirama2 さん(Yahoo!)
- iOS7からiOS8への移行は、UX向上のための機能が主であり、すぐ対応しなきゃというものはなかったかな
- 中でも注目する機能はOSや他アプリとの連携機能、つまりApp Extentionである
- Share, Action, Today Widget, Photo Editing, Document Provider, Custom Keyboard などがある
- その他のAPIでは、WKWebView がある
- Safariと同じNitroエンジンを使ったWebViewが使えるようになった
- 以前のWebViewより描画がはやい
詳しくはヤフーでググれ
所感
- ぼくは仕事でiOS8対応がめちゃくちゃ大変だったこともあり、iOS8になって結構変わっているという印象を持っています。
- 特に回転処理が大きく変わっており(後述)、泣きながらデバッグをしました
- WKWebViewの存在は知らなかったので、WebViewを使うときは覚えておきたいです。
Xcode6 New Features
- Debugger
- viewの階層を3D表示して視覚的にデバッグができる(かっこいい)
- @ibdesignable
- コードが即時的にInterfaceBuilderに反映される(便利)
- XCTestで非同期処理のテストが簡単に書けるようになった
詳しくはヤフーでググれ
所感
- XCTestはすごく簡単に単体テストを書けるようになっていると思います。BDDが必要でない場合はわざわざQuickとか使わなくてもXCTestで十分ですよ。
- 非同期テストも書けるので結合テストもXCTestだけでいけるかも(まだためしてない)
- 詳しくはヤフーでググってほしい
ヤフオクアプリのiOS8対応
- 全体で8人日で完了(すごい)
- iOS8の問題に3人日、ウィジェット対応に5人日(だったかな、ちょっと曖昧です)
だいたい以下のような問題があり、その対応に追われたとのことです。
- 回転系:width, heightのとれる値がlandscape時に逆になった
- マージン:layoutMarginという新しいプロパティが追加されている
- iPadでカメラ撮影ができない:非同期処理をはさむとできる
- iPadで写真を選べない:同上
iOS8 Widget
bit.ly/ios8_widget
WidgetのHelloWorldからハマリポイントまで。
HomeKit
@jumbOS5 さん
BLE, Wi-Fi で家電を操作できるようになりました。
その専用の家電のためのKitがHomeKitです。
などの家電がある。
独自SDKに頼らず、気軽に開発できるようになったのでいいですね。
hueはちょっとほしい
複素数
やったぜ。
複素数をどのように実現したかの解説でした。
といったSwiftの特徴的な機能を使っており、とてもいいコードでした。
Swiftだからこそきれいに書くことができたと言っていました。たしかにマルチバイト文字が使えるから数式っぽく式が書けるのはいいですね。
let sin(α+β) = sin(α) * cos(β) + cos(α) * sin(β)
みたいな。すごい!
LT
その後はいろいろLTがありました。
@dankogai さんが swift-json を解説されていました。
個人的にJSONをパースする機会があったので使ってみましたが、JSONクラスのサブクラスを作るとnodeへのアクセスが楽にかけるので便利でした。あとは、.asNull プロパティがあるので安全に書けるという印象です。
おわりに
久しぶりに技術的な勉強会に参加できた、という感じです。
Swiftはコミットが盛んな言語でありながら、日々改良されていっている(つい先日Swift1.1が出て、Optional Valueまわりが変わってしまった)のでプルリクチャンスも多いので積極的にコミットしていきたいですね。
以上日記でした。ヤフーでググれ。