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

あのサービスのあのUIが気になるあなたへ

_bannzai_ bannzai

あのサービスのあの気になるUIを妄想でコピー実装し、時間の許す限り実装に成功した道筋を解説していこうと思います

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

iOS アプリの開発速度を70%高速化したデバッグノウハウ

orga_chem Kuniwak

開発時間に占めるデバッグ時間の割合は少なくないため、この時間の短縮は開発速度を上げるためにとても重要です。この発表では、実際の中規模なアプリ開発で70%増もの開発速度向上を支えたデバッグノウハウを初心者にもわかりやすく紹介します。

このノウハウには、効果が高いデバッグの5W1Hの解説や、リビルドなしでデバッグする方法、便利なライブラリの紹介を含みます。開発速度が気になっている方はぜひ聞いてみてください!

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

MVIアーキテクチャの採用でテストとログ取りの悩みが解決した話

Susan_jacko watanave

ユニットテスト書いてるけど、イマイチしっくり来ないな...
ログ取り一応やってるけど、コレでいいのかな...
これらの悩みが、MVIアーキテクチャの採用によって一気に解決しました。

話すこと (予定)
・MVIアーキテクチャとは?
・実例 iOSで実装するMVI
・実装量が増えがちなアーキテクチャの時短術
・MVIでのテスト戦略
・MVIでのログ取り

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

Synchronized iPhones!

TachibanaKaoru TachibanaKaoru

複数のiPhoneを、連携させたことがありますか?
一面にならんだ数十台のiPhoneにシンクロナイズドスイミングのような全く同じ表示をさせる……単純に見えますが、実は技術的にはとても高度なテクニックを必要とします。
フレームレート60fpsのiPhoneで、ぴったりあった動作を実現するためには端末間に許されたずれは、16ミリ秒以下。
これを実現するには、どんな要素技術、どんな設計、どんなテクニックを使えばよいでしょうか。

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

MicroViewControllerのステート副作用管理技術「ThunkBag」の紹介

orakaro orakaro

メルカリの新アーキテクチャー”MicroViewController”にReduxライクステートが導入されましたが、そのステートの副作用管理問題に悩まされた時期もありました。副作用を優先すべきケースと優先すべきでないケースの明確化、プロパティーの順序を意識することなく安全なステート変更の保証など、上手く副作用を管理する仕組みのThunkBagをこのトークで紹介致します。

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

grpc-swiftを使ってiOSアプリでも快適なgRPC通信を行う

KyoheiG3 Kyohei Ito

Swiftで記述されたiOSアプリでも、grpc-swiftを利用してgRPC通信をある程度手軽に利用可能になります。
gRPCを利用すると、通常の通信を行うよりも通信速度は速く通信量も少なく済み、更には双方向での通信を行うことができます。
今回は、gRPCの概要、grpc-swiftの導入方法、実際にプロジェクトで利用する際の応用的なことや、grpc-swiftにコントリビュートしたときの経験談などをお話させていただきます。

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

既存アプリにCloudFireStoreを導入する簡単な方法

sun54907 海川和弥

Firebase の RealTime Database に代わるものとして、昨年10月に発表された Cloud Firestore 。未だベータ版ですが、そちらを弊社マッチングアプリ「タップル誕生」に導入して、運用している話をしたいと思います。すでに出来上がっているシステムにどうやって組み込んだのか、どのくらい簡単なのか、リスクヘッジはどうなってるか、などのお話をしたいと思います。

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

UnityでマルチプラットフォームなARアプリを作る

tanakasan2525 Tatsuya Tanaka

iOSのARKit、AndroidのARCore、それぞれ特徴は似ていますが本来別々で実装する必要があります。ですが、Unityを利用することでAR体験に必要なロジック等をできるだけ共通化させることができます。
このトークでは、Unityを利用したARの開発方法から、マルチプラットフォーム向けのARアプリを作るための方法などをUnityの前提知識なしでも分かるように紹介します。

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

QuickとNimbleに見る、Mixed LanguageかつCross-Platformなライブラリ開発

ikesyo Sho IKEDA

QuickとNimbleというテスト用ライブラリを知っていますか?XCTestをラップし、テストコードをより楽しく、より効率的に書けます。これらはSwiftとObjective-Cの両方から使え、またSwiftPMにも対応し、Linux(サーバーサイドSwift)でも使えます。

コアコントリビューターが、このMixed LanguageかつCross-Platformという特徴をどのように実現・メンテナンスしているかを解説します。

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

iOSアプリ内で不正なSSL証明書を検知する

kobakei122 kobakei

「HTTPS化していればセキュリティ対策は十分」などと思っていませんか?
HTTPS化していても、無線LANやネットワーク機器にセキュリティ対策がなされていないと、中間者攻撃によって通信が盗聴・改ざんされるリスクがあります。これを防ぐ方法として、不正なSSL証明書を検知するピン留めという手法があります。
本発表ではピン留めを実装する手順、またSSL証明書の更新の際に気をつけることを紹介します。

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

回遊率2倍を実現したiPadリニューアル対応

shoheiyokoyam shoheiyokoyama

