「アプリにActivityはひとつでいい」という神のお告げ

左からの NavigationDrawer が初回に起動する Activity にある場合, 気持ち悪いと思ってましたよね.

あのAndroidの神と言われている Jake Warthon さんが言い切ってます.

アプリにActivity一つで複数のFragmentを使う。ただFragmentのバックスタックは使わない。クソなので。

UI周りでいえば Activity起動時のコストを考えてみれば理にかなってるようにも思えます.

確かに, 「Fragment のバックスタック」周りで混乱する様子はだれもが見てきました。

Reddit でも話題になっており, この意見に同意する人も多い雰囲気.

In Droidcon NYC 2017, Jake Wharton says you should use a single-activity for the whole app, and you can use fragments but don't use the fragment backstack because it's bad : androiddev

で, いまどきのストラクチャーでどのような構成にするのか.

Android: the Single Activity, Multiple Fragments pattern | One Activi…

このスライドでは, 画面の数だけ「Presenter + View(Fragment)」のペアを用意する という形の記述となっていますが, Fragmentの特性上これが自然な気がしていますが.


JetBrains社の「Edu Tools Plugin」で Kotlin に入門せよ

Kotlin Edu: Learn and teach Kotlin with easy and professional tools

Learning Kotlin with EduTools plugin - Kotlin Programming Language

Android Studio上でプラグインを検索して追加したあと

再起動ですぐに開始できます.

右の説明を読みながらエディタ上でコードを記述していきます.

チェックボタンを押すと, 記述後のチェックだけでなく, ヒントとなるメッセージが表示されます.

左のプロジェクトウィンドウを上から順番に進んでいくと基本をマスターできます.

できるのかな.

(現在, チャレンジ中・・・)


Java から Kotlin 移行の進捗を「cloc」で確認する

これを確認したかったのです.

特定のディレクトリのファイルやコード行数の確認.

googlesamples/android-architecture at todo-mvp-rxjava

「cloc」てやつを使います.

AlDanial/cloc: cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.

こんな感じで結果表示されます.


for d in ./*/ ; do (cd "$d" && echo "$d" && cloc --vcs git); done

Android プロジェクトの場合, アプリのルートディレクトリでやると,


$ pwd
/Users/maochanz/projects/PlainTemplates
$ cloc .
     674 text files.
     567 unique files.
     140 files ignored.

github.com/AlDanial/cloc v 1.74  T=10.63 s (50.4 files/s, 8239.6 lines/s)
--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
JSON                            253              0              0          30758
XML                             223           1749            233          17707
Java                             36             38          24757          10428
Kotlin                           18            245            324            993
Bourne Again Shell                1             19             20            121
DOS Batch                         1             24              2             64
Groovy                            3              8              3             55
Prolog                            1              3              0             18
--------------------------------------------------------------------------------
SUM:                            536           2086          25339          60144
--------------------------------------------------------------------------------

となって,

build ディレクトリもカウントされるので,

src ディレクトリ以下で実行するといいでしょう.


$ pwd
/Users/maochanz/projects/PlainTemplates/app/src
$ cloc .
      77 text files.
      76 unique files.
       1 file ignored.

github.com/AlDanial/cloc v 1.74  T=0.44 s (171.9 files/s, 7442.6 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
XML                             58            177             89           1463
Kotlin                          18            245            324            993
-------------------------------------------------------------------------------
SUM:                            76            422            413           2456
-------------------------------------------------------------------------------

Kotlin による冗長なコードの削減具合もよく分かるはずです.

CLOC -- Count Lines of Code