iOSDC 2018 1 日目参加してきました

今日は iOSDC2018 に参加してきたので 2608 年ぶりぐらいにブログ書いてみようと思います。

久しぶりなので気分もあらたに Blogger からはてなブログに引っ越してみます!

~~ †††† 漆黒の魔法 Objecitve-C Runtime API †††† ~~ @_bannzai_

speakerdeck.com

Objective-C の黒魔法が 3 つ紹介された。

  1. Associative References
    動的にプロパティを生やす。
  2. Method Swizzling
    実行時に既存のメソッドの実装を別のものにすり替える。
  3. Enumeration Mutation Handler
    Objective-C の範囲 for 分の実装に使われる内部関数の objc_enumerationMutation を使ってなんかするみたいだけどよくわからなかった...

Method Swizzling は個人的にも使ったことあったけど、Associative Refrences は知らなかった。Enumeration Mutation Handler は明日、@_bannzai_さん見つけてきいてみよー

MicroViewControllerで無限にスケールするiOS開発 @tarunon

www.icloud.com

View の集まりとして画面を作るのでなく、子 ViewController の集まりとして画面を作ることで、

  • 開発者の数が倍以上になっても対応できた
  • 開発者あたりの開発速度が倍以上になった
  • View のパフォーマンスが 3 倍になった
  • ViewController のコードサイズは 500 行以下になった

というお話。ちょっとすごすぎて理解が追いつかなかった。早くも今年のベストトークの予感。サンプルコードリポジトリが公開されているのであとで見てみよう。

github.com

Swift Compilerの最適化入門 - AllocBoxToStack編 @kitasuke

www.slideshare.net

Swift の中間コード(SIL)レベルの最適化で、ヒープオブジェクトをスタックに割り当てたり、スタック変数をレジスタに割り当てたりするお話。これもちょっと理解が追いつかなかった...

コンパイラから紐解くSwift method dispatch @kateinoigakukun

speakerdeck.com

引き続きコンパイラネタ。クラスやプロトコルやオーバーライドが絡んだときにコンパイラはどうやって呼び出すメソッドを決定しているか?というお話。三択クイズが出たけど答えは Debug ビルドと Release ビルド結果が異なるという未定義な動作の世界に踏み込んでいる感じで全員不正解。

なんと発表者は高校生だったけど、おっさんまたも理解が追いつかずそろそろ涙目。

フロントエンドエンジニアからみたiOS開発 @ohayou_kenchan

speakerdeck.com

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

speakerdeck.com

  • フォントとは組版とは
  • いろいろな言語と組版
  • 印刷物を作る

というお話。@S_Shimotori_pubさんは話が上手でゆるーく楽しく聞かせていただいた。仕事やったことのあるアラビア語対応の話はそうそうwwとニヤニヤしながら聞いてました。ごめんなさい🙇️

タイ語の Tall Scirpt というものは知らなかったので勉強になりました。

Swiftの型システムに入門する - lib/Semaの歩き方@ukitaka_

speakerdeck.com

もうひとつコンパイラのお話。
言語処理系...好き😳

  • Swiftの型システムの特徴を知る
  • Swiftの型推論とそのデバッグ方法を知る
  • Swiftの型システムの実装を読む
  • Swiftの型システムの理論を知る

というお話。Swift の型推論がどのように動いているのかという話は面白かった。

この分野のガチ勢はみんな読んでいるらしい『型システム入門(TaPL)』と挫折したら読んでおく本が紹介された。

f:id:yamoridon:20180901014401p:plain

勢い余って帰りに渋谷のジュンク堂で買って来た😤

f:id:yamoridon:20180901015849j:plain

iOS×React Nativeのハイブリッド開発現場から伝えたい事 @hotchemi

speakerdeck.com

既存のアプリの一部の画面だけを ReactNative で作るハイブリッド開発のお話。僕も同じようなことをやったことがあったので、

  • iOS アプリも Android アプリも一つのリポジトリにまとめた。
  • TypeScript をつかった。
  • Android は苦しくてやめた。
  • Redux を使いつつネイティブ側とデータを共有する方法。

はなるほどなーと思った。

おまけ

会場の Wifi を運営しているネットワークチームによる LAN ケーブル制作体験コーナーがあって初めてつくった!

f:id:yamoridon:20180901020045j:plain

さて、明日は何聞きに行こ?