エンジニアの祭典iOSDC 2018に参加してきました!

472 view

こんにちは、Webエンジニアの@keishibukiと申します。
8/30〜9/2(前夜祭含め)に開催されたiOSの特大イベントに行って参りました。

みなさんの前で特定のテーマについてお話がしたい!というエンジニア達が応募して、無事選考を通ったエンジニアが発表を行うというイベントです。

なんと弊社からは阿部 優太(@yutaabe200)が、登壇者として選考を通過しました!

弊社としても自社サービスを作る流れが来始めているということもあり、登壇者の阿部、そしてエンジニアの私と取締役の坂井が参加して参りました。

1日目

OPENING

会場は早稲田大学!
私たちは到着時間が若干遅れてしまったので途中からしかオープニングが見られませんでしたがそのクオリティにはびっくりしてしまいました。

まずはオープニング!

iOSDC Japan 2018 Opening

iOSDC Japan 2018 Opening

次にスポンサー紹介!

iOSDC Japan 2018 スポンサー紹介

iOSDC Japan 2018 スポンサー紹介

あれなんか聞いたことある声と喋り方だなーと思ったら……
エヴァやんけ!三石琴乃さんやんけ!

そして会場・企画説明!

iOSDC Japan 2018 会場 & 企画説明

iOSDC Japan 2018 会場 & 企画説明

緒方恵美さん!
相変わらず声がカッコいいなー。

スポンサーはプロの声優さんに読んでもらえるんですね。
これは弊社もスポンサーになるしかない!

Markdownをリアルタイムに解析する

IzumoというiOSアプリを作っていらっしゃる方のセッションです。

私はWebの人なので理解が及ばない点もありましたが、解析範囲を最小限に止める、文字コードを意識するなど、マークダウンの処理部分に関して色々と応用できそうな感じでした。

安定したチャットを実現するためのアプリとAPI設計

セッションではチャットに期待される動作として下記のようなものがありました。

【送信】

  • 相手にメッセージが届く
  • 送信開始時点で吹き出し表示が行われる&送信中のステータスになる
  • 送信に失敗したメッセージが残る&自動で再送される&通信状態の監視
  • 送信ボタン押下直後にアプリを閉じても送信される
  • バックグラウンド送信時に失敗したらユーザーに失敗を伝える
  • 送信する前のメッセージは自動的に下書きに残る

【受信】

  • 送信された順番通りに表示される
  • オフラインで閲覧可能が望ましい
  • 受信したメッセージは永続化され、スムーズに過去のメッセージを閲覧化
  • 過去のメッセージの閲覧時も新着メッセージに気づけるように(届いたら一番下までスクロール、画面下に新着がありますという表示をする)

大変参考になるセッションでした。
ちなみにチャット機能を実装して欲しいと言われたら、とりあえず3ヶ月くらいになるそうです。

海外展開を目指すアプリでセキュアで速い画像と動画の閲覧を実現した話


ミクシイで「家族アルバム みてね」というアプリを作った方のセッションです。

画像の取得・表示でも海外向けアプリでは大きな課題になるということを再認識しました。
概要としては下記の通りです。

  • 日本国内に存在していたAPIサーバーへのリクエストを最小限に変更
  • CDNへのキャッシュを事前に行うように変更

どう実装したかは上記資料をお読みください。

とある端末の触覚技術 -フィードバック-

Taptic Engineという利用者に力、振動、動きなどの触覚にフィードバックを与えることができるテクノロジーに関するセッションでした。

視覚、聴覚だけではなく、触覚にも刺激を与えるこの技術、ゲームなどにも応用できそうで、かなり面白そうです。

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

最近のフロントエンドとiOS開発は似ているよねーという話から、iOSエンジニアのみなさんはフロントエンジニアにもなれる!というお話でした。

私個人はまだまだフロントエンドも初心者レベルですので、まずはフロントエンドに集中ですね。目指せ両方できるマン!

iOSエンジニアが知るべきProgressive Web Apps開発のエッセンス

Progressive Web Apps、所謂「PWA」についてのセッションでしたが、ロードマップ指向とエコシステム指向という話が一番参考になりました。

