kumamotone’s blog

iOS/Android アプリエンジニアです https://twitter.com/kumamo_tone

potatotips #59 に参加しました (iOS, Androidブログまとめ) #potatotips

potatotips #59iOSブログまとめ枠で参加させていただきましたのブログです。

f:id:kumamotone:20190301002053j:plain
会場

会場は GREE さんでした。

f:id:kumamotone:20190301001957j:plain
採用強化中+KMNZのチャンネル登録よろしくとのこと

以下発表内容です。参加枠としては Androidブログまとめ枠でしたが iOS の発表内容に関してもまとめています。

気になるところや間違いなどあればご指摘ください。埋まっていない資料は公開されたのを見つけ次第反映します。

Page Object Pattern with XCUITest

speakerdeck.com

Page Object Pattern は DRY かつ Readable な UIテスト を実現できる

Firebase A/B Testingを使ってサーバ側までA/Bテストした話

Firebase A/B Testing エンジニアじゃなくても条件変えれるので便利

ModelをLayerで分けてUnit Testの観点を明確にする

speakerdeck.com

Layered Architecture にしてテスタブルにしてる 各層のテストの書き方を紹介

簡単にARアプリを作ってみよう

ARCore / SceneForm のおかげで3Dモデルの知識なくても簡単にARできる!ありがてぇ

SwiftでVRMファイルを表示してみた話

speakerdeck.com

github.com

VTuberKit 作った VRM読み込んでSceneKitで表示できるぜ! 実装を紹介 今はUnityのアニメーションをimportするのをやってる

ViewPager2をちょっとさわってみよう

speakerdeck.com

ViewPager2のIFはほとんど同じ RecyclerViewを使って実装されてる RTLサポート、縦方向ページングサポート、1のバグが治っているなど まだalpha

RxSwiftに対応したバリデーションをGenericなProtocolで実装してみた

extension ObservableType {
  func validate<V: Validator>(_ validator: V.Type)
    -> Observable<ValidationResult<V.ErrorType>> where V.ValueType == Self.E {
      return map { validator.validate($0) }
  }
}

RxSwiftのチェーン中に protocol Validator を実装したやつを実装したクラスを与えてバリデーションできるように、 ObservableType に extension 生やして解決した シンプル

github.com

AndroidX Navigationを導入した話

speakerdeck.com

そろそろstableのNavigation safeArgsでの方安全なFragmentArgsの生成、Deep Link、Transition Animation、Shared Element

Navigation 使うと常にバックキーで戻れるようになってしまうが Activity#addOnBackPressedCallback() を使ってハンドリングできる

逆引きRxSwift: 編集画面のViewModel設計と実装

note.mu

編集画面のViewModel設計。 startWith使うと双方向バインディングしながら初期値設定できる

AndroidアプリのUI/UX改善例その2

speakerdeck.com

項目が多いので https://github.com/mirrajabi/search-dialog というのを使ってフィルタリングできるようにした

教えて!Xcode

speakerdeck.com

Address Sanitizer は配列外アクセス等を検出できる Diagnostics から有効にできる(ObjCのみ) 詳しくは以下を見ると良い

qiita.com

Androidの状態管理をするライブラリOwlの紹介

speakerdeck.com

Reduxライクな状態管理ライブラリを作っている Coroutineを使った非同期処理の導入、Jobの管理、ViewModelとの統合

画面遷移が絡む値の受け渡しをRxSwiftで直列化してみた

speakerdeck.com

github.com

subscribe複数回書かないと行けなさそうな処理を呼び出すVCにObserverを置く→呼び出し処理をprotocolのextensionにして直列化した

あらためてLiveData

LiveData, MutableLiveData, MediatorLiveData の説明 わかりやすい

OWASP MASVS

OWASP MASVS は モバイルアプリケーションの基準となるセキュリティ要件

Immutable data holder

speakerdeck.com

Immutable な LiveData のみを公開しよう LiveDataならswitchMapで変換できる 拡張関数でより簡潔にできる

感想とか

f:id:kumamotone:20190301001938j:plain
すし

RxSwiftの話が何故か多かった気がする

NavigationやViewPager2とか新しいライブラリのTipsが知れてよかった

RxSwiftのバリデーション用のextensionは簡潔に書けてすき

VRMKitはシンプルにすごい

今回も最初からへとへとでついにちょっとしたコメントを書くのがやっとになってしまった

懇親会では個人的にも最近導入したLiveDataの話できたりとか、インターネッツではお見かけするREALITYの人ともお話できてなんだかんだよかった