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

iOSアプリ開発における日本語命名

kumamo_tone Kazumasa Kumamoto

わかりやすいプログラムを書くために、命名はもっとも重要な要素のひとつです。

本セッションでは、Swift言語の生みの親の思想や、ドメイン駆動開発の話を交えつつ、国内のiOSアプリ開発において、現代においても一般的な英数字のみの命名にこだわる必要があるのか?という点について考察します。

また個人的に日本語命名を採用して半年ほどアプリ開発した際に、感じたメリットや、逆に予想外につらかった部分などについてご紹介します。

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

Interface Builder のつらみと向き合う

kumamo_tone Kazumasa Kumamoto

仕様変更に対応するため、部品を移動したら制約がすべて壊れてしまった…といった経験はありませんか?
StoryboardやIB(Interface Builder)は強力なツールですが、やや扱いづらい部分もあります。
本セッションでは、IBのつらさを軽減するTipsのほか、IBを使わないレイアウト方法、IBを使わずにStoryboardを編集する方法などに触れつつ、快適に、変更に強いUIを作るためにやっていることについてご紹介します。

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

Swaggerの定義レビューを導入して改善したAPIの設計から実装・運用までの流れ

496_ 六々

APIの実装で、Swaggerの定義レビューを導入して、アプリ側・サーバー側の認識を一致させることで手戻りを少なくした話。

導入する前のダメだったところから、導入してどこが変わったのかといったところをアプリエンジニア視点でお話できればと思います。

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

Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する最適なレイアウトへ -

dekatotoro Hato Yuji

多くのサービスは縦や横に固定したアプリではないでしょうか。
iOS8から「Adaptive User Interface」という考え方が取り入れられ、
解像度の異なるデバイスや画面の向きによって最適なレイアウト対応が推奨されています。

iPhoneでの画面回転に対するニーズはそこまで多くないかもしれませんが、iPadの対応にも応用できます。
Adaptive UIへの対応と知見についてお話したいと思います。

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

コミットログでタイムスリップ

dchn2904 だっちゃん

「コメントは3ヶ月後の自分へ」とあるように、Gitのコミットログでも同じことが言えます。

「○○のバグに対応」「△△の処理を消す」といったコミットログを見た経験があるはずです。
PRを見ている時は何も問題のないコミットログでしょう。
しかし、未来の自分がコミットログを見返して「なぜ・どんな対応したのか」を読み解くことは可能でしょうか?
このトークでは、コミットログの書き方を変えたことで、改善できたあれこれを発表します。

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

実例から学ぶモバイルアプリにおけるモーダル/モードレスの考え方

usa619_ Ryo Usami

モーダル遷移、プッシュ遷移のどちらを利用すべきか明確に説明できますか?モードについての考え方は、OSアプリを構成する重要な要素です。デバイスの大画面化やApp上のタスクの複雑化に合わせて、標準アプリも新しいモーダルデザインが導入されています。このトークでは、モードについての基礎的な考え方から、昨今の進化したモーダル/モードレスデザインについて「Wantedly Visit」での実例を交えながらご紹介します。

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

Managing state in a reusable way for complicated forms

shenmedemo Anton Van Eechaute

A story about how we tried to solve the problem of making users fill in their profiles. Typically these profiles have lots of data and possible states. We solved this problem using ReactorKit.

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

Auto-Renewable Subscriptionsを5年間運用した歴史から学ぶ注意点

yuutetu 加賀江 優幸

私の担当するアプリでは、Auto-Renewable Subscriptionsを長らく運用してきました。
しかし、その運用を続ける上でぶつかった問題も多くありました。
Auto-Renewable Subscriptionsの運用事例を元に、ユーザにとって最高の形でプレミアムな機能を提供するために学んだことについてお話します。

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

ReactorKitを全面導入して分かったこと

ngtknt 永田 健人

ReactorKitは、Fluxからインスパイアされた軽量なフレームワークで、Reduxなどと比べてより簡単に使い始めることができます。Wantedly Visitのアプリでは昨年から導入し、本格的に全面導入をしています。セルクラスでの状態管理や各View Controller間での状態共有など実践的な課題に対してどのように実装していったかについてお話します。

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

UITableViewで作るCellごとにピンチズームできる画像ビューア

496_ 六々

ピンチズームしながらCellの高さを動的に変えて、同時にスクロールも阻害しないようなUITableViewとCellの連携についての話。

