アメリカにきてから連日何かしらお酒を飲んでいるせいか、体調が最後まで持つか心配なかっくん(@fromkk)です。
Keynoteに引き続き2日目〜3日目で見たセッションのまとめをしたいと思います。
2日目
Automatic Strong Passwords and Security Code AutoFill
iOS 11より搭載されたAutoFillがiOS 12より更に進化しました。
OSがより強力なパスワードを生成する様になりました。
もはや人間が覚えられる様な物では無いのですが、そこはiCloud Keychainが覚えてくれるので忘れる心配は要らない模様。
ログインする際はFace ID等で認証した後に利用するので他人に利用される心配もありません。
作成されるパスワードもある程度のフォーマットを指定する事が可能になっており、バリデーション用のウェブページも用意されています。
また、SMS認証などで利用されるナンバートークンも自動的に補間される機能が搭載されました。
Introducing Create ML
新しいmacOS Mojave上のXcode Playgroundから利用出来る機能です。
これまで機械学習のモデルはTensorFlowやKesraなどのツールで学習しモデルを生成していました。
今後は画像の分類、文章の分類、表形式のデータの値の推定のモデルの生成がXcodeのみで可能になります。
たった数行のコードで .mlmodel
が作成出来るのは夢の様で様々なアプリで機械学習が利用されるきっかけとなりそうです。
3日目
What's New in Testing
コードカバレッジを計測するツールが進化しました。
カバレッジを取得するターゲットが指定出来る様になりました。
これまでも -destination
を複数してしていれば複数端末で同時にUIテストの実行が可能でしたが同じ端末では不可能でした。
Xcode 10より同じ端末で複数のテストが実行可能なParallel testingが追加されました。
Scheme編集->テストターゲットOptions->Execute in Parallel on Simulatorで複数シミュレーターで同時にテストが実行出来る #wwdc #wwd18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
xcodebuildの新しいオプション-parallel-testing-worker-count nで同時実行数が制限出来る-parallel-testing-enabled YES | NOでパラレル実行可能を制御出来る #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
What’s New in User Notifications
リッチな通知はiOS 10から実装されていましたが、更にカスタマイズが可能になりました。
通知のアクションのハンドリングが可能になったり、通知画面上に表示したボタンに反応する事が出来る様になりました。
それに伴いユーザーアクションによって画面が閉じられる必要があるので dismissNotificationContentExtension()
が実装されました。
また、通知をスワイプして、「Manage」を表示すれば通知を管理する画面が表示される様になりました。
ユーザーにとっては通知を簡単に管理する事が出来る様になった反面、通知が簡単にOFF出来る様になるので、通知を大量に送信するアプリは注意が必要かもしれません。
Grouped NotificationはUserNotificationにthreadIdentifierを指定するとの事。無い場合は同じアプリでまとめられる。リモート通知の場合はthread-idをapsに指定する。 #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
UNNotificationExtensionUserInteractionEnabledを有効にすれば通知上でユーザーのアクションを受け付ける事が出来る #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
通知をスワイプして、「Manage」を表示すれば通知を管理する画面が表示される。あまり簡単に通知をOFFにされても困るんだよなぁ😅 #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
Do Not Disturb中でも健康や家庭のセキュリティ、公共的な緊急性の高い通知は無視して表示する事が出来る様になった。notificationCenter.requestAuthozrization(options: [.criticalAlert]) #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
High Performance Auto Layout
UITableViewやUICollectionViewのセル等頻繁にAutoLayoutが計算される様な時に、updateConstraints()
内で NSLayoutConstraint.deactivate([...])
と NSLayoutConstraint.activate([...])
を繰り返すのはパフォーマンスが悪い。
[NSLayoutConstraint]
は nil
の場合に作成し、それ以降は保持しておいたものを使い回すのが良い。
固定化出来るものは固定して、変更の必要があるものだけ変更するのが良い。
まだBetaだがInstrumentsにAutolayout Performanceが追加される。
updateConstraints()で毎回NSLayoutConstraintを作り直すのはパフォーマンス的に良く無い。[NSLayoutConstraint]がnilのときだけセットする方が良い。 #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
InstrumentsにLayoutの時間が掛かってるところが分かる機能が追加される #wwdc #wwdc18 #wwdc2018
— かっくん@WWDC18現地 (@fromkk) 2018年6月6日
まとめ
他にもいくつか拝見したんですが、理解が及ばなかったので省略させていただきました。
UIKitのラボにも参加しましたが解決に至らなかったのでもう少し自力で頑張ろうと思います(笑)
本日のランチセッションでWWDCも折り返しだとアナウンスがあり少し寂しい気持ちになりましたが、残り2日精一杯楽しみながら学んできたいと思います。
積極採用中!!
子育て家族アプリFamm、カップル専用アプリPairyを運営するTimers inc. では、現在エンジニアを積極採用中! 急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください! 採用HP : http://timers-inc.com/engineerings