2019/09/06(金)に行われた「iOSDC Japan 2019」Day1のまとめです。
ハッシュタグは#iosdcです🐦
イベントページはこちら↓
セッション
私が聴講したセッションを紹介させていただきます。
Xcodeのコードカバレッジ計測ではなぜブランチカバレッジが取れないのだろうか?
- 時間:13:30–14:00
- 場所:Track B
- 発表者:kariaduuさん(@kariad_uu)
Xcodeのカバレッジ計測についての発表でした。
スピーカーディナーでは「聞いても役に立たないお話」と仰っていましたが、果たして…?
スライドの文字が大きく、1枚あたりの情報量が少ないので、とてもわかりやすかったです。kariadさんの発表を聞いて、やはりその方がいいのだと思いました。
Xcodeで計測できるのはラインカバレッジとのことです。
どうやってラインカバレッジを計測しているかというと、LLVMを使っているとのことです。
「ラインカバレッジ」を始め、「ファンクションカバレッジ」や「リージョンカバレッジ」など、私の知らなかったカバレッジの知識が身につきました。
ラインカバレッジとリージョンカバレッジの大きな違いは、三項演算子の計測方法のようです。
デマングルの意味はあとで調べます。
他にもツイートを紹介します。
↓のツイートを見て私も気になりましたが、結論は「XcodeはLLVMの情報をそのまま出力しているので、おそらくLLVM側のバグ」とのことです。(記憶が曖昧なので違ったらすみません)
スピーカーディナーでは「5年後あたりに役立ちそうです」「5年後も役に立つの?」と冗談半分に言われていましたが、私が出した結論は「Xcodeでブランチカバレッジが計測できない理由は役に立つかわからないが、kariadさんの発表は役に立つ」です。
とてもわかりやすいスライドなので、発表を聞いていない方もぜひ見てみてください。手動でカバレッジ計測をしてみたくなるでしょう。
BLEでiOS/Android間でそこそこ大きなサイズのデータ通信を実現する (L2CAPもあるよ)
- 時間:14:20–14:50
- 場所:Track B
- 発表者:日向強さん(@coffeegyunyu)
なぜかスライドが埋め込めずにページリンクになってしまいます↓
Bluetoothについての発表でした。
重要度に応じてアジェンダの文字サイズを大きくしたり、シーケンス図の表示を水分補給の時間稼ぎに使ったりと、日向さんの小ネタが随所に散りばめられていました。
とても楽しいのに内容は深いという、素晴らしい発表でした。
Bluetooth仕様書は、なんと2985ページもあるとのことです。
↓はめちゃくちゃ笑いましたw
お手もとにBluetooth仕様書があるの、ずるいですw
謎の数字もずるいですw
kariadさんに続き、Track Bでは深い話を聞けて楽しかったです。
最後まで聞いて思ったことです↓
日本のサマータイムに苦しめられた話
- 時間:16:10–16:15
- 場所:Track A
- 発表者:ウホーイ(@the_uhooi)
ここからはLT前半です。
まずは私の発表でした。
自分の発表については別記事にまとめています↓
Property Delegatesがもたらす新しいSwiftプログラミング
- 時間:16:15–16:20
- 場所:Track A
- 発表者:だーくろさん(@darquro)
Property Wrappersについての発表でした。
だーくろさんのスライドは実際のソースコードを見せていて、実装の参考にしやすいです。私はできる限りソースコードを減らすことでわかりやすくなると考えていましたが、だーくろさんのように新しい機能について発表する際には有効な手段だと思いました。
タイトルが「Property Delegates」から「Property Wrappers」に変わっています。プロポーザルを見たところ、機能の名前が変わっていました。
Property Wrappersのプロポーザル↓
ツイートを紹介します。
Property WrappersはProtocolやExtensionsよりも抽象度が高く、実装コストが低いとのことです。
私は「Property Wrappers」という用語すらわからなかったので、勉強になりました。
LLDBデバッガで不具合の原因を特定して開発速度を上げよう
- 時間:16:20–16:25
- 場所:Track A
- 発表者:クウルスさん(@Qoo_Rus)
LLDBデバッガについての発表でした。
クウルスさんのスライドは18ページと枚数が少なく、伝えたいテーマが明確なため、とてもわかりやすかったです。私のスライドは26ページであり、もっと少なくできたらよかったと思いました。
私はLLDBだとp
とpo
コマンドは知っていましたが、v
コマンドは知りませんでした。
わかりみが深いです。変数の値を確認するのが目的なので、とりあえずp
かpo
を打って、確認できればOKとしていました笑
v
コマンドは式を評価しないため高速であり、クウルスさんは困ったらv
コマンドを使っているとのことです。
私が気になっていた、ときどき変数の値がエラーになって出力されない問題、それもv
コマンドなら出力されるとのことです。目から鱗が落ちました。
私もこれからはv
コマンドを使います!
Core MLで実現する爆速のARサイズ計測
- 時間:16:25–16:30
- 場所:Track A
- 発表者:Kohei Araiさん(@kokoheia)
CoreMLとARについての発表でした。
スライドのデザインがおしゃれであり、ML×ARのスマートさが一層増しています。難しい配色なのに可読性が落ちず、むしろ読みやすいです。
Satoさんのツイートがわかりやすいので、載せさせていただきます。
↓は笑いましたw
サーバーレスの機械学習とARを組み合わせてサイズを計測する手法、とてもよさそうです。他にも応用が効きそうです。
1ヶ月半でプッシュ通知許諾率を17%から40%にあげた話
- 時間:16:30–16:35
- 場所:Track A
- 発表者:akutsuさん(@sky_83325)
プッシュ通知をONにしてくれる人をどうやって増やしたかの発表です。
テーマとスライドがシンプルであり、内容も難しくなく、非常にわかりやすかったです。わかりやすくてためになる、理想のLTだと感じました。
内容については父さんのツイートが素晴らしいので、こちらを載せるだけにします。
完全に同じ開発環境を素早く用意できる(もしくはできない)技術
- 時間:16:35–16:40
- 場所:Track A
- 発表者:Hiroyuki Aokiさん(@Solti)
研修で使うたくさんのmacOSを効率よくセットアップするお話でした。
Aokiさんは面白い内容を淡々と話すので、面白さが倍増します笑
特に「温かみのある手作業」は、iOSDCで飛び出したパワーワードの中でも、かなり強いですw
macOSのセットアップについて時系列で話されていて、苦労されたことがひしひしと伝わります。
このあたりの知見を持つ方は多くないと思うので、まさに「プロビジョニングのプロ」です。
簡単なアプリを作れるようになった!からその先に進むために
- 時間:16:55–17:00
- 場所:Track B
- 発表者:ろくさん(@66nylon_y)
ここからはLT後半です。
iOSアプリ開発の初心者がどうキャッチアップしていくかの発表です。
いきなりSwiftコンパイラを覗くのはすごいと思いましたww
UIトレースはやったことがないので、やってみたいです。
他にも勉強会の運営スタッフとして活動したりと、ろくさんの行動力は見習いたいと思いました。
tvOS 13にちょっと注目してみる
- 時間:17:00–17:05
- 場所:Track B
- 発表者:redryeryeさん(@redryerye)
tvOSについての発表でした。
白背景に黒文字と、シンプルでおしゃれなスライドです。おしゃれなスライドを作成できるの、羨ましいです。
ツイートを紹介します。
tvOSを扱う際に参考にしたいスライドです。
iOSエンジニアでもできるIoTガジェット作成、基板発注もう何も怖くない
- 時間:17:05–17:10
- 場所:Track B
- 発表者: Jumpei Onoさん(@takoikatakotako)
IoTガジェット作成についての発表でした。
かびごんさんのスライドは絵と写真が多く、直感的にわかりやすいです。私も絵を多く取り入れたかったのですが、テーマ的に難しかったです。
ツイートを紹介します。
最後の動画はめちゃくちゃ笑いましたw
会場も大爆笑でした。
基盤を設計、発注する際に参考にしたいスライドです。
CallKitを実装してはまったところをお話します
- 時間:16:35–16:40
- 場所:Track B
- 発表者:アマゾネスいけばたさん(@k191k)
CallKitについての発表でした。
実際にCallKitを使ってはまったところを紹介していたため、具体的で役立つ内容でした。
話すスピードや抑揚がちょうどよく、とても聞きやすかったです。
あと名前がずるいですw
アマゾネスさんいわく「悪ノリ」とのことです。
ツイートを紹介します。
わかりみが深いです。私はオセロのアプリを申請したら、ドイツからリジェクトされたので、ドイツを配信から外させていただいたことがあります。
本日のパワーワード「iPhoneは電話」来ましたw
思わずツイートしたくなるようなネタを仕込むのも、面白いなぁと感じました。
iPhoneが電話ということを思い出したので、CallKitを使ってみたいです。
値オブジェクトへのCodable対応
- 時間:17:15–17:20
- 場所:Track B
- 発表者:maguhiroさん(@maguhiro)
値オブジェクト(Value Object)をCodableに対応したお話でした。
maguhiroさんはとても落ち着いて話されており、初登壇とは思えませんでした。どうやったらここまで緊張を見せずに話せるのでしょうか…。
ソースコードのjson部分に自分の名前と年齢を入れていたのは面白かったです。(年齢は正しいのかはわかりませんが笑)
ツイートを紹介します。
「SingleValueContainer」は使ったことがなかったので、単一の値を持つ値オブジェクトを生成する際には使っていきたいです。
茶会
- 時間:18:00–20:00
Day2の懇親会は「茶会」と呼ばれ、ノンアルコールがメインです。
ところがビールもたくさん用意されており、私は登壇が終わった開放感からビールしか飲みませんでした🍻笑
まず話しかけてくださったのがizumiさんでした。izumiさんは今年のtry! Swift Tokyoでスピーカーをされていた方です。私が初めて参加した大規模カンファレンスがtry! Swift Tokyo 2019であり、そこで話された方は天上人のような存在だと思っていました笑
ですが、当たり前に私と同じ人間であり、とても話しやすくて楽しかったです。
多分いないと思うのですが、もし私にも同じようなことを考えていたら、気にせず話しかけてください笑
VIPERでおなじみのひっかさんとお話しできたのも嬉しかったです。
私が担当していたアプリではVIPERアーキテクチャを採用しているのですが、最初は聞いたことすらなく、ネット上の記事も少なくてキャッチアップに苦戦しました。
そこでひっかさんがQiitaに投稿されていた記事に出会い、とても参考になりました。Twitter上でアドバイスを頂いたこともあり、いつかお礼を言いたいと思っていました。
iOSDC、エモいです。
あ、これお話しした全員を一人ひとり紹介していったらキリがないですねw
一旦ここまでにします。
おわりに
1日目も最高でした。