iOSDC 2018 1 日目参加してきました
今日は iOSDC2018 に参加してきたので 2608 年ぶりぐらいにブログ書いてみようと思います。
久しぶりなので気分もあらたに Blogger からはてなブログに引っ越してみます!
~~ †††† 漆黒の魔法 Objecitve-C Runtime API †††† ~~ @_bannzai_
Objective-C の黒魔法が 3 つ紹介された。
- Associative References
動的にプロパティを生やす。 - Method Swizzling
実行時に既存のメソッドの実装を別のものにすり替える。 - Enumeration Mutation Handler
Objective-C の範囲 for 分の実装に使われる内部関数の objc_enumerationMutation を使ってなんかするみたいだけどよくわからなかった...
Method Swizzling は個人的にも使ったことあったけど、Associative Refrences は知らなかった。Enumeration Mutation Handler は明日、@_bannzai_さん見つけてきいてみよー
MicroViewControllerで無限にスケールするiOS開発 @tarunon
View の集まりとして画面を作るのでなく、子 ViewController の集まりとして画面を作ることで、
- 開発者の数が倍以上になっても対応できた
- 開発者あたりの開発速度が倍以上になった
- View のパフォーマンスが 3 倍になった
- ViewController のコードサイズは 500 行以下になった
というお話。ちょっとすごすぎて理解が追いつかなかった。早くも今年のベストトークの予感。サンプルコードリポジトリが公開されているのであとで見てみよう。
Swift Compilerの最適化入門 - AllocBoxToStack編 @kitasuke
Swift の中間コード(SIL)レベルの最適化で、ヒープオブジェクトをスタックに割り当てたり、スタック変数をレジスタに割り当てたりするお話。これもちょっと理解が追いつかなかった...
コンパイラから紐解くSwift method dispatch @kateinoigakukun
引き続きコンパイラネタ。クラスやプロトコルやオーバーライドが絡んだときにコンパイラはどうやって呼び出すメソッドを決定しているか?というお話。三択クイズが出たけど答えは Debug ビルドと Release ビルド結果が異なるという未定義な動作の世界に踏み込んでいる感じで全員不正解。
なんと発表者は高校生だったけど、おっさんまたも理解が追いつかずそろそろ涙目。
フロントエンドエンジニアからみたiOS開発 @ohayou_kenchan
Web のフロントエンド開発と iOS のネイティブ開発の類似性についてのお話。
- UIViewController, React, Vue のライフライクルメソッドが似ている。
- JS も Swift も async/await が使える。(Swift はこれからだけど)
- Redux と ReSwift が似ている。
- TypeScript と Swift が似ている。
- CSS-grid-modules と Styled-components を使った CSS と AutoLayout が似ている。
フォントと組版の30分入門 @S_Shimotori_pub
というお話。@S_Shimotori_pubさんは話が上手でゆるーく楽しく聞かせていただいた。仕事やったことのあるアラビア語対応の話はそうそうwwとニヤニヤしながら聞いてました。ごめんなさい🙇️
タイ語の Tall Scirpt というものは知らなかったので勉強になりました。
Swiftの型システムに入門する - lib/Semaの歩き方@ukitaka_
もうひとつコンパイラのお話。
言語処理系...好き😳
というお話。Swift の型推論がどのように動いているのかという話は面白かった。
この分野のガチ勢はみんな読んでいるらしい『型システム入門(TaPL)』と挫折したら読んでおく本が紹介された。
勢い余って帰りに渋谷のジュンク堂で買って来た😤
iOS×React Nativeのハイブリッド開発現場から伝えたい事 @hotchemi
既存のアプリの一部の画面だけを ReactNative で作るハイブリッド開発のお話。僕も同じようなことをやったことがあったので、
- iOS アプリも Android アプリも一つのリポジトリにまとめた。
- TypeScript をつかった。
- Android は苦しくてやめた。
- Redux を使いつつネイティブ側とデータを共有する方法。
はなるほどなーと思った。
おまけ
会場の Wifi を運営しているネットワークチームによる LAN ケーブル制作体験コーナーがあって初めてつくった!
さて、明日は何聞きに行こ?