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

設計時空のリファクタリング〜複数アーキテクチャを抱えたアプリのリファクタリング事例〜

ktanaka117 ダンボー田中

長く続くアプリ開発において、複数のアーキテクチャが積層のように負債となってしまうことは、割と多くの現場で起きているのではないでしょうか。
より良い開発をしていくためには負債の返済という、痛みを伴う対応を迫られるときがいつかきます。
このトークでは自分が直近で直面した負債の返済について話をします。
どう返済していったのか、チームとどうやって足並みをそろえたのか、様々な反省をお伝えします。

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

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

ktanaka117 ダンボー田中

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

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

In-App Purchase再考 ーサーバサイドエンジニアの運用経験と他決済手段との比較を添えてー

ohbarye ohbarye

Quipperが開発する学習サービス「スタディサプリ」ではIAP(アプリ内課金)による支払いが可能です。IAPは同サービスで高いシェアを持つ人気決済手段ですが、運用者の立場では他の決済手段と比べて不満がないわけではありません。このトークでは以下のトピックを通じてiOSアプリでの課金手段について再考します。

  • サーバサイドエンジニアとしての決済運用経験(障害、サポート)
  • 他の決済手段との比較(決済手数料、管理画面の使い勝手)
レギュラートーク(15分)

お前らはまだXcodeの本気を知らない

akatsuki174 akatsuki174

XcodeはIDEと呼べない---悲しいかなそんな声も囁かれる我らがXcodeですが、本当にXcodeは「できない子」なのでしょうか?

できないことではなくできることに目を向けるべく、このトークでは以下のことを話します。
・意外と知られてなさそうな便利な機能、設定
・Xcode 10では新しく何ができるようになるのか

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

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

417_72ki 417.72KI

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

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

フラグメントシェーダーで遊ぼう

ta_ka_tsu Takatsu Youichi

Metalに限らず、昨今の3D描画APIは「フラグメントシェーダー」と呼ばれるプログラム可能な陰影処理の仕組みを備えています。
本来はポリゴンで作った形状に対して、その表面の陰影や質感を表現するために各ピクセルの色を決定する機能です。

しかし本来とは全く違う使い方をすることで実に驚くべき描画が可能となります。
フラグメントシェーダーの仕組みとテクニックを交えつつ、フラグメントシェーダーによる様々な表現を紹介します。

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

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

koga_wiwi kiwi

マイクロインタラクションとは、ユーザーが操作した際に表示される、ちょっとしたアニメーションやフィードバックなどのアクションのことです。
Facebookなどのアプリで積極的に採用されており、自分のアプリにも入れてみたい、という方に向けて、マイクロインタラクションの使いどころや実装例を紹介します。

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

イチから始めるアクセシビリティ ~まずはできるところから~

stzn3 shiz

スマホは多くの人にとって生活に欠かせないものとなってきており、様々な環境、境遇の方がアプリに触れる機会も増えています。
そんな時、アクセシビリティは一つの大きなテーマになってくると思います。

  • そもそもアクセシビリティとは?
  • iOSではどんな機能が提供されているのか?
  • アプリに導入するには?
    といった基本的な部分に触れ、アクセシビリティに興味を持つきっかけづくりをしたいと思います。
採択
2018/08/30 19:30〜
Track B
レギュラートーク(15分)

再利用可能なUI Componentsを利用したアプリ開発

yuta24 多和田 侑

iOSアプリ開発とUIは切っても切り離せない関係ですが、UIの実装には時間がかかります。ですが、Atomic Designの考え方を取り入れ、デザイナーと認識合わせをすれば再利用可能な UI Components を定義することができ、開発速度を上げることができます。
このトークでは、UI Componentsを定義する上でデザイナーと認識合わせしたこと、実装する上で工夫したことを紹介します。

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

4000のワーニングと戦え!これは警告だ!

hironytic ひろん

大人数による大規模アプリで、コンパイラの出す警告を放置したら——
日々増加する警告数に危機感を抱いたエンジニア達が、チーム開発において警告と戦うために行っていたこととは?
警告を消し去る意味に立ち返り、目の前の警告に様々な手段で挑んでいたさなか、あることをきっかけに警告数はついに4000を超える!追い詰められた彼らは“秘策”を練るが……。
これは人類と警告の終わりなき戦いを描いた物語である。

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

iOSエンジニア向けC++入門

rikusouda りくそうだ

