iOS オールスターズ2
「iOS オールスターズ2」という勉強会に参加してきました。その発表内容を所感とともにかんたんにまとめました。
発表内容
- RxSwift in Practice
- VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
- Type-safe URL Routing in Swift
- Using PDF in iOS
- Xcode8で開発はどうかわったのか
- これから始めるProtocol Buffers導入
- DIを前提にしたiOSアプリの設計
- Swiftらしい表現を目指そう
1. RxSwift in Practice
成田 元輝 氏 メルカリアッテ
https://speakerdeck.com/mnat44/rxswift-in-practicespeakerdeck.com
メルカリアッテ
- 80% Swift
- 20% Objective-C
入門
- Playgroundで基本的なオペレーターの学ぶ
- Examaplesを見る
- 実践的なコードを書いた方が良い
- 経験は3ヶ月
RxSwiftの概要
- アッテ開発の技術:SwiftとRxSwift y Shinichiro Oba
- ストリームを作る、加工する、監視する???
- 今ある処理をどう置き換えたらどうなるかを考える方が早い
例:カメラアプリ
ストリームで考える
- ボタンタップ
- ローディング表示
- キャプチャ、保存
- 保存後にフィルター
まとめ
良いところ
- コードが読みやすい
- 何の処理であっても、ストリームをどう扱うかという点に集中して実装ができるようになった
- 非同期処理の実装は以前よりも楽になった気がする
悪いところ
- 学習コストが高い
- RxSwiftに依存してしまう
2. VC「もしかして...」Model「私たち...」「「入れ替わってるー!?」」を前前前世から防ぐ方法
田中賢治 氏
www.slideshare.net
クリーンアーキテクチャを導入してみた。 MVPのVP部分を中心に。
抱えている問題
- 定義の曖昧なModel
- View操作とロジックが絡まってる
- ViewControllerの肥大化
Fat VC = 肥満体質(行数の問題ではない)
クリーンアーキテクチャで解決
- Modelの定義は、エンジニアの経験とかで変わる
- ガイドを導入して層と役割を明確にして、人に依存しない
- 肥大化の原因は役割が明確でないこと
まとめ
- 設計の基準が明確になった
- 理解するのが難しい
→2,3週間で試行錯誤しながらちーむ - コード量、ファイル数が多くなる
→半年から一年以上の開発で導入オススメ
3. Type-safe URL Routing in Swift
稲見 泰宏 氏
クライアントサイド
前回の発表の続編
4. Using PDF in iOS
吉川 和成 氏
座標問題
- CoreGraficsは左下に原点
- UIViewは左上に原点
5. Xcode8で開発はどうかわったのか
森本 利博 氏
Visual Debugging
View Debugging 実行速度が70%はやくなった クラス定義に飛べる AutoLauoutをその場で確認できる
FPS Perfomance Gauge ヌルヌルしなくなったところの原因調査できる
Memory Graph Debugging Memory leak発見に使える
6. これから始めるProtocol Buffers導入
伊藤 恭平 氏
Protocolbufの仕組み
メリット
- データ量
- 高速
- 安全
- 共有
デメリット
- コンパイル
- 導入手順
- 確認手順
JSONに対して例では半分のデータ量
7. DIを前提にしたiOSアプリの設計
米川 健一 氏
主なDIライブラリ
Cleanse vs Swinject
(関連URL)https://developer.apple.com/videos/play/wwdc2016/213/
8. Swiftらしい表現を目指そう
熊谷 友宏 氏
www.slideshare.net
今回の目標
- Swift API Design Guideに注目
- 言語仕様から窺える思想を汲む
- Swiftの標準ライブラリの表現に倣う
Swiftらしい表現
- 関数名とメソッド
API自体が文章表現と心得る - イニシャライザー名
全幅変換であるかを意識する - 機能の所属
振る舞いとして主体に備える - 型キャスト
変換先の責任で変換する - 比較可能な型
型を性質で説明する - テキスト表現可能な型
CustomStringConvertibleで表現 - 連続的な値を受け取る
性質で着目して機能を組み立てる
参考URL http://iosdc.fm/