SingleActivity
https://youtu.be/2k8x8V77CrU
英語耳をためすぞ~iNoma.icon
Single Activity
Why
Why
How
フレームワークはアーキテクチャを考慮する必要がない
開発者は気にする必要がある
Activityの振る舞いや機能はAPIレベルに制約を受ける
異なるAPIレベルで同等の動作をする保証はどうする??
アクティビティ間でデータをシェアするためのスコープがない
厳密にはアプリケーションスコープと呼ばれるものがある
が、そのスコープはServiceなどをも含み、広すぎる
SingleActivityでは、Anctivityスコープの中で複数のDestinationを配置することでこれを解決する
Destination内にそれぞれスコープを持ちつつ、Activityスコープを利用してデータを共有
Destinationとは?
Screenに対するSubsection
画面遷移時に画面で変化するものすべて
Global Navigationは含まない
Bottom Nav,Action Barなど
Fragmentと同等
Fragmentは、Destinationを分離する実装のひとつ
Testの観点から、NavigationとFragmentを比較する
Fragment
FragmentScenarioによって、UI要素をテストできる
問題点
Fragmentは別のFragmentと通信する
単体でテストができない
Navigation
Destination間の移動もテストできる
なぜ?
NavControllerがモック可能なレイヤーを提供する
このへん一回聞いただけじゃ全然わかんなかったのでもう一回聞くiNoma.icon
複数のアクティビティではなく、複数のタスク
タスクとは?
ユーザーが直接扱うもので、アクティビティの積み重ねによってなる
各タスクにはバックスタックがある
MultiTasking
一つのアプリケーションで複数のウィンドウを持つ