前にも書いたが、アンドロイドアプリを5~6年ぶりで再会した。環境はandroidStudio!
そして新規プロジェクトを開くのに選択するテンプレートの選択で画面遷移を伴うのもを指定すると、Navigationを使う前提でセットアップがなされる。
これが久しぶりの新参者には、分からないコードが展開されている!と感じてしまう事になる。
別の言い方では、ゼロからコード作成をしようとしていたが、分からにコードが「あらかじめ」展開されていると感じる事になる。
YoutubeにAndroidStuioでのシステム開発を展開しようとしている私には、コード1つ1つが説明できない形は、非常に違和感がある。属性の定義では、説明できなくても、それは「その様に決まっている」と言える。
しかし、オブジェクトの存在が説明できないコードは、そもそも発展性のない「猿真似」でしかない。
本題になかなか入れないが...
画面遷移(展開)を伴うアンドロイドアプリでは、「今の所」Navigationの機能をつかう事が最良と思えてきた。
ここ1週間、調べ、悩み、自分なりの頂きにたどり着いたと思う。
1)画面遷移での、1つ1つの詳細は設計していなくても、画面展開は定義する。つまり画面数を確定すべき。
昔ホストでは、画面遷移図とか個別画面定義(各項目毎に属性、つまり、文字、数値(上限とか))を「紙」に書いていた。外部設計局面の1つであった。
個別画面(詳細)定義は、先に回しても、画面数と個別画面の役割は明確にすべきだろう。
2)これが決まると新規プロジェクトでテンプレートにどれを選択すべきか決めやすい。画面展開を前提とするテンプレートならば、Navigation機能に必要な環境はAndroidStuioが準備してくれる。
テンプレートにEmptyActivity(空のActivity)を選んでも心配はいらない?Navigationを使う局面では、AndroidStuioが(問い合わせがあるが)自動(勝手に)導入定義してくれる。
ネットでNavigationを使うには
Navigation
をセットアップする
次の内容を dependencies
に記述するとNavigation
をインストールできます。
の記述があるが、上述の通りAndroidStuioがやってくれる(やってくれている)
3)MainActivityのレイアウトである、activity_main.xmlに表示するFragmentの画面を呼び込む部分、コンテナと言える部分を書き加える、あるいは、書き換える。
これは、言われる通りに記述する必要がある。
(私の)ベストプラクティスは、新規プロジェクトは空のActivityで展開し、最初にNavigationGraphで必要画面の数だけ画面を定義し、画面遷移を定義し、activity_main.xmlのTextViewをfragmentのコンテナとして書き換え、その後、各画面の詳細を定義(ボタンなども)、最後にActivity機能を実装するが良いと思われる。
この形(流れで)Youtubeの実装編をアップするつもりです。