採択
2018/08/31 16:00〜
Track A
レギュラートーク(30分)

Swiftコードから状態遷移図を自動で生成し、継続的にメンテナンスしやすくする

yaso_san 八十嶋祐樹

アプリの中の複雑な状態はステートマシンなどを導入することで管理しやすくなります。
しかし、コードだけを見ても流れが分かりにくかったり、状態遷移図を作ってもコードに合わせて更新していくのが面倒だったり、継続したメンテナンスは大変です。
このトークでは、シンプルなステートマシンとSourceKit・Graphvizなどのツールを使ってコードから状態遷移図を自動で生成する仕組みを作り、継続的にメンテナンスしやすくする方法をお話しします。

レギュラートーク(30分)

Reduxで10本弱のアプリを作った弊社のナレッジ、時間の許す限り話すよ

kuroruri くろるり

社内で抱えてたいくつかの問題を解決するために我々は全アプリ開発チームでReduxを導入しました。その後会員系アプリから銀行系アプリまで10個弱のアプリ開発が行われてきました。今回はそれらを通して得られたナレッジを話せる限り話そうと思います。
現在予定している内容
-iOSでのStore/State設計について
-ビジネスロジックをSwaggerみたいに定義、自動生成できないか

採択
2018/09/01 15:10〜
Track A
レギュラートーク(30分)

Swift Playgrounds Bookの作り方と配り方〜カメラからの画像をリアルタイムにいじるPlayPixels

sonson_twit 吉田 "sonson" 悠一

iPadで,コーディングをしたり,プログラミングの教科書のような使い方ができるSwift Playgrounds.最近では,カメラやBluetoothのAPIが解放され,Swift Playgrounds Bookを個人でアプリを通じて配布できるようにもなりました.この発表では,カメラの画像をリアルタイムに処理できるサンプルを例に,Swift Playgroundsのおもしろさ,Bookの開発および公開方法について解説します.

レギュラートーク(30分)

アーキテクチャ初心者に贈る!私はこうやってアーキテクチャを勉強した

takehilo_kaneko Kaneko Takehiro

初めてのiOSアプリ開発プロジェクトにアサインされた半年前、それまでなんとなくでコードを書いていた自分を改めるべく、アーキテクチャの勉強を始めました。ググれば多くのアーキテクチャパターンの解説やサンプルを見つけることができますが、実際の開発ではそれらの情報だけでは足りず、自分なりの解釈が必要になってきます。
このトークでは、アーキテクチャ初心者だった自分がどのようにアーキテクチャを勉強し、実際にMVVMを使って開発したかをお話します。

レギュラートーク(30分)

iOSエンジニアの為のgrpc-swift入門

tikidunpon Koichi Tanaka

gRPCはGoogleが開発したハイパフォーマンスなRPC(Remote Procedure Call)プロトコルです。
Firebase SDKにも組み込まれていて、間接的に使った方も多いと思います。
トークでは、アプリからの通信の選択肢として、RESTやGraphQLに加えてgRPCも選べるように、
gRPC自体の解説、grpc-swiftの開発状況や現状の課題をデモを交えお伝えします。

レギュラートーク(30分)

Androidを考えたiOSアンチパターン

yutaabe200 yutaabe200

アプリ開発と言うとほとんどがAndroid・iOS両OS開発するシーンがほとんどかと思われます。
その中でiOSでは容易に実装できるけどAndroidではキツイ!と言う実装やその逆のパターンも数多くあります。
本セッションではAndroid実装を考慮するとiOSでやってはいけないアンチパターンを両0S開発の経験を基にお話しします。

レギュラートーク(30分)

An introduction to Swift for TensorFlow

jarinosuke Naoki Ishikawa

Swift for TensorFlow を実際に Xcode Playground で動かし簡単なテンソル積などを実行するところもデモします。
それを通して Swift for TensorFlow の技術的なコンセプトや、TensorFlow にとどまらない Swift 自体の技術的な拡張などについて分かりやすく説明できればと思います。

レギュラートーク(30分)

Developing .framework 101

jarinosuke Naoki Ishikawa

iOS の dynamic framework 開発のイントロダクションになります。
framework 開発で得た以下の地検などを説明さ背てもらおうと思っています。

  • static library/dynamic framework
  • sub framework への切り出し
  • framework の I/F を考える
  • open アクセス修飾子
  • Bundle 問題
  • Swift ABI
レギュラートーク(30分)

機械学習を使ったアプリの評価・検証はどうすればいい?

sonson_twit 吉田 "sonson" 悠一

Create ML, Core ML, Vision Frameworkなどのフレームワークが登場し,専門家でなくても機械学習をアプリケーションに取り入れることができるようになってきました.しかし,実装が簡単になっても,機能を評価,検証する必要性はなくなりません.この発表では,機械学習において評価を議論するにあたって重要な概念である学習性能と汎化性能の違い,学習および評価に必要なデータの数などについて解説します.

レギュラートーク(30分)

Factoryの自動生成によりテストを書きやすくする

nonchalant0303 Takeshi Ihara

テストを書くのって面倒ですよね?理由は様々ですが、ひとつは入力値と期待値を用意する手間だと思います。ベタに用意すると再利用性が低く、また構造変化に弱いというデメリットがあります。その解決策としてFactoryがあります。

ただ、実際はFactoryを用意するのも手間でコストがかかってしまいます。今回はFactoryを自動生成することで、再利用性が高く構造変化に強いツールを作りました。そのツールの特徴とコード生成についてお話します。

