NIJIBOX

iOSDC Japan 2018に参加しました!

更新日 2019.10.24
iOSDC Japan 2018に参加しました!

[markdown]

こんにちは。エンジニアの越智です。
会社では大体スマートフォンアプリの開発をしています。

iOSのイベントでは国内最大級の[iOSDC Japan 2018](https://iosdc.jp/2018/)に参加したので報告します。

今年は8/29のOpening Partyから8/30-9/2までの本番と、5日間の大イベントでした。
感想をざっくりと書いていきます。

## 8/29 Opening Party

ぼっちでの参加だったので、自己紹介タイム待ちでした。
業務で使っているDeployGateの中の人と話せたのは収穫でした。

## 8/30 前夜祭

会場の西早稲田キャンパスは初めてだったので、少し迷いました。駅の出口に何かしら案内が欲しかったです。

– iOSエンジニアの為のgrpc-swift入門
@tikidunpon
[スライド](https://t.co/IBCRrPjxVo)
gRPCはマイクロサービス周りで聞いていたレベルだったので、概要が把握できて為になった。

– 再利用可能なUI Componentsを利用したアプリ開発
@yuta24
[スライド](https://t.co/AIkfcMzrth)
デザイナーのワークフローに踏み込んでいたり、Atomic Designで課題整理しているのが印象に残った。

– Playground駆動開発のすすめ
@_rockname
[スライド](https://t.co/tm3VpN2xCu)
Viewの確認でPlaygroundを使ったことはなかったので為になった。これは開発スピードが上がりそうたが、意外と導入に壁がありそうだ。

– アルゴリズムを通じてよりよいアプリを
@rayfix
[スライド](https://t.co/orp2EuNrxw)
みんな大好きなアルゴリズムを話題にした話。O(n)の顔文字での比較が良かった。AutoLayoutの速度の改善ぶりに驚いた。ループを使わず、適切な標準ライブラリを使うことで、ミスも防げる。

## 8/31 day1

– 会場の受付の様子

iOSDC Japan 2018

– Markdownをリアルタイムに解析する
@nakajijapan
[スライド](https://t.co/SvJgMe9NSY)
テキストの解析範囲を決めるのが意外と難しそう。NSStringの文字コードを意識した操作でバグが出そうだ。

– Swift 4.2 はどのような進化をしているのか
@tobi462
[スライド](https://t.co/zfQ97Qik89)
Swiftの誕生から振り返ってくれていた。Swift 4.2は破壊的な変更点は僅からしく安心した。標準APIの追加、変更が良さそう。

– ランチ

オムハヤシ

– 安定したチャットを実現するためのアプリとAPI設計
@muukii0803
[スライド](https://t.co/aY4SuuvPZV)
割と直近でチャットアプリを作っていたので、いろいろと共感できた。メッセージの状態管理、APIからの取得、順番の揃え方など、工夫している点のそれぞれが納得いくもので、とても満足度が高いセッションでした。

– grpc-swiftを使ってiOSアプリでも快適なgRPC通信を行う
@KyoheiG3
[スライド](https://t.co/Cyf78QrBgm)
とても情報が整理されていて、gRPCへの知識が浅い人にも分かりやすいセッションでした。gRPCは通信の手段でRESTと同列。gRPCとProtocol Buffersはズブズブの関係だそうです。

– 肥大化しがちなアプリの起動経路を整理する
@d_date
[スライド](https://t.co/4Ywq9JpVog)
Siri Shortcutが追加されて、さらに肥大化していくAppDelegateのソース。整理するには、起動経路を地道にクラス分割して、テスト可能なものに変更していく。

– iOS WKWebViewの魔改造
@fokotate
[スライド](https://t.co/QYaFPVhpWT)
UIWebViewの廃止が間もなく来る時期なので、WKWebViewでの苦労話。

– iOSと(深層)強化学習
@yuky_az
[Qiita](https://t.co/rtDFpvKaHq)
深層学習はPythonのライブラリでやるもんだと思っていたので、新鮮な話でした。ニューラルネットワーク、バックプロパゲーションも一からSwiftで実装していて驚きました。

– 動画アプリをなめらかに動かす技術
@dekatotoro
[スライド](https://t.co/aB2c88DEbs)
動画のHLSでのストリーミング、プレイヤーの再生状態の管理、サムネイルとの切り替え周辺での工夫が分かりました。

– 差分計算アルゴリズムを用いた高速なUITableView描画
@fumito_ito
[スライド](https://t.co/7xzZcRbCMq)
差分更新のライブラリそれぞれと、reloadDataを速度比較していて、参考になりました。

– Swiftの生みの親によるasync/await for Swiftを徹底解説し、新しい非同期処理の手法を理解する
@yimajo
[スライド](https://t.co/GdEXZDSMqt)
スライドとTwitterのタイムラインを一体化して表示して、発表していたのが新鮮でした。非同期周りでコードがスッキリ!completionのコードがネストされている処理がスッキリ!でした。

## 9/1 day2

– ランチ

ポークジンジャー丼

– Live coding: ReactorKit
[GitHub](https://t.co/BDZVycKrhT)
ReactorKitでライブコーディング。特にトラブルもなく時間通りに終わった。RxCocoa, RxSwift, ReactorKitでの記法を駆使し、コードがすっきりと書けていくのが分かった。発表者はだいぶ慣れているのだろうし、スピードも早かった。モブプログラミングぽくておもしろかった。

– Depth in Depth
@shu223
[スライド](https://t.co/BSlKXiHJjI)
デュアルカメラなどから取れるようになった深度を使って、一通りアプリを作ってみて得られた知見の発表。深度について知識が浅くても、付いていけました。デモも良かったです。部屋を隠してビデオ会議できる機能は欲しいと思いました。

– 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)
[note](https://t.co/2esIWayc7F)
時間内に収める為に、駆け足ではあったが、内容の濃い発表でした。デバック自体が効率が悪い作業なので、動作確認の自動化や、テストコードの重要性を説明していく展開が見事でした。

– あえてWebエンジニア以外の人に聞いてほしいWebRTCの話
@Tukimikage
[スライド](https://t.co/XnKHmNNaXS)
AtomやVSCodeの共同編集機能でも使っているWebRTCについて、知識から実装まで、一通りおさらいできた。

### LT Track A

数が多いのでピックアップします。

– 麻雀の点数計算
@giginet
[スライド](https://t.co/2UDrmLI34J)
[Github](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という制度があり、今回のイベント参加費用は会社負担でした。素晴らしいですね。

ありがとうございました。

[/markdown]