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

DDD(ドメイン駆動設計)を知っていますか??

takattata Takasy

DDDを学んだことはありますか?
レイヤー化アーキテクチャとかの話でしょ?と思っていませんか?
DDDは小手先で行うものではなく、仕組みを作っていくことが主です。
DDDを学び実践することで、チーム各員の意識が変わり、今のプロダクトが整理されていくはずです。
そんなDDDへの入り口を開くセッションに出来ればと思います。

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

ライブコーディングで、Swiftの値型の特性を活かしてiOSアプリを作る

koher Yuta Koshizawa

Swiftは値型中心の言語です。標準ライブラリで提供されている型はほぼすべてが値型です。値型を活用することでミュータブル/イミュータブルクラスのいいとこどりをし、簡潔でメンテナンス性の高いコードを書くことができます。しかし、Obj-CやUIKitの影響もあり、iOSアプリは今も参照型中心で開発されることが多いように思います。このトークでは、ライブコーディングでアプリを丸々一つ作り、値型の特性を活かしたiOSアプリの開発手法を紹介します。

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

デザイナーと一緒にコラボして仕上げるアニメーション実装とショーケース紹介

fumiyasac Fumiya Sakai

社内で新規アプリを開発するぞ、そして今回はシンプルなUIの中にも気持ちの良いアニメーションを盛り込むぞ!という所から始まったプロジェクトにてUI開発を担当した際に、得た知見やデザイナーとの協業の際に留意した点、シンプルな中にも心地よいアクセントをつけるためのポイントになる実装やデザイナーとの協業の際に使用したツール、UI表現をする過程で検討したライブラリ等やその他の点についてもご紹介できればと思います。

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

iOSアプリの起動経路を整理する

d_date 松館 大輝

通常起動にプッシュ通知、Universal Linksはもちろんのこと、Core SpotlightやWidget、Home Screen Quick Actionには対応してますか?
今年はiOS12でSiri Shortcutが登場。またAppDelegateが肥大化します。
…なんてことがないようにきれいに整理しませんか?
確認に手間がかかる起動経路まわりを効率よく実装するための設計やテストについて具体例を用いて紹介します。

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

差分アルゴリズムの原理について

horita_yuya horita-yuya

TableView, CollectionViewの部分更新の為に、RxDataSources, IGListKitなど、多くのライブラリが開発されて来ました。
それらの内部では、効率的な差分検出のために差分アルゴリズムが使われています。作る側はもちろん、使う側もその原理について理解しておくことは重要です。
今回、Myers, Heckelの2種類の差分アルゴリズムについて解説させて頂きます。

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

シンボリケート/クラッシュログを人間が読めるようになるまで

hironytic ひろん

アプリがクラッシュするとデバイス内にもクラッシュログが残ることをご存知でしょうか。ただ、そこには16進数のアドレスが並んでいるだけの場合もよくあります。本トークではそのアドレスをメソッド名に変換するツールを紹介し、それがどのように動作するのかを解説します。うまく変換できない原因を取り除けば、それはハッピーシンボリケーション!
●話さないこと:クラッシュログの読み方・クラッシュログを活用したデバッグ手法

採択
2018/09/01 11:20〜
Track C
レギュラートーク(30分)

二癖くらいある画面収録からの生放送

matsuokah_ matsuokah

iOS11から可能になった画面収録で生放送機能を実装し、サービスインするまでの実装

  • 生放送のするまでの全体フロー
  • RPBroadcastSampleHandlerおよび、画面収録のExtensionのライフサイクルについて
  • 画面のサンプリングタイミングと生放送の特性について
  • SampleBufferの差し替えによる、生放送中の動画の動的な編集
  • 動画データの検証ポイント
レギュラートーク(30分)

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

_atsushisakai 酒井篤

「家族アルバム みてね」は、徐々に国外にユーザーを拡大しています。常に海外での快適な利用が実現されることを意識して開発していますが、その中でもメディアを高速に配信し・閲覧できることは、最重要課題でした。どのように課題を認識・改善したかの知見をお話ししたいと思います。

アジェンダ

  1. 認識(NewRelicによる計測)
  2. 設計(AWSも含むシステム全体)
  3. アプリ実装について
  4. 成果とさらなる課題
採択
2018/08/31 16:00〜
Track B
レギュラートーク(30分)

iOSと(深層)強化学習

yuky_az 我妻幸長(Yukinaga Azuma)

強化学習は機械学習の一種で、試行錯誤を通じて「環境における価値を最大化するような行動」を「エージェント」が学習します。強化学習が例えばゲームでうまく機能した場合、次第にゲームの打ち方は開発者の手を離れ、エージェントは開発者自身よりもずっと強くなっていきます。発表では、強化学習の概要、及びSwiftで強化学習をどのように実装できるのか、そして、AlphaGoで注目を浴びた深層強化学習とは何か、について解説します。

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

UITesting with GraphQL

iida_0213 飯田勇人

GraphQLを利用したiOSアプリケーションでUITestを実現する方法について説明します。

Agenda

  • GraphQLライブラリの「Apollo」を利用したiOSアプリケーション開発について
  • ServerSideSwiftを利用してCI上でWebMockを立ち上げUITestを行う方法について
  • WebMockでGraphQLのテストデータを効率よく記述するために開発したライブラリの紹介