レギュラートーク(30分)

機械学習わからないけどiOS で機械学習を使いたい!学習済みモデルを自動生成してiOS 端末上で機械学習する方法。

fumiya_kume くぅ

「機械学習を知らなくても機械学習を利用した画像分類をする方法」について伝授します!機械学習するために必要な「学習済みモデル」をAzure Cognitive Services の Custom Vision Services を利用して 教師ありの画像分類モデルを作成し、iOS 端末で画像分類を行います。 機械学習に興味はあるけど自分で勉強する時間はない!といった方へのトークです。

採択
2018/08/31 14:20〜
Track B
レギュラートーク(30分)

コンパイラから紐解くSwift method dispatch

kateinoigakukun 家庭の医学

Swiftには実行するメソッドを効率的に決定する機構があります。
しかし、静的型付け言語であるにも関わらず動的に決定せざるを得ないパターンや、finalやprivateなどの修飾子がパフォーマンスに影響するパターンなど、実際にはどのような動きをしているのでしょうか。
このトークではSwiftコンパイラの中からその疑問を紐解いていきます。

採択
2018/08/31 15:10〜
Track A
レギュラートーク(30分)

宣言的UICollectionView

_ishkawa ishkawa

UICollectionViewに複数の種類のセルがある場合、どのセルがいつ表示されるのか把握するのが難しくなります。この問題を解消する手段の1つには、コンテンツの宣言的な定義が考えられます。

このトークでは、はじめにコンテンツの宣言的な定義の実現方法を説明します。続いて、宣言的な定義を導入した時のコードの見通し、レイアウトの役割分担、差分更新、アニメーションなどの面におけるメリットとデメリットを解説します。

レギュラートーク(30分)

「あっぷこぉでねぇたぁ」?おらさ村では「るぅたぁ」だっちゃなあや

ktanaka117 ダンボー田中

UIViewControllerから画面遷移処理を切り離すための設計パターンに、AppCoordinatorとRouterというものがあります。
この二つは名前の違いこそあれど意味するところは同じで、「方言」だと考えています。
このトークではUIViewControllerから画面遷移処理を切り出す理由と方法、名前と役割の対応にまどわされない開発チームになるための、設計に対する姿勢について話します。

レギュラートーク(30分)

Codableでなりすましたラッパー型で意味を具体化する。RawRepresentableとともに。

_ha1f はるふ

例えば「ファイルサイズ」はInt型に見えますが、
メガバイト表記とキロバイト表記は同じものでも、数字としては違うので、
Int, Double自体とは少し異なった性質があります。

そんなときにも便利な、
Codableを使ってエンコード時に値になりすまして表現する方法を、
その他の実用例も交えながらご紹介します。

レギュラートーク(30分)

Himotoki を Codable に移行したい.ただ,移行したかっただけなんだ

watura watura

ずっと前に書かれた,Himotokiを使ったコード.複雑怪奇な秘伝のタレとして,拡張され,パッチワークされてきた,Zaim アプリを支えるAPI部分をCodable 対応するために行ったことを一部始終を話します.さて,今6月13日なのですが,まだ完了していません
それどころか,フルスクラッチで作り直したい!という欲望も顔を出しています.欲望に打ち勝ち,移行に無事成功した体験談になるはずで

採択
2018/08/31 11:20〜
Track A
レギュラートーク(30分)

MicroViewControllerで無限にスケールするiOS開発

tarunon tarunon

MicroViewControllerという仕組みを導入したことで我々はメンバーの誰もが経験したことのない開発速度とスケーラビリティを手に入れました。
「10人規模で画面の開発が可能」「全てのVCとVMは500行未満」「手軽に値レベルで実現可能なMock」「50のVCで構成される一画面」
MicroViewControllerを取り入れた画面設計について、我々のベストプラクティスを紹介します。

レギュラートーク(30分)

プロトコルでStoryboardともっと仲良くなる

417_72ki 417.72KI

Storyboardの扱いでしばしば挙げられる問題点の1つとして、文字列を扱う事によるtypoや変更への弱さが挙げられます。
ここではProtocol Oriented Programmingを用いて、そのデメリットをできる限り解消していきます。

採択
2018/08/31 16:50〜
Track C
レギュラートーク(30分)

Swiftの型システムに入門する - lib/Semaの歩き方

ukitaka_ ukitaka

Swiftの型システムを実装するSemaモジュールはswiftcの中でも1番巨大で複雑ですが、普段お世話になっているTypeCheckerの動きがわかるようになったらSwiftへの理解が一歩深まりそうですし、なにより型の話って楽しいですよね!!

このトークではSemaの実装をチョット読めるようになることを目標に、Swiftの型システムがもつ特徴を「型システム入門」や実際の実装を参考にしながら簡単に解説します。

レギュラートーク(30分)

今こそMetal!今さらOpenGL? MetalとOpenGLで学ぶ3Dプログラミング入門

ta_ka_tsu Takatsu Youichi

3Dプログラミングに興味があるけどすごく難しそう…
そう思う方は少なくないと思います。

しかし実は3D描画の仕組みはとても単純な処理の組み合わせです。
その仕組みさえ理解してしまえば最初に乗り越えるべき壁はとても低くなります。

本トークでは3Dプログラミングの基礎をMetalで解説します。
他のプラットフォームではOpenGLもまだまだ現役です。
Metalとの差異を踏まえつつ、まとめて学んでしまいましょう。