わかりやすいプログラムを書くために、命名はもっとも重要な要素のひとつです。
本セッションでは、Swift言語の生みの親の思想や、ドメイン駆動開発の話を交えつつ、国内のiOSアプリ開発において、現代においても一般的な英数字のみの命名にこだわる必要があるのか?という点について考察します。
また個人的に日本語命名を採用して半年ほどアプリ開発した際に、感じたメリットや、逆に予想外につらかった部分などについてご紹介します。
仕様変更に対応するため、部品を移動したら制約がすべて壊れてしまった…といった経験はありませんか?
StoryboardやIB(Interface Builder)は強力なツールですが、やや扱いづらい部分もあります。
本セッションでは、IBのつらさを軽減するTipsのほか、IBを使わないレイアウト方法、IBを使わずにStoryboardを編集する方法などに触れつつ、快適に、変更に強いUIを作るためにやっていることについてご紹介します。
APIの実装で、Swaggerの定義レビューを導入して、アプリ側・サーバー側の認識を一致させることで手戻りを少なくした話。
導入する前のダメだったところから、導入してどこが変わったのかといったところをアプリエンジニア視点でお話できればと思います。
多くのサービスは縦や横に固定したアプリではないでしょうか。
iOS8から「Adaptive User Interface」という考え方が取り入れられ、
解像度の異なるデバイスや画面の向きによって最適なレイアウト対応が推奨されています。
iPhoneでの画面回転に対するニーズはそこまで多くないかもしれませんが、iPadの対応にも応用できます。
Adaptive UIへの対応と知見についてお話したいと思います。
「コメントは3ヶ月後の自分へ」とあるように、Gitのコミットログでも同じことが言えます。
「○○のバグに対応」「△△の処理を消す」といったコミットログを見た経験があるはずです。
PRを見ている時は何も問題のないコミットログでしょう。
しかし、未来の自分がコミットログを見返して「なぜ・どんな対応したのか」を読み解くことは可能でしょうか?
このトークでは、コミットログの書き方を変えたことで、改善できたあれこれを発表します。
モーダル遷移、プッシュ遷移のどちらを利用すべきか明確に説明できますか?モードについての考え方は、OSアプリを構成する重要な要素です。デバイスの大画面化やApp上のタスクの複雑化に合わせて、標準アプリも新しいモーダルデザインが導入されています。このトークでは、モードについての基礎的な考え方から、昨今の進化したモーダル/モードレスデザインについて「Wantedly Visit」での実例を交えながらご紹介します。
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.
私の担当するアプリでは、Auto-Renewable Subscriptionsを長らく運用してきました。
しかし、その運用を続ける上でぶつかった問題も多くありました。
Auto-Renewable Subscriptionsの運用事例を元に、ユーザにとって最高の形でプレミアムな機能を提供するために学んだことについてお話します。
ReactorKitは、Fluxからインスパイアされた軽量なフレームワークで、Reduxなどと比べてより簡単に使い始めることができます。Wantedly Visitのアプリでは昨年から導入し、本格的に全面導入をしています。セルクラスでの状態管理や各View Controller間での状態共有など実践的な課題に対してどのように実装していったかについてお話します。
ピンチズームしながらCellの高さを動的に変えて、同時にスクロールも阻害しないようなUITableViewとCellの連携についての話。
ピンチズームとダブルタップズームを実装し、ピンチズームしながらスクロールもできる、普通の挙動を実現するまでのお話をします。
iOS 11.3からiOSのSafariでも一部サポートされたPWAを、自作のHPに適用した話をします。
iOS11.3及びiOS 12でのPWAのサポート状況などもご紹介します。
また今からWebサイトをPWA化する人向けに実装の話や、PWA化する上で困った話などをします。
昨年のiOSDCではFatViewController問題に関する概要と、いかに責務分散していくかを話しました。
https://dev.classmethod.jp/smartphone/iosdc-2017-setsuko/
今年のトークではFatVCとはどういうものか簡単な説明をして、実際にありそうなFatVCにメスを入れ、責務分散していく様子をライブコーディングでお伝えします。
節子のその後の成長に乞うご期待!
アトミックデザインは、デザインコンポーネントの共通化により開発プロセスの効率化を図るためのフレームワークです。Wantedly VisitのiOS Appでは、このフレームワークを導入し、開発の効率化とデザインの一貫性を向上させることができました。このトークでは、具体的にどのようにコンポーネントを分類し、どのようにプロセスを回していったかについて、実際に作成したコンポーネントと共にご紹介します。
TableView, CollectionViewの部分更新の為に、Dwifft, Differ, RxDataSourcesなどのライブラリが開発されて来ました。
効率的な計算のために内部では差分アルゴリズムが使われています。そして、ライブラリを使う上でその原理を理解しておくことはとても重要です。
理解と実装を照らし合わせられれば、ライブラリ選定の役にも立つと思います。
今回、Myersのアルゴリズムについて解説させて頂きます。
バイトルでは、昨年大規模リニューアルを行いました。
このトークでは、バイトルのリニューアルの舞台裏と、失敗事例を交えながら、バイトルアプリでのリニューアル後のヤバいバグの対応方法や、星1の悲しいレビューを如何に回復してきたかについてお話します。
皆さんは、Google AnalyticsとFirebase Analyticsのどちらを使用していますか?
Google AnalyticsからFirebase Analyticsへの以降の注意点について話しします。
具体的には、
・Google AnalyticsとFirebase Analyticsの違い
・大規模アプリに置いてどのように実装し移行を行うか
についてお話します。
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.
Java, Kotlin, Android Studio, adb, Gradle...
それらとの決別、Xcodeとの出会い、Data Bindingの不在、立ちふさがるAutoLayoutの壁
これは、とあるAndroidエンジニアが如何にしてiOSエンジニアにジョブチェンジし、それぞれの違いに苦しみ、時に喜びを感じてきた物語である
ちょっとした気遣いの積み重ねが人に優しく美しいコードを支えます。
「Swift という素晴らしい言語の力を存分に使い、人を導くコードを書く」「UIKit の癖とうまく付き合う」
これらを実現する、今すぐ小さく始められる、コード上での気遣いのテクニックをお話しします。
(iOS 開発における初級者向けセッションです)