1
採択
2018/08/31 17:40〜
Track B
レギュラートーク(30分)

Swiftの生みの親によるasync/await for Swiftを徹底解説し、新しい非同期処理の手法を理解する

yimajo 今城 善矩

Swiftの生みの親、クリス氏によって2017年8月にプロポーザルasync/await for Swiftの下書きが公開されました。その内容はコルーチンサポートで、我々はSwiftで非同期処理をより使いやすく読みやすいコードを書けるようになります。このトークはその内容を理解するために、様々な言語で使われるasync/awaitの比較分類、Swift3から使えるasync/awaitライブラリの利用例とその内部実装を解説します!

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

モブプログラミングで理解するasync/await

yimajo 今城 善矩

2017年8月にSwiftの生みの親、クリス・ラトナー氏によりプロポーザルasync/await for Swiftの下書きが公開され、その内容は、コルーチンサポートにより非同期処理を読み書きしやすく書けるようになることを意味しています。このトークでは、Swift 3から使えるasync/awaitライブラリHydraを使って、ライブでアプリを作っていくセッションです。参加者のみなさんはTwitterのハッシュタグでコメントをください!

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

圏論とSwiftへの応用

inamiy 稲見 泰宏

圏論(カテゴリー理論)は、「対象」と対象間の「射」(関係性、構造)の集まりからなる「圏」を抽象的に扱う数学理論です。関数型プログラミングで度々登場する「モノイド」「関手」「自然変換」「モナド」の由来であり、さらには「米田の補題」「随伴」「極限」「F代数」「カン拡張」など、より高度な概念が登場します。この発表では、圏論から得られる様々な帰結について、Swiftの文法と型で分かりやすく解説していきます。

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

Xamarin.iOS deep dive

ailen0ada ひらのつばさ

SwiftやObj-Cで開発されているiOS開発者のみなさんに向けて,Xamarin.iOS をつかったC#言語による開発の実際と,ここ1年で踏み抜いてきた地雷を共有します。またアドバンスドなトピックとして,なぜC#で開発できるようになるのか,また地雷がなぜ埋め込まれてしまうのかをXamarinのソースコードに踏み込んで解説します。

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

Swift化徹底マニュアル ~コード移植のための戦略と戦術~

gaopin1534 高松幸平

Swift化と言うと、普通objcからSwiftにコードを移植する作業そのものを指します。
しかし、実際には、コードを移植する作業に入る前に多くの障害が存在します。
ビジネスサイドを説得しプロジェクトを立ち上げ、状況にあった方針を決定する。
こういった段階が「Swift化」には最も重要で、最も困難です。
本セッションでは、コードを移植する段階はもちろん、その前段階まで、「Swift化」の助けになる知見を、一気通貫でご紹介します。

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

既存アプリの再設計と大規模リファクタリング

kobakei122 kobakei

KyashのiOSアプリは今年アーキテクチャの見直しと大規模なリファクタリングを実施しました。KyashのiOSチームが巨大な既存アプリをどう変えていったのかを、実際にどのように効果があったかを交えてご紹介します。

内容(予定)
・アーキテクチャを見直す
・テストを書きやすくする
・非同期処理を書きやすくする
・Storyboardとの付き合い方を考える
・ビルドを高速化する

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

Swiftで聞いておぼえるテスト書き

ktanaka117 ダンボー田中

近年、アプリの複雑化に伴ってiOS界隈でもテストの機運は高まっています。
しかしどんなテストをどうやって書いていけばいいかわからず、一歩を踏み出せない人も多いのではないでしょうか。
このトークでは、iOS開発でよく目にするロジックに対して、まず一歩目として、ユニットテストをどう入れていくかのサンプルを、コードとともに紹介していきます。
テスト技法やなぜそこにテストを書くのかなども紹介しようと思います。

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

既存アプリの再設計と大規模リファクタリング

kobakei122 kobakei

KyashのiOSアプリは今年アーキテクチャの見直しと大規模なリファクタリングを実施しました。KyashのiOSチームが巨大な既存アプリをどう変えていったのかを、実際にどのような効果があったかを交えてご紹介します。

内容(予定)
・アーキテクチャを見直す
・テストを書きやすくする
・非同期処理を書きやすくする
・Storyboardとの付き合い方を考える
・ビルドを高速化する

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

Mastring Ethereum

yuzushioh yuzushioh

Ethereumに特化したWei walletというモバイルウォレットをOSSで公開しました。このアプリの中ではEthereumKitというEthereumで必要な処理を行うためのフレームワークが利用されています(僕が作りました)。Wei walletの開発や仕様の中で利用したブロックチェーン特有の機能を紹介するとともに、ウォレットの仕組みや送金がどのように行われているのかを紹介したいと思います。

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

SSL証明書のピン留めを実装する

kobakei122 kobakei

「HTTPS化していればセキュリティ対策は十分」などと思っていませんか?
HTTPS化していても、無線LANやネットワーク機器にセキュリティ対策がなされていないと、中間者攻撃によって通信が盗聴・改ざんされるリスクがあります。
本セッションでは、中間者攻撃対策としてSSL証明書のピン留めを実装する方法を紹介します。またKyashにおいて実際にクライアントとサーバーでどのようにSSL証明書を運用しているかについてもご紹介します。