C++はSwiftの実装に使われていたり、Objective-C++でiOSアプリ開発にも使える言語で、iOSアプリ開発と無関係ではありません。
しかし、C++を使ったことのない方も多いのではないでしょうか。

本トークでは、iOSアプリ開発になじみの言語であるSwiftに例えてiOSアプリエンジニア向けにC++の書き方や読み方を紹介します。
C++でのオブジェクト所有権などSwiftと違うところにも着目します。

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

肥大化しがちなアプリの起動経路を整理する

d_date 松館 大輝

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

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

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

_atsushisakai 酒井篤

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

アジェンダ

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

iOS WKWebViewの魔改造

fokotate Shin

Content(仮):

  • 高速DOM操作 WKWebViewでダークモードを実現する
  • WKWebView内の動画再生をAVPlayerに移し替える
  • WKWebView内のジェスチャーをコントロールする
  • iOS12での変更点 (もしあれば)
  • その他 (viewportの強制変更,タップ位置の座標変換, Cookie操作, 広告ブロック, メモリ管理)
レギュラートーク(15分)

今から使えるasync/awaitライブラリの利用例とコードの解説、Swift 5からの非同期処理の標準を先取りしよう

yimajo 今城 善矩

2017年8月にSwiftの生みの親、クリス・ラトナー氏によってプロポーザルasync/await for Swiftの下書きが公開され、その内容は、コルーチンのサポートによって我々は非同期処理をより読み書きしやすいコードを書けることを意味しています。このトークは、Swift 3から使えるasync/awaitライブラリHydraの利用例とその内部実装を解説し、きたるべきSwift 5時代の非同期処理を先取りするトークとなります。

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

ARKitのための3D算数

kboy_silvergym KBOY@筋肉エンジニア

GraffityというARKitを使ったアプリを作っています。
ARKitやSceneKitは用意されたAPIを使えば色々なことが簡単にできてしまいますが、
高度なことをしようとすると、空間ベクトル、座標変換などの算数(数学)の知識が必要になることに気づくでしょう。
本トークでは、ARKitを使いこなすために自分が勉強した3Dプログラミングと基本的な算数(数学)について分かりやすく説明します。

採択
2018/09/01 14:40〜
Track C
レギュラートーク(15分)

iOS × GraphQLの嬉しみとつらみ

_mogaming SeiyaMogami

GraphQLを採用したAPIサーバー(Ruby on Rails)、APIサーバー・クライアント間を橋渡しするBFF(Expressサーバー)、クライアントのiOSアプリを開発する中で、見えてきた嬉しみとつらみの話をします。
・GraphQLについてとその魅力
・なぜBFFを挟むのか
・クライアントiOSアプリとBFFのやりとり
この3つの観点で、業務を通じて得た嬉しみとつらみを語ります。インフラ面の話はしません。

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

iOS アプリのアーキテクチャを選ぶときに重要なこと

orga_chem Kuniwak

皆さんは、どのようにして iOS アプリのアーキテクチャを決めていますか?過去の体験や世間の評判から決めているのではないでしょうか。

しかし、実はその選び方には落とし穴があるのです。この落とし穴を回避するために、何を重視し、そしてどこまでアーキテクチャに従うべきなのかについてお話しします。これを選ぶ指針について、ある実在のプロジェクトを例にお話しします。

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

iPhone が数秒おきにクラッシュするんだけど!

watura watura

2017年12月1日朝起きたら,Zaim のせいでiPhoneがクラッシュすると Twitter 上で騒がれていました.
前回のリリースから多少は時間がたっていたし,そもそもアプリが iPhone をクラッシュさせるなんてできるの?
本当にZaimのせいだったのか,そもそも何が起こっていたのか.何が原因だったのか.
わかったこと,推測できたこと,喋っても問題なさそうなこと喋ります.

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

オープンソースMDMのmicromdmを用いて、個人でデバイス管理をやってみる

n_atmark Atsuya Sato

企業におけるデバイス管理手法の一つに、MDMを用いる方法があります。
しかし、有料のMDMソリューションサービスを個人で触るハードルは高く、MDMを試すことができてない人も多いのではないでしょうか。
このトークでは、オープンソースMDMのmicromdmを用いたMDMサービスの立ち上げ方やMDMCertを用いたMDM Push証明書の取得法、API経由でのMDMコマンドの発布について紹介していきます。