ピンチズームとダブルタップズームを実装し、ピンチズームしながらスクロールもできる、普通の挙動を実現するまでのお話をします。

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

自作HPをPWA化してみた

henteko07 へんてこ

iOS 11.3からiOSのSafariでも一部サポートされたPWAを、自作のHPに適用した話をします。
iOS11.3及びiOS 12でのPWAのサポート状況などもご紹介します。
また今からWebサイトをPWA化する人向けに実装の話や、PWA化する上で困った話などをします。

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

小さく始める責務分散〜FatViewControllerへメスを入れる〜

ktanaka117 ダンボー田中

昨年のiOSDCではFatViewController問題に関する概要と、いかに責務分散していくかを話しました。
https://dev.classmethod.jp/smartphone/iosdc-2017-setsuko/

今年のトークではFatVCとはどういうものか簡単な説明をして、実際にありそうなFatVCにメスを入れ、責務分散していく様子をライブコーディングでお伝えします。
節子のその後の成長に乞うご期待!

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

アトミックデザインの導入と実践プロセス

ngtknt 永田 健人

アトミックデザインは、デザインコンポーネントの共通化により開発プロセスの効率化を図るためのフレームワークです。Wantedly VisitのiOS Appでは、このフレームワークを導入し、開発の効率化とデザインの一貫性を向上させることができました。このトークでは、具体的にどのようにコンポーネントを分類し、どのようにプロセスを回していったかについて、実際に作成したコンポーネントと共にご紹介します。

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

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

horita_yuya horita-yuya

TableView, CollectionViewの部分更新の為に、Dwifft, Differ, RxDataSourcesなどのライブラリが開発されて来ました。
効率的な計算のために内部では差分アルゴリズムが使われています。そして、ライブラリを使う上でその原理を理解しておくことはとても重要です。
理解と実装を照らし合わせられれば、ライブラリ選定の役にも立つと思います。
今回、Myersのアルゴリズムについて解説させて頂きます。

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

大規模サービスフルリニューアルの舞台裏

komamichif まっちゃん

バイトルでは、昨年大規模リニューアルを行いました。
このトークでは、バイトルのリニューアルの舞台裏と、失敗事例を交えながら、バイトルアプリでのリニューアル後のヤバいバグの対応方法や、星1の悲しいレビューを如何に回復してきたかについてお話します。

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

富豪的分析の世界へ ~Google AnalyticsからFirebase Analyticsへの移行~

yuutetu 加賀江 優幸

皆さんは、Google AnalyticsとFirebase Analyticsのどちらを使用していますか?
Google AnalyticsからFirebase Analyticsへの以降の注意点について話しします。
具体的には、
・Google AnalyticsとFirebase Analyticsの違い
・大規模アプリに置いてどのように実装し移行を行うか
についてお話します。

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

How to not do swipeable views, and also how to do them.

benguild Ben Guild

Things we tried to do to make a collection of UIViewController(s) horizontally swipeable with pages, the issues we ran into, + also implementing of "pull-to-dismiss" with interactive transitioning for a downward swipe.

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

Lint

kgmyshin kgmyshin

Lintはチーム開発に大きなメリットをもたらします。
CIと組み合わせることでスタイルの強制を自動でできるようになります。

そのLintがどのように動いているのか。どう導入するのかなどを紹介します。
コーディング規約は標準なものはあるものの、チームによって多少のカスタマイズがされているのが常です。
それによってLintのカスタマイズも必要になってきます。その方法も話せたらと思います。

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

Androidエンジニアが1週間でiOSアプリ開発を学び、1ヶ月で大規模アプリ開発にJOINした話

koba_dog kobaken

Java, Kotlin, Android Studio, adb, Gradle...
それらとの決別、Xcodeとの出会い、Data Bindingの不在、立ちふさがるAutoLayoutの壁
これは、とあるAndroidエンジニアが如何にしてiOSエンジニアにジョブチェンジし、それぞれの違いに苦しみ、時に喜びを感じてきた物語である

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

Effective iOS programming

eduraaa ezura

ちょっとした気遣いの積み重ねが人に優しく美しいコードを支えます。
「Swift という素晴らしい言語の力を存分に使い、人を導くコードを書く」「UIKit の癖とうまく付き合う」
これらを実現する、今すぐ小さく始められる、コード上での気遣いのテクニックをお話しします。
(iOS 開発における初級者向けセッションです)