タブレット型端末の中でもトップシェアを占めているiPad端末は、現在私たちの日常において無くてはならないものになっています。
私が担当したiPadリニューアル対応では、主要ページの回遊率が2倍、画面によっては3倍に向上しました。

このトークではiPadの縦・横画面対応やiPhoneと異なるUIを導入した話も交えながら、
iPadに最適化した際の設計やテクニックについてお話します。

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

Swift Compilerの最適化入門 - AllocBoxToStack編

kitasuke Yusuke Kita

varとletはSwiftコードを書く上で頻繁に使い、それぞれの特徴を理解してコードを書くことが重要です。しかし、実は適切な使い方をしていなくてもSwift Compilerがあるべき姿に最適化しています。このトークでは、Swift Compilerの最も重要な役割のひとつであるSIL(Swift Intermediate Language)を見ながらどのような最適化が行われているか紹介します。

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

東急ハンズのP2Pレジ間通信2018

r_plus taiki komaba

東急ハンズのレジは内製開発のiPadアプリで動いています。
そんなレジ用アプリはアプリ間で様々な情報を交換しています。

レジ間を飛び交う通信内容や通信方式の現在に至るまでの変遷を紹介します。

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

ログの発火テストをXCUITestで自動化しようとしたがUnitテストで実装した話

marty_suzuki marty-suzuki

運用段階のサービスで新規の機能実装した場合などに、QAテスト時にログの発火ミスなどのバグがあがってるくことがしばしばあるかと思います。
そこで画面操作に合わせたログの発火テストを自動化する試みをしました。
はじめはXCUITestで実装してみましたが様々な壁にぶつかったため、途中から方針を変えてUnitテストで実装することにしました。
本トークでは、実装する上での問題点や改善方法について話して行きたいと思います。

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

iOS12のNotification新機能と一緒に考える、本当にユーザーのためになるプッシュ通知

justin999_ 佐藤紘一

アプリ運営者はユーザに役立つ情報を届けるためにプッシュ通知を使っています。
しかし、一介のアプリユーザとして考えたとき、プッシュ通知はあまりいい印象がありません。届きすぎてうるさかったり、とどいた情報があまり役立たなかったりするからです。
このトークではどういう風にすれば、通知を許可してもらえて、長く使ってもらえるのかをiOS12で追加された機能も盛り込みつつサンプルコードを紹介しながら考えていきます。

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

Firestoreを使ったiOSアプリ開発の魅力

laiso laiso

Firestoreはアプリの命である「データ」を扱うBackend as a serviceの1つです。
先日私達はこのFirestore+Firebaseプラットフォームをすべてのバックエンドに使いサーバーレスなiOSアプリを開発しました。
その体験をもとに「まるでローカルDBを取り扱うように」Webバックエンドの連携を実現するFirestoreが持つシンプルで柔軟なデータストア層についてお話しします。

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

Swift 5のasync/awaitでiOSアプリ開発がどのように変わるか、予習ドリルで先取りする

koher Yuta Koshizawa

非同期処理のコードを改善するために、Swiftに適した形のasync/awaitがCore Teamから提案されています。iOSアプリは非同期処理のかたまりです。async/awaitの導入はiOSアプリ開発に大きな影響を与えると予想されます。本トークでは、提案の文書を元にiOSアプリ開発がどのように変わりそうかを説明します。また、実際にコードを書く演習時間を設け、iOSアプリ開発におけるasync/awaitを習得してもらいます。

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

5000行のUITableViewを差分更新する

banjun ばんじゅん🍓

差分更新のテクニックを使うと,IndexPathを持ち回ることなく,UITableViewの必要な箇所のみ挿入・削除できるようになります。
これはいつでも採用できる手法なのでしょうか? 0~5000行で変化するテーブルビューにも使えるでしょうか?

このトークでは主にトータルの更新パフォーマンスにフォーカスして,5000行規模の差分更新を実用的な速度にするために必要な,ボトルネックの解析と遭遇するトレードオフについて紹介します。

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

古いiOSのサポートをお行儀よく終了する方法

FromAtom FromAtom

iOS 12の発表を機に、iOS 9やiOS 10などの古いiOSのサポート終了を考えている方も多いと思います。
サポートバージョンはできるだけ少なくして開発コストを減らし、iOS 12対応に集中したいですよね。

このトークでは、古いiOSのサポート終了を考える際の、

  • iOSシェア数だけに頼らない判断基準
  • チームメンバーとのコミュニケーション
  • ユーザーが困らないようにする段取り
    などを紹介します。
レギュラートーク(30分)

iOSの理想的なUIを考える

fuwamaki24 fuwamaki

色んなアプリを使っていて「メニューがなぜモーダル表示?ドロワー表示の方が良いのでは?」など、UIに疑問を覚えたことありませんか?
しかしUIを考える側になってみると、ユーザからUIの指摘を受けるなんてこと、よくあるのではないでしょうか。
私はWWDC18に参加してAppleのデザイナーに直接質問してきました。そこで得た知見をもとに「〇〇の場合に理想的なUIは△△ではないか」という話をしたいと思います。