puke and bounce

アプリを作るのが好き。アジャイル開発でみんな幸せになればいい。最近は複合現実による価値創造に興味

iOSDC2018 Day1

はじめに

iOSDC2018 Day 1 (8/31)に行っていきました。
感想と持って帰ってきたことを記述します。 OPENINGやランチのことは他の記事で書きまーす。

最初から反省

  • MBPの電源がお昼の段階で切れたので明日は2台持ちで参ります
  • トークを詰め込みすぎて集中力が切れてしまったところがあったので、無理せずブログを書く時間にあてよう
  • ちゃんと予習をしよう。
  • Redux入門しよう →

トークの感想

登壇者の皆様、本当にありがとうございました。 目的と雑感とNextActionを書いていきます。

複数のライブ映像を同期再生するのが大変だったので知見をお伝えします

  1. 目的
    プログラム的なところではなかく複数のライブ映像ってのでリモートワークで使えんかなあと思ってエントリー
  2. メモ
    iOSで複雑な動画配信を行う場合は、AVPlayerを使用する必要がある。 いくつかKVOすることでうまくいくらしい。 そしてAndroidExoPlayerがその辺をよしなにやってくれる
  3. 雑感
    配信の同期を行うために疎結合ではなくManagerを作るという当たり前な点に普通に納得した。 動画配信をうまくやっているサービス自体そんなにないイメージであるから知見などが少なそうだが
    このトークの経験を業務にも活かせる場面があったらいい。

  4. 資料
    スライド
    公式Doc

リアルタイム革命

  1. 目的
    GraphQLに興味がアリマス
  2. メモ GraphQL Subscriptionでリアルタイム更新しようぜ!
  3. 雑感 リアルタイム通信の歴史の部分でお腹いっぱい感があった。
    正直、ネットワーク周りの知識(L2, L3など)の知識が薄いので、背伸びした感がでた。 でもアプリ開発者としては早く業務でGraphQLを試してみたい。
  4. 資料
    スライド
    AWS Amplify
    AWS AppSync

Swift Compilerの最適化入門 - AllocBoxToStack編

  1. 目的
    Swiftの中間言語の意識はかなり薄かったので、とりあえず何かしらインプットするきっかけほしかった
  2. 雑感
    Swift Compilerは名前だけ、LLVMは中身見たこともありませんでした。(おはずかしい)
    swiftcコマンドも使ったことがなかったの今後は意識していきたい、、が
    ちょっとまだ興味が向けられる状況ではないので
    いつかのために頭の隅に置いておく。
  3. 資料
    スライド
    https://blog.waft.me/2018/01/11/swift-sil-2/

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

  1. 目的
    私が作っているアプリは海外展開を一切していないので
    こういう機会がないと聞けない話と思ったから
  2. 雑感 海外からS3のデータをとりにいこうとすると日本のサーバーまで来るからめっちゃ時間がかかる。
    CloudFlontにS3の署名付きURLをキャッシュしておいて日本へのアクセスを極力少なくしているらしい。
    バックグラウンド時とか寝ているときに必要なもしくは必要な大きいデータを勝手に保存しておくような標準を早くだしてほしいなあ笑 海外展開すると海外にデバッグにいけるのが普通に羨ましいと思いました。(中学生くらいの感想)
  3. 資料
    スライド
    https://qiita.com/kumatronik/items/c542feac77b08c3ca646

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

  1. 目的
    アプリにTapTicのフィードバックをいれたい!!
  2. 雑感 FeedBack入れるのはあっさりできそうだけどタイミングがすごい重要!
    逆にすぐ実装できるからエンジニア主導でがんがん提案できそうなところ。
// フィードバックを引き起こす!
let generator = UINotificationFeedbackGenerator()
generator.prepare()
generator.notificationOccurred(.success)
  1. 資料
    スライド
    UIFeedbackGenerator - UIKit | Apple Developer Documentation

宣言的UICollectionView

  1. 目的
    はじめてUICollectionViewの実装を見たときに
    「なんでこの人はこんなめんどくさいことを、ひどいコードでやっているんだろう」
    と真面目に思いました。
    numberOfItemsとか意味わからん 、、 その頃の自分に戻った気分で聞きに行きました。
  2. 雑感
    UICollectionVIewの間にフィルターかアダプターと呼ぶか難しいcellDeclarationを定義することで
    宣言的に(画面と対応した状態で)レイアウトすることができています。
    enumに定義したcellに対して処理を行うので非常に見やすかったです。
    ただ質疑にもあったように慣れたメンバーが揃ったチームだと逆に勘違いとか発生しちゃいそうだなあとも思う。

  3. 資料
    スライド

iOSと(深層)強化学習

  1. 目的
    強化学習というのがパワーワード過ぎて引き寄せられました。 もはやあんまりiOSもSwiftも関係ない気がするが、、、
  2. 雑感
    強化学習については非常にわかりやすかったです。
    人にてきとーな説明をできる程度には理解することができました! ただ深層強化学習については知識が追いついていないことが多く置いてかれてしまいました。
    今後AIに仕事を取られないためにもAIを支配する側に回りたい。
    我妻さんが書いたディープラーニングの本もぜひ読みたい。

  3. 資料
    スライド
    ただの強化学習のサンプル https://github.com/yukinaga/CartPoleSwift
    深層学習しちゃう方のサンプル https://github.com/yukinaga/CartPoleDeepSwift

レガシーなアプリケーションの60fps化を目指す為にやっていること

  1. 目的
    アプリのfpsの増加は常に追求する課題である。 (かっこよくいってみる)

  2. 雑感 正直、FPSもなんだか知らんかったのでちょっと勉強した↓ https://nvr.bz/topics/knowledge/what-framerate.php Xcodeで実機に流し込めばFPSを測れるようだ https://developer.apple.com/jp/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/ToolsOverview/ToolsOverview.html

発表内容としては対象の画面をReSwiftでReduxに、画像読み込みにはkean/nuke、UICollectionViewの生成には独自のライブラリを用いて差分更新という素敵な内容であった。
imageViewやUILabelにはbackgroundColorを設定するという具体的な内容があって本当にためになるトークでした。

  1. 資料
    スライド
    kean/Nuke

SwiftでReduxを実現するReSwiftを使ってみた

誰も見ていない最後に軽く反省

やっぱり経験不足というより勉強不足を実感した1日目、、、