普段はWeb業界にいる私ですが、iOSはもちろん色々な業界から知識を取り入れていき、エコシステム、コミュニティに貢献していく。その重要さに気づかされたセッションでした。

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

ネイティブのエンジニアが多数いる環境ではあまり必要なさそうですが、少ない環境では選択肢の一つに入りそうという感じ。

弊社ではモバイルエンジニアが1人しかいないし、僕も現在React学習中なので活用できる機会はそのうちあるかも?

Haptic Feedback による効果的なマイクロインタラクション

限られた画面上での視覚フィードバックだけでは限界があるので、触覚フィードバックはやはり効果的とのこと。

使用パターンとしては下記のようなものが考えられるそうです。

  • 成功、失敗時
  • 入力が受け付けられた時
  • 連続的な値の変化時(ドラムロールやバー)
  • トリガーの閾値を超えた時

2日目

iOSでSwitchの複数ディスプレイ配置調整を実装してみた

僕は個人的にゲーム開発をしているので、ちょっと気になるセッションでした。

近くにある端末と通信し、各端末のスワイプの角度を取ることで、端末の相対的な位置がわかるということでしたが、この方法はどうやら任天堂が特許を取っているらしいです、残念。

Depth in Depth

Depth in Depth = デプス(深度)詳解というオシャレなタイトルから始まりました。

深度=奥行きのデータを取得することで背景を飛ばすことが出来たり、3Dスキャンでモデルや見取り図を作ったり、色々なことが出来そうな感じでした!

詳しいことは分からなかったのでぜひ資料を見てください。

ARKit Maniacs

個人的にかなり興味があったセッションのひとつです。

概要としてはARKit2.0で何が出来るようになったか?という点と、それを使って実験してみたという内容でした。

実験1は「世界はシェア出来るのか?」といった内容。
実際には建物内での実験でしたが、かなりの精度だったと思います。
「建物はシェア出来ました!」

次はEnvironment texturingについて。
これはようするに「環境マッピング」のことで、周囲の物体の反射などを対象に写し込む事ができるというものです。

デモでは水晶玉?のようなものをMacの上に置き、その後に布の上に移動させておりました。

環境マップの生成には機械学習が使われているそうで、上記の環境移動の際には数秒ほど描画に時間がかかっていましたが、アクションゲームのようなリアルタイムかつ高スピードで環境が変化するといったものでない限りはかなり実用的なのではないでしょうか?

「QRコード読み取り?楽勝ですよ😙」=>「AVFoundationを信じたおれがバカだった😇」

正直QRコードに分割・連結機能が存在することを知りませんでした。
どうやら最大16個に分割できるそうです……。

※8/31に登壇していらした@417_72kiさんと偶然(ほんとにかなり偶然でした)お話した際に教えていただきましたが、薬の処方箋などの情報量が多いものに実装されてたりするらしいです。全然知りませんでした。大変参考になります。

iOS11から追加された「CIQRCodeDescriptor」というクラスを使えば、この分割QRコードに対応できるそうです。

色々話を聞いているとOSのサポートを結構バッサリ切るイメージ。
最新2~3バージョン対応としている方が多いんですかね?
Webも早くIEを切って良い時代にならないものか……。

State of the Union ~2018年のアプリ開発事情~

iOSエンジニアではない僕は正直あまり理解できない箇所が多かったですが、クロスプラットフォームについて「ネイティブ vs React Native vs Flutter」という3項目を比較をされており、大変参考になりました。

現状FlutterよりもReact Nativeの方がネイティブとの共存しやすそうなイメージがあるようで、開発メンバーのスキルセット、状況によってはReact Nativeが選択肢にあがってきそうです。

また瞬間的な話題性に慌てず、それが解決しようとしている課題をしっかりと理解することが重要というのはiOS・Webに関わらず重要な視点だなと感じました。

ルーキーズLT

虚無から48時間でiOSアプリをリリースする😴

セッションが始まった瞬間会場から「!?」というセリフが飛び交っていました(笑)

ハッカソン(短期間でアプリなどを開発しその成果を競うイベント)で何度も受賞している方のようで、めちゃくちゃ喋りが上手でした。

ハッカソンだけでなくサービス開発をしていく上でかなり参考になる内容でした。
興味がある方は資料を見てください!

NoSQLの歴史にみる、Cloud Firestoreとの正しい付き合い方

近々Firebaseを触る予定なので少しでも参考になればと思い、聞きに行きました。

かなり分かりやすくFirebaseやデータベースについてがまとめられており、Firebase(NoSQL)の得意・不得意などを知ることが出来ました。

さすがに5分間で全てを話しきるので難しかったようで、途中で時間切れになってしまいました。

ただ、内容はすごく分かりやすくスッキリまとまっていたので、かなり参考になります!興味ある方はぜひ資料を見てください。

3日目

iOSマイクロインタラクション入門

マイクロインタラクションに関してのセッションです。

ユーザーがアクションを起こした際のちょっとしたリアクションのことで、操作の心地よさを高めるという役割があります。例えば対象の見た目の変化や効果音、端末の振動、アニメーション、など……

ただ、Appleの定める「Human Interface Guidelines」では下記のようなことが書かれているらしく、正直これはWebにも参考になりそうな内容でした。

・アニメーションは賢く使う。
・アニメーションを使うためにアニメーションを使わない

【参考】Human Interface Guidelines
https://developer.apple.com/design/human-interface-guidelines/

田舎のWebベンチャー企業にアプリ事業を持ち込んだらこーなった

弊社の阿部が登壇したセッションです。
初登壇お疲れ様でした!

内容としてはタイトルの通りで、Webしかやってこなかった弊社にアプリ事業を持ち込んだらどーなったの?という内容です。田舎民と東京からUターン、Iターンしたい!という人がセッションに来ていた印象でした。

ちなみに一緒に来ていた取締役から「次はお前登壇な!」と言われ、いい意味でプレッシャーを感じている今日このごろです。

スポンサーブースも回っていました

セッションの合間などにスポンサーブースを回って、色々お話をしていました。
特にAWSの方は私がWebの人だと聞くと、親切に色々教えてくれました。
とりあえず個人的にちょっと使ってみようかな。

余談1:お昼めっちゃ美味い!

なんと3日間、お弁当とペットボトル1本(お茶・炭酸水・コーラ)が配給されました!
外は暑いし、会場を出てお店を探す必要がないので大変ありがたかった。

↑ひたすら飯を食いまくる僕の図。
なんか口から出ててキモい(笑)

余談2:六本木のハッカーズバーに行ってきました!

店員がその場でライブコーディングをしてくれると噂のハッカーズバーに行ってきました。

お店に入ったら最初に飛び込んでくるのは大きなディスプレイ!珍しい!
まずはお酒とJSでのアニメーションをご注文。

ハッカーズハイボール片手にボーっと見ていると、みるみるアニメーションが実装されていくではありませんか!
店員さんはどうやらEmacsをゴリゴリにカスタマイズしている方らしく、めっちゃコーディングが早かったです。

ハッカーズハイボール2杯、
スパゲッティ1杯、
デスマーチ1杯、
を飲んだ頃にはお店も閉まる時間になったので、東新宿にあるホテルへ帰宅しました。

ちなみにバーに来ていた日本人が英語ペラペラで、カナダ人とめちゃくちゃ仲良くなっているのを見て、「英語を勉強しなければ…」と密かに思ったのはここだけの話です。

最後に

新潟に居ると何百人、何千人のエンジニアに囲まれるような機会はまずないのですごく刺激的な3日間でした。

iOSやアプリ界隈の流行、常識に触れ、モバイルエンジニアの大変さ、楽しさみたいなものが少し分かったような気がします。僕もエンジニアとしてより一層頑張らねば!

そしてiOSDCスタッフの皆さん、大変貴重な3日間をありがとうございました!

\ SNSでシェア /

WRITER

keishibuki

制作 keishibuki

新潟生まれ、新潟育ちの新潟Boy。
95年生まれのラストゆとり世代。

専門学校に通いながらアルバイトとして働いていたが、
2017年度の春で晴れて正社員にランクアップ。

TAGS