20210426のAndroidに関する記事は2件です。

Activityに置いたViewが認識されない

Android Studio4.1からkotlin-android-extensionsが非推奨になりました. 取り急ぎ,新しくアプリを作成する度に以下の設定をお願いします. ViewBindingについて(工事予定)
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Android Jetpack(AndroidX Projects)のPlaygroundについて

以下でAndroid Jetpack(AndroidX Projects)の開発が行われています。 https://github.com/androidx/androidx 見て気になったPlaygroundという仕組みがあって、大規模なプロジェクトでは応用できそうなので、メモしておきます。 以下にPlaygroundの説明があります。300を超えるモジュールがあるのですが、独立して実行できる。つまり、あるモジュールとそれに必要なモジュールだけをIDEで開いたりビルドすることができるPlaygroundという仕組みがあります。 https://github.com/androidx/androidx/blob/68ce8d632705fbed51333e7051fbc0f673160919/playground-common/README.md ちょっとprojectの構造をみていきましょう。以下のようなフォルダ構造になっており、普通にGradleでインポートできるようになっています。 root ├── activity ├── ads ├── androidx-plugin ├── annotation ├── appcompat ├── appsearch ├── arch ├── asynclayoutinflater ├── autofill ├── benchmark ├── biometric ... ├── build.gradle ... ├── settings.gradle ... ./gradlew projectsでプロジェクト構造を見てみると以下のようにたくさんのプロジェクトが入っています。 Root project 'androidx' +--- Project ':activity' | +--- Project ':activity:activity' | +--- Project ':activity:activity-compose' | | +--- Project ':activity:activity-compose:activity-compose-samples' | | \--- Project ':activity:activity-compose:integration-tests' | | \--- Project ':activity:activity-compose:integration-tests:activity-demos' | +--- Project ':activity:activity-ktx' | +--- Project ':activity:activity-lint' | \--- Project ':activity:integration-tests' | \--- Project ':activity:integration-tests:testapp' +--- Project ':ads-identifier' | \--- Project ':ads-identifier:integration-tests' | \--- Project ':ads-identifier:integration-tests:testapp' +--- Project ':ads-identifier-benchmark' +--- Project ':ads-identifier-common' +--- Project ':ads-identifier-provider' | \--- Project ':ads-identifier-provider:integration-tests' | \--- Project ':ads-identifier-provider:integration-tests:testapp' +--- Project ':ads-identifier-testing' +--- Project ':annotation' | +--- Project ':annotation:annotation' | +--- Project ':annotation:annotation-experimental' | +--- Project ':annotation:annotation-experimental-lint' | +--- Project ':annotation:annotation-experimental-lint-integration-tests' | \--- Project ':annotation:annotation-sampled' ... ... ここまでは普通なんですが、ここでactivityのディレクトリの中を見てみると以下のようになっています。 ./gradlewやsettings.gradleなどがモジュールの中にも存在しています。 普通Gradleのプロジェクトではルートのディレクトリのみにsettings.gradleなどが存在していますが、このディレクトリの中にも存在しています。 -rw-r--r-- 1 takahirom staff 107B 4 25 19:01 OWNERS -rw-r--r-- 1 takahirom staff 652B 4 25 19:01 README.md drwxr-xr-x 6 takahirom staff 192B 4 25 19:01 activity drwxr-xr-x 7 takahirom staff 224B 4 25 19:01 activity-compose drwxr-xr-x 6 takahirom staff 192B 4 25 19:01 activity-ktx drwxr-xr-x 4 takahirom staff 128B 4 25 19:01 activity-lint lrwxr-xr-x 1 takahirom staff 27B 4 25 19:01 gradle -> ../playground-common/gradle lrwxr-xr-x 1 takahirom staff 47B 4 25 19:01 gradle.properties -> ../playground-common/androidx-shared.properties lrwxr-xr-x 1 takahirom staff 28B 4 25 19:01 gradlew -> ../playground-common/gradlew lrwxr-xr-x 1 takahirom staff 32B 4 25 19:01 gradlew.bat -> ../playground-common/gradlew.bat drwxr-xr-x 3 takahirom staff 96B 4 25 19:01 integration-tests -rw-r--r-- 1 takahirom staff 1.2K 4 25 19:01 settings.gradle ここで./gradlew projectsしてみると。。? activityとそれに必要なプロジェクトだけセットアップされている事がわかります。 ------------------------------------------------------------ Root project 'activity-playground' ------------------------------------------------------------ Root project 'activity-playground' +--- Project ':activity' | +--- Project ':activity:activity' | +--- Project ':activity:activity-compose' | | +--- Project ':activity:activity-compose:activity-compose-samples' | | \--- Project ':activity:activity-compose:integration-tests' | | \--- Project ':activity:activity-compose:integration-tests:activity-demos' | +--- Project ':activity:activity-ktx' | +--- Project ':activity:activity-lint' | \--- Project ':activity:integration-tests' | \--- Project ':activity:integration-tests:testapp' +--- Project ':annotation' | \--- Project ':annotation:annotation-sampled' +--- Project ':compose' | +--- Project ':compose:lint' | | +--- Project ':compose:lint:common' | | \--- Project ':compose:lint:internal-lint-checks' | \--- Project ':compose:test-utils' +--- Project ':fakeannotations' +--- Project ':internal-testutils-common' +--- Project ':internal-testutils-gradle-plugin' +--- Project ':internal-testutils-runtime' +--- Project ':lint-checks' | \--- Project ':lint-checks:integration-tests' \--- Project ':test-screenshot' Included builds \--- Included build ':androidx-plugin' このようにサブプロジェクト単体で動かせるようにしています。ドキュメントによると、CIはルートプロジェクトで行う前提になっており、ローカルでの開発のみに使用することを目的としているようです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む