Souzoh iOS Talk
こちらに参加してきたまとめです。
- Move Fast iOS Development @motokiee
- メルカリアッテのRxSwift実装ガイド @parakeety
- Project開始後に導入するAssetsの自動共有 @yudoufu
- RxSwift4をチラ見する @tarunon
- メルカリアッテを支えるオートマトン @orakaro
Move Fast iOS Development @motokiee
メルカリのvalue
- Go bold
- all for one
- be professional
- move fast
souzohの歴史
- 1年前はアッテだけ
- メゾンズ、カウルもリリース
- iOSのチーム体制
- アッテ2名
- カウル2名
- メゾンズ1名
- 新PJ1名
- カウル
- 1ヶ月に1度ぐらい大きめの新機能追加
- 少ない人数でなぜ最大のアウトプットが出せるか
- 高速開発を支えているもの
- 数多くトライする
- Firebase Function
- 技術知識の共有
- swift wednesday
- 毎日の夕会を効率化して週一にするため
- コードレビューではカバーできないところ
- 各PJの課題、近況が見えなくなってきた
- 技術共有に加えて近況報告
- swift wednesday
- Wikiを書く文化
- 職種限らず
- まとめ
- 環境変化にMoveFastに対応する
- iOS同士のつながりを大事にしている
- プロダクトへのアウトプット、共有の意味でのアウトプット
メルカリアッテのRxSwift実装ガイド @parakeety
自己紹介・発表概要
- メルカリアッテ担当
- アッテ
- RxSwift
- 色々試行錯誤しながた実装方針を模索
- ある程度固まってきた
- 実装ガイドの一部を紹介
- ViewModelの実装ガイド
- ErrorHandling
- アーキテクチャ
- Model + View + ViewController + ViewModel
- VCをスリムにしてテスタブルにするために、ViewModeに処理を集約
- VCとVMは1:1
ViewModelの実装ガイド
- ViewModelへのinputはViewModelのinitializerで全て渡す
- ストリーム(tableViewの下までいったときのストリームとか)
- ViewModelからのoutputはViewModelのpropertyとして定義
- ViewModelへのinputもoutputはDriverを使う
- observableに値が流れてくるのが先か、subscribeが先かで意図しない動き
- subscribeのタイミングや順番を気にしなくてもいいように、subscribeしたときにreplayさせるようにする
ErrorHandling
- サーバリクエストを投げて、エラーハンドリングするのはあるある
- しかし、observableにerrorが流れるとobservableが終了してしまう
- そこで正常系とエラーのstreamを分割
Project開始後に導入するAssetsの自動共有 @yudoufu
自己紹介
- カウル立ち上げ
- iOS中心にチーム内のトラブルシュート
背景
- カウルで行ったBPW(Be Proffesional Week)の成果
- BPD(2日間で中長期的な技術改善、4半期に一回)
- 今回はまとめて、ガツンと1週間取り組んだ
- Assets共有
旧来のやりかた
- スケッチからPDF、Xcode
- 受け渡し、反映がBlocking
- 受け渡しされたアイコンの状態管理が大変
- iOSDCの関連発表
改善後
- スケッチからpushして、CIでcontents.json作成してそれをgithubにpush
- Travis上でsketchの書き出し
- iOS側に追加する際にContents.jsonを生成
- 直接コミットせず、PRの形にする
- PDFが全部差分出る問題
プロジェクトへの組み込みのハマりどころ
- 自動化するタイミングで整えたいあるある
- 命名規則を統一
- 変更の対象表をつくり、Project内で一括置換
- Assets中をごりっと整理
- Travisのタイミング
- 「リポジトリへのPRを出す」という処理があることを念頭に置く
- PRをトリガーにしていると余計なBuildが走りがち
- 「リポジトリへのPRを出す」という処理があることを念頭に置く
まとめ
RxSwift4をチラ見する @tarunon
自己紹介
- tarunon
- 9月から上京
- Splatoon2
- RxSwiftをちょっとだけかいてます
- 今の業務ではReactiveCocoa
RxSwift4
- 差分は1万行ぐらい:Github
- Obserbvable
- enumerated
- first
- withIndexはdeprecatedに
- Signal
- No Replay Driver
- Relay
- No error subject
- VariableはDeprecated
- PublishRelay
- Binder
- UIBindingObserver withput Target
- New DelegateProxy
- extension
- Delegate
- One More thing
- PR送ってね