iOSDC Japan 2018に参加しました!
こんにちは。エンジニアの越智です。
会社では大体スマートフォンアプリの開発をしています。
iOSのイベントでは国内最大級のiOSDC Japan 2018に参加したので報告します。
今年は8/29のOpening Partyから8/30-9/2までの本番と、5日間の大イベントでした。
感想をざっくりと書いていきます。
目次
8/29 Opening Party
ぼっちでの参加だったので、自己紹介タイム待ちでした。
業務で使っているDeployGateの中の人と話せたのは収穫でした。
8/30 前夜祭
会場の西早稲田キャンパスは初めてだったので、少し迷いました。駅の出口に何かしら案内が欲しかったです。
iOSエンジニアの為のgrpc-swift入門(@tikidunpon)
gRPCはマイクロサービス周りで聞いていたレベルだったので、概要が把握できて為になった。
再利用可能なUI Componentsを利用したアプリ開発(@yuta24)
https://speakerdeck.com/yuta24/zai-li-yong-ke-neng-naui-componentswoli-yong-sitaapurikai-fa
デザイナーのワークフローに踏み込んでいたり、Atomic Designで課題整理しているのが印象に残った。
Playground駆動開発のすすめ(@_rockname)
https://speakerdeck.com/rockname/playground-driven-development-suggestion
Viewの確認でPlaygroundを使ったことはなかったので為になった。これは開発スピードが上がりそうたが、意外と導入に壁がありそうだ。
アルゴリズムを通じてよりよいアプリを(@rayfix)
https://speakerdeck.com/rayfix/arugorizumuwotong-zite-yoriyoiapuriwo
みんな大好きなアルゴリズムを話題にした話。O(n)の顔文字での比較が良かった。AutoLayoutの速度の改善ぶりに驚いた。ループを使わず、適切な標準ライブラリを使うことで、ミスも防げる。
8/31 day1
会場の受付の様子
Markdownをリアルタイムに解析する(@nakajijapan)
https://speakerdeck.com/nakajijapan/markdownworiarutaimunijie-xi-suru
テキストの解析範囲を決めるのが意外と難しそう。NSStringの文字コードを意識した操作でバグが出そうだ。
Swift 4.2 はどのような進化をしているのか(@tobi462)
https://speakerdeck.com/yusukehosonuma/whats-new-swift42
Swiftの誕生から振り返ってくれていた。Swift 4.2は破壊的な変更点は僅からしく安心した。標準APIの追加、変更が良さそう。
ランチ
安定したチャットを実現するためのアプリとAPI設計(@muukii0803)
https://speakerdeck.com/muukii0803/an-ding-sitatiyatutowoshi-xian-surutamefalse-apuritoapishe-ji
割と直近でチャットアプリを作っていたので、いろいろと共感できた。メッセージの状態管理、APIからの取得、順番の揃え方など、工夫している点のそれぞれが納得いくもので、とても満足度が高いセッションでした。
grpc-swiftを使ってiOSアプリでも快適なgRPC通信を行う(@KyoheiG3)
https://speakerdeck.com/kyoheig3/iosdc-2018
とても情報が整理されていて、gRPCへの知識が浅い人にも分かりやすいセッションでした。gRPCは通信の手段でRESTと同列。gRPCとProtocol Buffersはズブズブの関係だそうです。
肥大化しがちなアプリの起動経路を整理する(@d_date)
https://speakerdeck.com/d_date/fei-da-hua-sigatinaapurifalseqi-dong-jing-lu-wozheng-li-suru-1
Siri Shortcutが追加されて、さらに肥大化していくAppDelegateのソース。整理するには、起動経路を地道にクラス分割して、テスト可能なものに変更していく。
iOS WKWebViewの魔改造(@fokotate)
https://www.slideshare.net/slideshow/ios-wkwebview-iosdc-2018/112408084
UIWebViewの廃止が間もなく来る時期なので、WKWebViewでの苦労話。
iOSと(深層)強化学習(@yuky_az)
https://qiita.com/yuky_az/items/698b0da4e362f4373df3
深層学習はPythonのライブラリでやるもんだと思っていたので、新鮮な話でした。ニューラルネットワーク、バックプロパゲーションも一からSwiftで実装していて驚きました。
動画アプリをなめらかに動かす技術(@dekatotor)
https://www.slideshare.net/slideshow/iosdc-2018-112400328/112400328
動画のHLSでのストリーミング、プレイヤーの再生状態の管理、サムネイルとの切り替え周辺での工夫が分かりました。
差分計算アルゴリズムを用いた高速なUITableView描画(@fumito_ito)
https://speakerdeck.com/fumitoito/chai-fen-ji-suan-arugorizumuwoyong-itagao-su-nauitableviewmiao-hua
差分更新のライブラリそれぞれと、reloadDataを速度比較していて、参考になりました。
Swiftの生みの親によるasync/await for Swiftを徹底解説し、新しい非同期処理の手法を理解する(@yimajo)
https://speakerdeck.com/yimajo/await-for-swiftwoche-di-jie-shuo-si-xin-siifei-tong-qi-chu-li-falseshou-fa-woli-jie-suru-1
スライドとTwitterのタイムラインを一体化して表示して、発表していたのが新鮮でした。非同期周りでコードがスッキリ!completionのコードがネストされている処理がスッキリ!でした。
9/1 day2
ランチ
Live coding: ReactorKit
https://t.co/BDZVycKrhT
ReactorKitでライブコーディング。特にトラブルもなく時間通りに終わった。RxCocoa, RxSwift, ReactorKitでの記法を駆使し、コードがすっきりと書けていくのが分かった。発表者はだいぶ慣れているのだろうし、スピードも早かった。モブプログラミングぽくておもしろかった。
Depth in Depth(@shu223)
https://www.slideshare.net/slideshow/depth-in-depth-iosdc/112523600
デュアルカメラなどから取れるようになった深度を使って、一通りアプリを作ってみて得られた知見の発表。深度について知識が浅くても、付いていけました。デモも良かったです。部屋を隠してビデオ会議できる機能は欲しいと思いました。
LIFULL HOME’S「かざして検索」リリースの裏側(@HanawaTakuro)
https://t.co/FWPQGoA8ZU
建物にカメラをかざすだけでその建物の物件情報を閲覧できるUXを提供する機能を実装した話。CoreMLの実践的な事例として興味深いものでした。建物を特定するモデルを作成するのに大分苦労したそうです。モデルを訓練するための前処理がとても辛かったと。モデルを組み込みではなく、ダウンロード形式にしたり、サイズを軽くしたりと、いろいろ工夫されていました。
iOS × GraphQLの嬉しみとつらみ(@ _mogaming)
https://t.co/l5GHBKMWBV
GraphQLの仕様から実装のハマりどころまで、整理されてまとめられていました。テンポが早く、時間配分を意識した発表でした。
Swift Playgrounds Bookの作り方と配り方〜カメラからの画像をリアルタイムにいじるPlayPixels
(@sonson_twit)
https://t.co/ivtZftfnk6
iPadを持っていかなかったので、発表していたデモをその場で試せなかったのが残念でした。Playgroundの話から画像処理、CNNと話題が広く、リアルタイムに画像が変化するデモもおもしろかったです。Ask the Speakerでの対応も親切でした。
WebSocketをiOSに持ち込んで辛い思いをした経験がありますか!?(@sbntaminif)
https://t.co/B0VzkzFG4C
直近でsocket.ioを用いてリアルタイムなチャット機能を実装していたので、聞いてきました。背景知識も含めて実装での工夫までおさらいされていて、実装の答え合わせができて良かったです。
LT Track B
数が多いのでピックアップします。
虚無から48時間でiOSアプリをリリースする(@koooootake)
https://t.co/qd8xnD5dXC
ハッカソンでのアプリ作成の工程が3分間クッキングぽくアレンジされていて、おもしろかったです。
Visionフレームワークのリアルタイム顔検出を使えば、ウインクするときゃるん♪と音が鳴る二次元美少女になれる!(@minami1389)
https://speakerdeck.com/minami1389/visionhuremuwakufalseriarutaimuyan-jian-chu-woshi-eba-uinkusurutokiyaruntoyin-gaming-ruer-ci-yuan-mei-shao-nu-ninareru
個人的にVisionフレームワークには注目していたので、その実例としておもしろかったです。圧倒的手動デバッグでの調整あたりの苦労も良かったです。
懇親会
食料、飲料、盛り沢山でした。DeNAの人や、@k_katsumiともお話しして来ました〜。
9/2 day3
ランチ
デバイス・OSバージョンの依存が少なく、メンテナンスしやすいビューを作る(@k_katsumi)
https://t.co/p9zicrUiQW
UI作成でのGood Practice、Bad Practiceが分かり易く解説されていた。既に実践していることもあったが、多くの学びのある内容が盛り込まれていた。
iOSアプリの開発速度を170%に向上させたデバッグノウハウ(@orga_chem)
https://speakerdeck.com/orgachem/debugging-knowhow-that-improved-our-development-velocity-to-170-percent
https://t.co/2esIWayc7F
時間内に収める為に、駆け足ではあったが、内容の濃い発表でした。デバック自体が効率が悪い作業なので、動作確認の自動化や、テストコードの重要性を説明していく展開が見事でした。
あえてWebエンジニア以外の人に聞いてほしいWebRTCの話(@Tukimikage)
https://t.co/XnKHmNNaXS
AtomやVSCodeの共同編集機能でも使っているWebRTCについて、知識から実装まで、一通りおさらいできた。
LT Track A
数が多いのでピックアップします。
麻雀の点数計算(@giginet)
https://t.co/2UDrmLI34J
https://github.com/giginet/Peafowl/
Playgroundで画像で手牌が表示されるのが凝っていました。また点数計算もほぼ全パターンが網羅されていて素晴らしかったです。
DroidKaigi 2018 iOS appのApple審査が通るまで(@konifar)
https://t.co/q1KCHoyjw4
DroidKaigiの開催が目前に迫っているのに、Appleの審査が一向に進まない展開にハラハラしました。DeployGateでの先行配信はいい回避策。イベント開催の9時間前でようやく審査が通って、よかったですね。審査の特急申請は余り意味がなかったようです。
ベストスピーカー賞
1. MicroViewControllerで無限にスケールするiOS開発
https://t.co/07c41phusx
2. iOS アプリの開発速度を70%高速化したデバッグノウハウ
https://speakerdeck.com/orgachem/debugging-knowhow-that-improved-our-development-velocity-to-170-percent
3. Depth in Depth
https://t.co/BSlKXiHJjI
最後に
ここまで読んで頂きありがとうございます。5日間とあって、盛り沢山の内容でした。
またニジボックスにはTechPerkという制度があり、今回のイベント参加費用は会社負担でした。素晴らしいですね。
ありがとうございました。