[Android/Java] (覚書)Jetpack NavigationとViewModelを採用した新規アプリ作成時のチートシート


Android Studio 4.1.3(windows版) での流れとなります

業務上他のプラットフォームの対応があったりでandroidの開発を継続的にできないので
ついど忘れしちゃいそうな予感のため覚書としてまとめました

Android DeveloperのJetpack Navigationの説明は以下です

新規プロジェクト作成

新規プロジェクト作成でEmpty Activity を選択します

navigationの作成

navigationフォルダを作成します

Android Resource Directory を選択

Resource type でnavigationを選択

作成されたnavigationを選択した状態でNavigation Resource File を選択

ここではFile name をnav_graphとします

ok押します

MainActivityのlayoutに先ほど作成したNavHostFragmentを追加します
※NavHostFragmentを選択してLayoutのDesignにドロップです
先ほど作成したnav_graphを選択です
不要なHellow World!のTextViewは削除してしまいましょう


MainのFragmentを追加します
Layoutのnav_grahに戻りClick to add a destinationをクリックします
Create new destination を選択します
今回はViewModelを使用するため、Fragment (with ViewModel) を選択します
ここではFragment Name をMainFragment、ViewModel Name も自動で設定されたMainViewModelとします




MainFragment/MainViewModelが作成されました

(必要に応じて対応) AndroidViewModelに変更

ViewModelでApplicationクラスを使いたい場合は
自動生成さてたコードをAndroidViewModelに変更します
extends のViewModelをAndroidViewModelに変更して
windowsの場合はAlt+EnterなどでAndroidViewModelのimportの追加とコンストラクタを追加します

MainViewModel.java
public class MainViewModel extends ViewModel {
    // TODO: Implement the ViewModel
}
MainViewModel.java
public class MainViewModel extends AndroidViewModel {
    public MainViewModel(@NonNull Application application) {
        super(application);
    }
    // TODO: Implement the ViewModel
}

適切なバージョンのライブラリを指定

今回はjunit以外は新しいものが適応されていましたが
Project Structure のSuggestion で警告などが出てたら適切なバージョンのものに変更します

MainActivityのlayout xmlのrename

新規プロジェクトでEmpty Activity を選択した場合、layoutのxmlのファイル名がactivity_main.xmlとなっています
View/DataBindingを使用する場合、自動生成されたBindingクラス名がxmlのファイル名依存のため
気持ち悪い場合はmain_activity.xmlにrenameします
Fragmentのxmlの命名規則もxxx_fragment.xmlのように統一することをおすすめします

画面遷移の実装

Jetpack Navigationの画面遷移の実装方法が知りたい場合は以下の記事を参考にしてください

ViewModelの実装

Jetpack ViewModelの簡単な実装例を知りたい方は以下の記事を参考にしてください