iOSDC 2019 に参加してきました

2.5 日間にわたって開催されていた iOSDC 2019 が終了しました。正確には、今はまだこのブログを書いている途中なので終了ではないですが(“ブログを書くまでが iOSDC”)。

私自身の登壇に関しては、前回のエントリ iOSDC 2019 に Mac の環境構築に関する内容で登壇してきました をぜひご覧ください。

ここでは、それ以外について振り返りたいと思います。

公式サイト、ハッシュタグなど

イベント全体について

もちろん、最高のスタッフで全体的に素晴らしかったです! が、いくつかピックアップします。

良かったこと

公式アプリ

  • アプリ自体も良かったですし、フィードバックを素早く反映されていてすごいなと思いました
  • 具体的には、練習会のときに「スピーカーだけじゃなくて、スタッフの方の Twitter リンクはないのですか?」とお伝えしたら直後のリリースで対応されていました!

ネットワーク

  • 毎年改善が目覚ましいです
  • ごく短時間、繋がりにくいのと WiFi の先でインターネットに接続できないこともありましたが、ほぼ問題なく接続できていました
    • 1,000 人越えのしかもコミュニティベースのイベントで、これは本当にすごいなと思います
  • Aruba の最新の機器をこのカンファレンスで(たぶん)国内初の利用とか、気合入ってますね!

映像技術

  • 登壇者のスライドとそこから切り替えてデモ実施時の映像、登壇者の映像をセッションタイトル付きの枠にその場で合成して配信してました
  • また、スライドの縦横比によって即座に切り替えたりも
  • ボーッとしてると当たり前のように思えますが、冷静に考えてとてもすごい!

スピーカーディナーでの 1min ピッチ

  • 文章からだけじゃなくて、動画でトークの内容を事前に宣伝する試みは面白いなと思いました
  • スピーカーの立場としても、これを行うことで話す練習にもなるし、考えをまとめるいい機会になりました

ルーキーズ LT 練習会

  • Twitter や別のエントリで何度も書いてますが、これは練習という意味だけでなく最高でした!
  • 練習会の参加者(スピーカーだけじゃなくてスタッフの皆さん)は、顔を合わせるたびに話が盛り上がる感じになってました
  • どなたかがツイートしていましたが、この “文化祭” みたいな感じがすごくいいなーと思いました
  • この練習会は、次に採択されてももう二度と参加できないのが寂しいです😢

座席予約

  • 個人サポーターおよびジョーカーチケットを持ってる人が、あらかじめ聞きたいセッションの席を予約できるシステムです
  • 人気のセッションは前のセッションを諦めて並ぶ必要があったりしたけど、それを(ある程度)解消できます
  • 私は並ぶのが苦手なタイプなので、これはありがたかったです!

オープニングパーティ、茶会、懇親会

  • 交流を測る場としては同じだけど、それぞれコンセプトが違っていて楽しかったです
    • オープニングパーティは話す、というよりもみんなで踊って楽しむ(音量大きめ)
    • 茶会は “ノンアルコールがマジョリティ”。着席でカテゴリ別のテーブルや、ボードゲームなどもあり
    • 懇親会は立食で、いわゆる普通の懇親会
  • 多くのカンファレンスは最終日の懇親会のみだけなので都合がつかないこともあるけど、複数あると参加できる可能性が増えていいですね

もっと良くできるかも

iOSDC チャレンジ

  • これ自体は、ゲーム性があってとても楽しいものでした
  • トークンを探すために、多くのスポンサーブースにも自然と足が向くという、よく考えられた仕組みです
    • 2017 年の、スポンサーロゴ缶バッジと近いですね
  • が、例年の自分の行動と照らし合わせてみると、いつもであれば聞いたセッションのフィードバックをしていた時間を、トークン探しに費やしていました
  • そのため、聞いてすぐにフィードバックが送れず、ほとんどは全日程が終わった後に書くことになりました
  • そこは、どちらを優先するかの参加者の問題なので、私の考え方次第ですね

セッションのバランス

  • これも感じ方次第なのですが、 iOS やその周辺技術以外のトークが比較的固まっている時間帯がありました
    • 最終日 LT の後半
  • 全体からすると割合はそこまで多くなかったと思うのですが、印象的にそう見えてしまった感じがします
  • でも、トークの題材を限定しすぎるよりも自分の知らなかったいろんな内容を知るのは楽しいです!

