├── android ├── src │ ├── main │ │ ├── res │ │ │ └── .gitcreate │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── org │ │ │ └── rewedigital │ │ │ └── katana │ │ │ └── android │ │ │ ├── AndroidKatanaLogger.kt │ │ │ ├── fragment │ │ │ ├── KatanaFragment.kt │ │ │ └── KatanaFragmentDelegate.kt │ │ │ ├── environment │ │ │ └── AndroidEnvironmentContext.kt │ │ │ └── modules │ │ │ └── AndroidModules.kt │ └── test │ │ └── kotlin │ │ └── .gitcreate ├── proguard-consumer-rules.pro ├── build.gradle.kts └── README.md ├── androidx-fragment ├── src │ └── main │ │ ├── res │ │ └── .gitcreate │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ └── org │ │ └── rewedigital │ │ └── katana │ │ └── androidx │ │ └── fragment │ │ └── KatanaFragmentFactory.kt ├── build.gradle.kts └── README.md ├── androidx-viewmodel ├── src │ ├── main │ │ ├── res │ │ │ └── .gitcreate │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── org │ │ │ └── rewedigital │ │ │ └── katana │ │ │ └── androidx │ │ │ └── viewmodel │ │ │ ├── internal │ │ │ └── Utils.kt │ │ │ └── ViewModel.kt │ └── test │ │ └── kotlin │ │ └── .gitcreate ├── proguard-consumer-rules.pro ├── build.gradle.kts └── README.md ├── androidx-viewmodel-savedstate ├── src │ ├── main │ │ ├── res │ │ │ └── .gitcreate │ │ ├── AndroidManifest.xml │ │ └── kotlin │ │ │ └── org │ │ │ └── rewedigital │ │ │ └── katana │ │ │ └── androidx │ │ │ └── viewmodel │ │ │ └── savedstate │ │ │ └── ViewModelSavedState.kt │ └── test │ │ └── kotlin │ │ └── .gitcreate ├── proguard-consumer-rules.pro ├── build.gradle.kts └── README.md ├── proguard-rules.pro ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── android-example ├── src │ ├── main │ │ ├── ic_launcher-web.png │ │ ├── res │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── values │ │ │ │ ├── styles.xml │ │ │ │ ├── strings.xml │ │ │ │ └── main_strings.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── layout │ │ │ │ ├── fragment_first.xml │ │ │ │ ├── dialog_remote.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_fragment.xml │ │ │ │ └── fragment_second.xml │ │ │ └── drawable │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ └── ic_launcher_foreground.xml │ │ ├── kotlin │ │ │ └── org │ │ │ │ └── rewedigital │ │ │ │ └── katana │ │ │ │ └── android │ │ │ │ └── example │ │ │ │ ├── main │ │ │ │ ├── model │ │ │ │ │ ├── ViewButton.kt │ │ │ │ │ └── Button.kt │ │ │ │ ├── view │ │ │ │ │ ├── MainView.kt │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── navigator │ │ │ │ │ └── MainNavigator.kt │ │ │ │ ├── Modules.kt │ │ │ │ ├── mapper │ │ │ │ │ └── ButtonMapper.kt │ │ │ │ ├── repository │ │ │ │ │ └── ButtonRepository.kt │ │ │ │ ├── interactor │ │ │ │ │ └── MainInteractor.kt │ │ │ │ ├── presenter │ │ │ │ │ └── MainPresenter.kt │ │ │ │ └── MainModule.kt │ │ │ │ ├── fragment │ │ │ │ ├── inject │ │ │ │ │ └── Container.kt │ │ │ │ ├── FragmentActivityModule.kt │ │ │ │ ├── FirstFragmentModule.kt │ │ │ │ ├── model │ │ │ │ │ └── SecondFragmentViewModel.kt │ │ │ │ ├── SecondFragmentModule.kt │ │ │ │ ├── FragmentFactoryModule.kt │ │ │ │ └── view │ │ │ │ │ ├── FragmentActivity.kt │ │ │ │ │ ├── FirstFragment.kt │ │ │ │ │ └── SecondFragment.kt │ │ │ │ ├── remote │ │ │ │ ├── model │ │ │ │ │ └── Post.kt │ │ │ │ ├── JsonPlaceholderApi.kt │ │ │ │ ├── JsonPlaceholderRepository.kt │ │ │ │ └── RemoteModule.kt │ │ │ │ ├── inject │ │ │ │ └── AndroidModule.kt │ │ │ │ └── KatanaApp.kt │ │ └── AndroidManifest.xml │ └── androidTest │ │ └── kotlin │ │ └── org │ │ └── rewedigital │ │ └── katana │ │ └── android │ │ └── example │ │ ├── remote │ │ ├── JsonPlaceholderApiErrorMock.kt │ │ ├── TestJsonPlaceholderRepository.kt │ │ └── JsonPlaceholderApiSuccessMock.kt │ │ └── main │ │ ├── TestModules.kt │ │ └── MainEspressoTest.kt ├── README.md ├── build.gradle.kts └── etc │ └── launcher_icon.svg ├── core ├── src │ ├── main │ │ └── kotlin │ │ │ └── org │ │ │ └── rewedigital │ │ │ └── katana │ │ │ ├── Aliases.kt │ │ │ ├── dsl │ │ │ ├── ModuleDslMarker.kt │ │ │ ├── internal │ │ │ │ └── Internal.kt │ │ │ ├── ProviderDsl.kt │ │ │ └── Dsl.kt │ │ │ ├── environment │ │ │ ├── EnvironmentContext.kt │ │ │ ├── MapFactory.kt │ │ │ └── DefaultEnvironmentContext.kt │ │ │ ├── package.md │ │ │ ├── internal │ │ │ └── Logger.kt │ │ │ ├── Exceptions.kt │ │ │ ├── Declaration.kt │ │ │ ├── BindingContext.kt │ │ │ ├── Provider.kt │ │ │ ├── Katana.kt │ │ │ ├── Key.kt │ │ │ ├── KatanaTrait.kt │ │ │ └── Module.kt │ └── test │ │ └── kotlin │ │ └── org │ │ └── rewedigital │ │ └── katana │ │ ├── TestClasses.kt │ │ ├── TestEnvironmentContext.kt │ │ ├── ComponentTests.kt │ │ ├── AliasTests.kt │ │ ├── TypeErasureTests.kt │ │ ├── KatanaTraitTests.kt │ │ ├── ComponentBuilderTests.kt │ │ ├── NamedInjectionTests.kt │ │ ├── LoggerTests.kt │ │ ├── ModuleIncludesTest.kt │ │ ├── OverrideTests.kt │ │ ├── ComponentDependsOnTests.kt │ │ └── SetTests.kt └── build.gradle.kts ├── speed-comparison ├── src │ └── main │ │ └── kotlin │ │ └── org │ │ └── rewedigital │ │ └── katana │ │ └── comparison │ │ ├── Subject.kt │ │ ├── Dependencies.kt │ │ ├── KoinSubject.kt │ │ ├── KodeinSubject.kt │ │ ├── KatanaSubject.kt │ │ └── Comparison.kt ├── build.gradle.kts └── README.md ├── gradle.properties ├── .github ├── ISSUE_TEMPLATE │ └── bug_report.md └── workflows │ └── build.yml ├── settings.gradle.kts ├── .idea ├── dictionaries │ └── sven.xml └── runConfigurations │ ├── Android_Example_Tests.xml │ ├── Android_Example.xml │ └── Android_Example__Fragment_.xml ├── LICENSE ├── gradlew.bat ├── README.md ├── gradlew ├── Getting Started.md └── CHANGELOG.md /android/src/main/res/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /android/src/test/kotlin/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /androidx-fragment/src/main/res/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /androidx-viewmodel/src/main/res/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /androidx-viewmodel/src/test/kotlin/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /androidx-viewmodel-savedstate/src/main/res/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /androidx-viewmodel-savedstate/src/test/kotlin/.gitcreate: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /proguard-rules.pro: -------------------------------------------------------------------------------- 1 | -dontobfuscate 2 | -keep class org.rewedigital.katana.** { *; } 3 | -------------------------------------------------------------------------------- /android/proguard-consumer-rules.pro: -------------------------------------------------------------------------------- 1 | # Currently Katana does not require any specific ProGuard configuration 2 | -------------------------------------------------------------------------------- /androidx-viewmodel/proguard-consumer-rules.pro: -------------------------------------------------------------------------------- 1 | # Currently Katana does not require any specific ProGuard configuration 2 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /androidx-viewmodel-savedstate/proguard-consumer-rules.pro: -------------------------------------------------------------------------------- 1 | # Currently Katana does not require any specific ProGuard configuration 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .idea 3 | !.idea/dictionaries/ 4 | !.idea/runConfigurations/ 5 | *.iml 6 | build 7 | out 8 | local.properties 9 | -------------------------------------------------------------------------------- /android/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android-example/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /androidx-fragment/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /androidx-viewmodel/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /core/src/main/kotlin/org/rewedigital/katana/Aliases.kt: -------------------------------------------------------------------------------- 1 | package org.rewedigital.katana 2 | 3 | internal typealias Declarations = Map> 4 | -------------------------------------------------------------------------------- /core/src/main/kotlin/org/rewedigital/katana/dsl/ModuleDslMarker.kt: -------------------------------------------------------------------------------- 1 | package org.rewedigital.katana.dsl 2 | 3 | @DslMarker 4 | annotation class ModuleDslMarker 5 | -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /androidx-viewmodel-savedstate/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /android-example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rewe-digital/katana/HEAD/android-example/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /android-example/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |