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

インドのインターネット環境との戦い方

tatsuhama50 辰濱健一

「ギガが足りない?メガが足りないんだ!」

昨年、日本で公開してきたアプリをインドにも公開しました!
日本では問題なく動いているのに、インドでは問題多発。。。

実際にインドに2週間赴いて調査をしてみると、通信環境が日本とは全然違うことが発覚。
そんな環境でもちゃんと動いているアプリは多々あります。

他アプリの挙動からも学んだ、インドの通信環境の攻略法についてお話しします。

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

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

nonchalant0303 Takeshi Ihara

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

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

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

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

kateinoigakukun 家庭の医学

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

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

会社からiMac Proを買ってもらうためにした3つのこと

koba_dog kobaken

昨年iMac Proが発売され、そのスペックに多くのiOSエンジニアが魅了されています。
少しずつ企業でも採用されてきましたが、比較的高価なマシンであるが故手が出せていない企業が大半なのではないでしょうか。
このトークでは、新卒エンジニアが初めてiOSアプリ開発を経験し、そのビルド時間と向き合い如何に会社からiMac Proを買ってもらうに至ったかを紹介します。
現開発環境やそこでのビルド時間の計測/測定方法も紹介していきます。

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

実演で振り返るARKitのこれまでとこれから

TK_u_nya cokaholic

ARKit は WWDC2018 で ARKit 2.0 として大幅なアップデートが行われ、今まで以上に AR で表現できることの幅が広がりました。
今回は ARKit の Ver1.0 ~ 2.0 を実際のサンプルコードと実演で振り返り、ARKit 2.0 まででどういったことをARで表現できるのかをお話しします。

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

フリーダムな型の値で襲いかかってくる JSON さんとの戯れ方

__munepom__ munepom

最近、気味の悪い拡張子で有名になってしまった(?)JSON さん。
そんなJSONデータですが、valueは型が決まっていることが多いと思います。

しかし、不幸にもvalueの型が不定、かつ、それをRealmに保存することになったら。。。
型に厳しいSwiftでどのように対処すれば良いのでしょうか?

はじめてiOSアプリを開発して(うっかり沼にハマったことから)得られた知見を共有したいと思います。

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

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

ktanaka117 ダンボー田中

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

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

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

akatsuki174 akatsuki174

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

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

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

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

ta_ka_tsu Takatsu Youichi

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

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

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

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

stzn3 shiz

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

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

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

hironytic ひろん

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

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

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

rikusouda りくそうだ

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

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

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

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

yimajo 今城 善矩

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

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

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

orga_chem Kuniwak

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

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

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

iOSでデバッグをとても簡単にするためのライブラリを使ってほしい

malt03 malt03

DebugHeadというライブラリを作って、公私問わず使っています。
デバッグ用に情報を画面に出したり、状態を変更したりしたいけど、そのための実装をするのは面倒くさい…。
そんなときのためのライブラリです。
例えばUserDefaultやRealm内の情報を表示したり、アプリ内のファイルをブラウズしたり、例えば接続先サーバーを切り替えたり…。
用途は無限大です!

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

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

ktanaka117 ダンボー田中

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

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

4年以上前のiOSアプリをフルリプレースした話

kamui_project 4年以上前のアプリをフルリプレースした話

仕事で4年以上運用が止まったアプリを任されることになりました。

・モデルクラスが存在しない
・誰も仕様を知らない巨大BaseViewController
・テストコードも無い
etc.

そんな時合わせて舞い込んできたフルリプレースの話

・POP
・アーキテクチャ選定
・テストコード
etc.

昔のあるあるを今のあるあるに変える、絶賛奔走中のフルリプレース備忘録をお話できたらと思います。

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

メルカリUSで実践!SwinjectによるDependency Injectionのベストプラクティス

yoichitgy 多賀谷 洋一

Clean Architecture、VIPER、MVVMなど様々なアーキテクチャーでDI (Dependency Injection) が使われています。DIにより疎結合でテストを書きやすい設計にできますが、どのように依存関係を定義すればチームでメンテナンスしやすい構成になるか迷っていませんか?メルカリUSアプリを例に、Swinjectを利用したDIのベストプラクティスについて説明します。

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

Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせのお話)

fumiyasac Fumiya Sakai

アプリのアーキテクチャの選択においても、注目を浴びているRedux。
複雑になりがちなアプリの状態管理を扱いやすくできる点やデータの流れの見通しをよくする点などのメリットがあり、私自身もとてもその点を興味深く感じています。今回はアプリ自体は簡単ではあるものの少し複雑?なサンプルと一緒に基本的な部分や概念とUIに関する処理との組み合わせ方についてお話できればと思います。