茶会の流動性

  • 茶会は基本、着席でテーブルを囲んで話すスタイルでした
  • そのため、人の流動性は少なく、多くの人との交流という点ではちょっともったいなかったです
    • 意図して動かないというわけではなくて、座ってるとじっくり話し込んじゃって気付いたら時間が経過している
  • どなたか言ってましたが、スタッフが途中でアナウンスをしてみてもいいのかなと思いました

名札のプロフィール QR

  • 参加者同士のアカウント交換しやすいように、名札に fortee のアカウント情報へアクセスする QR コードが付いていました
  • これはすごく便利!だったのですが、私は活用できていませんでした(活用したつもりになっていました)
  • スピーカー情報を登録していたので、それが表示されるものと思っていたのですが、それとは別に入力が必要でした
  • それに気付いたのが終盤だったので、私の QR コードを読み込んでくださっていた方々は無を見ていたことになります…
  • スピーカーに対して、「スピーカー情報だけ入力してもダメだよ」とのアナウンスが事前にあると良かったかも知れません

次回への抱負

  • 今回の私のトークは「試行錯誤してる」状態で終わってしまいました
  • 引き続き試すので、そこで得られた知見などをまたお話ししたいなと思ってます
  • 今回は参加できなかった、企業スポンサーとしてもまた帰って来るために組織もなんとかしたい…

参加したセッションについての一言感想

たくさん感想はあるのですが、ものすごい量になりそうなのでそれぞれ一言だけ感想を書きます。

day 0 - 前夜祭

普通に書くと即メモリーリーク!こんなに大変だけど俺はXamarin.iOSを使い続けるぜ!

  • Xamarin.iOS は、何だかんだ言っても考慮することが多くてすっごく大変。でも技術や探究が好きな人には最高に楽しめそう

day 1

めくるめくシェーダアートの世界

  • 難しそうなイメージがあったけど、簡単な処理であればすぐにでも試すことができそう。記憶の彼方にある(もうないかも)行列などを思い出すきっかけになる気がします

ランチセッション(ランチスポンサー: CREW 様)

  • ユーザからの 5 段階評価は基準がブレるので難しいのはすごく納得。「こんなことがあったら 4」みたいに、例示をするのは確かに良さそう

Swiftクリーンコードアドベンチャー ~日々の苦悩を乗り越え、確かな選択をするために~

  • 丁寧な例示があったので、まずはなぞってやってみたい。 Swift では全然ジェネリクスを活用できてないので、それもキャッチアップしつつかな

画像処理における、UIImageとCGImageとCIImageの効果的な使い分け

  • UIImage しか使ってこなかった、かつカメラ機能なんていつ実装したかな勢なので、またやってみたい。リサイズは絶対必要になるし、そのときは今回の知見が役立ちそう

iOSアプリのリジェクトリスクを早期に発見するための取り組み

  • ipa ファイルの中身を詳しく見たことはなかったので、そこまでいろいろ情報が取れるとは思ってなかった。しかもそれをもとにチェックツールを作ってしまうとは。これは欲しい!

LT - Track A

日本のサマータイムに苦しめられた話
  • サマータイム実施してた年の特定日時だけ特別対応が必要とか、すごく大変。これって、定常的にサマータイムやってる国の情報だったら問題ないのかな?
Property Delegatesがもたらす新しいSwiftプログラミング
  • この秋までに理解が必須な、新しい言語仕様。だけど理解が追いついてない。サンプルに挙げて頂いたコードを読み直そう
LLDBデバッガで不具合の原因を特定して開発速度を上げよう
  • po しか使ってなかった人のための技術。 LLDB のコマンド、いろいろ使おうと思いつつ今に至るので、これをきっかけにまずは発表にあった v とか使ってみよう
Core MLで実現する爆速のARサイズ計測
  • サイズ計測の精度を上げるのが大変そうだけど、それができたら本当に使いやすそう。撮影条件さえ整えば、このままでも実用に耐えられそう。こうやって実際に役立つ場面があると、すごく試したくなります
1ヶ月半でプッシュ通知許諾率を17%から40%にあげた話
  • まさに試行錯誤って感じでした。やっぱり、シンプルな方法はストレートに効いてくるのがわかりました
