【iOSDC2019】個人的に気になってるセッション
いよいよ今日からiOSDC2019が始まります!
自分は昨年に引き続き2年連続での参加。残念ながら初日は参加できないのですが、金曜からの2日間思いっきり楽しもうと思っています!
ここでは個人的に気になっているセッションについて書こうと思います。
ライブラリのインポートとリンクの仕組み完全解説
ライブラリを使おうとして No such module 'Firebase' や Linker command failed といったエラーに遭遇した経験、iOSエンジニアなら少なくとも一度はあるでしょう。
そんなときだいたいはエラーメッセージでググって調べたり、とりあえずクリーンして再ビルドするなどして解決します。
でもなぜ解決できたのかはわからずのままなので、また同じ問題に遭遇したとき同じようにググったりクリーンしたりを繰り返します。
本セッションに参加することで、
モジュールのインポート・リンクがどのように解決されるのか、リンクとはいったい何をしているのかを学ぶことで、システマチックに問題を切り分け、解決できるようになります。
とのことなので、非常に楽しみにしています!
Swiftクリーンコードアドベンチャー ~日々の苦悩を乗り越え、確かな選択をするために~
日々コードを書いていて、「もっと良い書き方ないのかな?」と思い悩むことはしょっちゅうあります。
また、コードレビューをするとき、「こうやって書いたほうが良いと思うけど、明確な理由が説明できない」という理由で指摘せずに終わってしまう、といったこともあります。
本セッションに参加することで、
「こういうときはこういう理由でこうすれば良い」といった「確かな選択」ができる
とのことです。
多くの人から良いコードと評価されている「クリーンコード」を知ることで、自信を持ってコードを書けるようになるし、コードレビューも的確になると思うので、すごく楽しみなセッションです!
画像処理における、UIImageとCGImageとCIImageの効果的な使い分け
自分は画像処理はあまり経験がなく、UIImageでAPIから取ってきたURLの画像を表示したり、画像クロップやサイズ縮小等の基本的な処理をするコードを書いたことがあるくらいです。
基本的な処理であってもググると色々な書き方が出てきて、使用するクラスもバラバラだったりするので、どれが効率の良い、正しい使い方をした書き方なのかわからず書いているというのが現状です。Appleのドキュメント見てもあんまり詳しい解説ないんですよね(自分の調査力不足かもしれませんが)。
本セッションでは、UIImage / CGImage / CIImageの各画像クラスの特徴を解説しながら、これら3つのクラスの画像処理における使いどころについてご紹介します。
とのことなので、どういうときにどのクラスを使えば良いかの理解を深めることができると期待しています。
また、リアルタイム画像処理の実例も紹介してくれるようなので、画像処理に対する知見が深められるのではないかと楽しみです!
FatViewControllerを安全に書き換える方法が見つからなかったので、どういう痛みを許容するか考えた
私も憎っくきFatViewControllerと戦っているエンジニアの一人です。
デグレしないようにテスト書いてからリファクタしたい、でもそもそもテスト書けるコードになってない。。
じゃあちょっとずつメソッドに切り出してからテストを書いていこう、でもそこでデグレっちゃったら。。
そんな誰もが抱える悩みに対して、本セッションでは現実的な回答の一つを提示してくれるようです。
なるべく安全に、現実的に書き換えていく方法にはどんなものがあったか、どんな部分で安全を切り捨てて痛みに耐える判断をしたのか話をします。
こうした勇気ある先人の方々にはほんとに感謝しかない。
知見を得たらすぐ現場に持ち帰ろうと考えている、もっとも楽しみなセッションの一つです!
詳解 Auto-Renewable Subscriptions
自分もサブスクリプションモデルアプリの開発に携わっているので、Auto-Renewable Subscriptionsはしっかり押さえておきたいトピック。
アジェンダを見ると、「In-App Purchasesについて」や「Auto-Renewable Subscriptionsの大まかな処理の流れ」といった基本的なところから、「WWDC19で発表されたサーバー間通知の新しい仕様について」という最新情報まで扱われているので、基礎を学びつつ最新情報も得られるという魅力的なセッション!
ここで紹介されるノウハウは是非とも持ち帰りたい!
もし文系卒の女子エンジニアが 5年もののiOSアプリにユニットテストを導入しようとしたら
プロポーザルの内容に親近感!
自分もどうやってユニットテストを入れていこうと悩んでいる身なので、このセッションは要注目!
うちのアプリはレガシーすぎてテストなんて書けないと思っている方が、
テストを書いてみよう!と思ってくれることを目標としています。
5分LTじゃなくフルセッションで聞きたいくらい!
個人開発のアプリが輝くために
自分もせっかく作った個人アプリがあるので輝かせたい!
ASOとかちょろっと調べて試したけど、あんまりちゃんとやらずに放置してるなあ。
このセッションでは私が個人開発したアプリが100万DLされるまでの取り組みや改善などを中心に、プロモーションにお金を費やすことのできない個人開発のアプリをより多くの人に利用してもらうための手法やアイディアについてお伝えします。
余すところなく持ち帰って実践します!
スナップショットテスト実戦投入
アプリの規模が大きくなってきて、複数のチームがそれぞれで画面に修正を加えていると、予期せぬデグレが起きることが結構あります。
画面の差分チェックが自動化できることは知ってはいましたが、その導入コストを考えるとなかなか踏み出すのにパワーが入ります。
なかなか一筋縄ではいかない導入でしたが、
結果として画面のカタログを作成しデグレ検知に成功しました。
本セッションではスナップショットテストを実際に導入し、デグレ検知をすることに成功した例を発表してくれるようで、これは自社で本格的に導入したいとなったときの良い参考資料となりそうです!
導入のメリットに見合うかどうか、自身のプロダクトが抱えている課題を解決できそうか、その参考となる情報を提供できればと思います。
まさにこのあたり、濃い情報を期待しています!
カスタムInstrumentsでアプリをピカピカに!
XCodeのInstrumentsは存在はなんとなく知ってるけど使ったことがない状態。
CPU使用率やメモリリーク検出が主な用途と思っていましたが、
アプリに機能を実装し、UIが良い感じに動いているのを確認し、リリースしてみたら...ログがうまく送れていなかったり、必要以上にAPIを叩いてしまっているのが発覚、なんて経験はありませんか?カスタムInstrumentsを作ってアプリ内のイベントを可視化すれば、こうした問題も一目瞭然です!
とのこと。
ログの送信チェックができる点は個人的にとても興味があります!
Instrumentsについてほぼ無知なのでどんな内容なのか想像できてませんが、仕事で活かせそうなので期待しています!
iPhoneのカメラで写真撮影から現像までの技術を紐解く
このセッションでは、「カメラが光を取り込む仕組み」から「iOSで取り込んだデータを画像化する」という所を深掘りし写真撮影という技術を皆さんと一緒に紐解いていければと思います。
何やらすごく興味をそそられる内容!
カメラで写真を撮ることはあっても、写真がどんな過程を経て写真になるのかに注目したことはなかったですね。
最近本格的なカメラを買いたいと思い始め写真技術に興味があるので、とても楽しみです!
自作して理解するリアクティブプログラミングフレームワーク
RxSwiftは1年ほど使っているので、リアクティブプログラミングについてはそれなりに理解してるつもりではいますが、RxSwiftのコードを読むのはまだまだ骨が折れる作業。
本セッションに参加することで、以下のことが理解できるかもしれない。
- Coldなストリームはなぜsubscribeされないと動作しないのか
- SubjectがObservable/Observerの性質を持つというのはどういう意味か
- ColdをHotなストリームに変換する具体的な方法
- Hotなストリームがsubscribeされても1回しかイベントを発生しないとはどういう原理か
RxSwiftのコードがより理解できる、来るCombine対応に向けた事前準備ができるという意味で、非常に楽しみなセッション!