もし文系卒の女子エンジニアが 5年もののiOSアプリにユニットテストを導入しようとしたら
  • 最初から壮大な夢を描いて完璧を求めるんじゃなくて、できるところからやることの重要さがよく伝わりました。私も、できるところからやろう
AR Quick Lookを家具ECサイトに導入した話
  • AR Quick Look は全く使ったことがなかったけど、意外と簡単に使えそう。やっぱり、ブラウザで AR ってユーザにとっては気軽だしいいよね!
個人開発のアプリが輝くために
  • アプリそのものが良くても、検索にヒットしないともったいない。その後の茶会で、実際にそういう例に遭遇してなるほど!と思いました
GitLabRunnerで始める自前CI環境
  • 弊社も GitLab 立ててる(Mac ではないけど)ので、やってみたくなった。トレーニングで使わなくなった、ちょっと古い Mac で試してみようかな?
Swiftでつくるファミコンエミュレータのススメ
  • Swift には unsigned があるから、エミュレータに適しているらしいです。それは俄然興味が湧きます。 Swift の夢が広がりますね

day 2

iOSアプリに「意識」は宿るのか?ディープラーニングの先にある人工知能(AI)

  • 脳そのものについての説明が多く、生物学好きな私にはとても興味深い内容でした。 AI を理解するには、やはりそこまで学ぶ必要があるんですね

今こそwatchOS

  • 通知の確認と Suica 以外、なかなか活用されない(あとは時間を見る) Apple Watch ですが、思ったよりできることが増えてました。あの画面上で、 3D モデルがグリグリ動くのはテンション上がりますね!

多言語対応と戦う 2019年版

  • 多言語対応、いつも「どこまで分解するか」悩むけど、その辺りの指針もあっていい感じでした。でも実は多言語対応とかしてないので、そろそろやってみるかな

LT - Track A + B

俺たちのARKitでめちゃめちゃ表情豊かなVTuber向け表情トラッカーを作るぞ
  • 顔のトラッキングで、数十個もの特徴点?があるのは知りませんでした。この辺の技術も、一度試しておきたいです
iOS 12以下でDark modeに対応した地獄の話
  • Dark Mode のことを考えているか?と言われたら No なので、その対応を考えさせられる内容でした。 Dark Mode にも対応した Type は使いやすいエディタなのでみんな使おう!
Swiftのスタック変数とCPUレジスタの関係を読み解いた
  • やっぱり低レイヤーの処理って、知っておいた方がいいのかな?とても楽しそうにお話しされてたので、触れてみたくなりました
モノレポで複数アプリをリリースする場合のGit運用戦略
  • 複数アプリで共通するようなコードは、現時点ではあまり持ってないけど、将来のために試してみようかな?
SwiftUIでの開発に向けた我々が出来る既存アプリのリファクタリング
  • コンポーネントをしっかり分けておけば影響範囲は最小限に抑えられる、というお話でした。が、さて自分のコードを省みると…
ARKitの壁認識で、壁にぶち当たった話
  • ARKit の面白さと、特徴の少ない床や壁への対応の大変さがよくわかりました。スタンドを立てて、最後にそれを消せばいいとは。発想の転換ですね!
iOSDCのプロポーサル判別器をつくろう
  • プロポーザルの生成ではすごい文章がで出来上がっていました。いずれはこれらの技術の精度が上がると思うと、これは興味深いです
Write the “code”, Change the world. 〜エンジニアと法律〜
  • 技術が正しく使われて発展しやすい環境を作るには、我々のような技術を理解した者の働きかけが必要なんですね。今まで考えもしませんでした
Getting Started with Swift WebAssembly
  • Swift がブラウザ上でも使えるようになると思うと、テンションが上がります。簡単には行かなさそうですが、望みはありそうで楽しみです
これデフォルトで作れないんだ!?を解消した話
  • デザイナーとエンジニア間の、認識の齟齬を解消する取り組みの話でした。仕組みとして取り入れて実際に改善するのが、やはり重要ですね
フィードやチャットのスクロールを全力でなめらかにする
  • テキストの内容でセルの高さをあらかじめ計算する、という内容でした。少しコード量は増えますが、パフォーマンスが改善するなら、やってみる価値はありそうですね
令和時代のゲームボーイ開発 👾
  • ゲームボーイの実機で動くものが作れるのは、とても魅力的です。実装言語が Swift だったら、もっと良かったですね