├── .gitignore ├── LICENSE.txt ├── README.md ├── api ├── .gitignore ├── README.md ├── library │ ├── kotlin-simple-api-annotation │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── commonMain │ │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── annotation │ │ │ ├── Api.kt │ │ │ ├── ApiParameterType.kt │ │ │ ├── Authenticate.kt │ │ │ ├── Body.kt │ │ │ ├── CallSuper.kt │ │ │ ├── Delete.kt │ │ │ ├── Get.kt │ │ │ ├── Head.kt │ │ │ ├── Header.kt │ │ │ ├── Keep.kt │ │ │ ├── Options.kt │ │ │ ├── Patch.kt │ │ │ ├── Path.kt │ │ │ ├── Post.kt │ │ │ ├── Put.kt │ │ │ ├── Query.kt │ │ │ └── SimpleArchInternal.kt │ ├── kotlin-simple-api-backend │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── jvmMain │ │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── net │ │ │ ├── ControllerUtil.kt │ │ │ ├── PipelineContextStore.kt │ │ │ └── SimpleRouting.kt │ └── kotlin-simple-api-client │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ ├── commonMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── coroutine │ │ │ └── Polling.kt │ │ │ ├── net │ │ │ ├── Deeplink.kt │ │ │ ├── HttpClientBaseEx.kt │ │ │ ├── HttpResponseStore.kt │ │ │ ├── SimpleApiCustom.kt │ │ │ └── error │ │ │ │ └── ApiError.kt │ │ │ └── type │ │ │ ├── AtomicReference.kt │ │ │ ├── Resource.kt │ │ │ ├── ResourceError.kt │ │ │ └── UnknownResourceError.kt │ │ ├── iosMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── net │ │ │ └── HttpClientBaseExIos.kt │ │ │ └── type │ │ │ └── AtomicReferenceIos.kt │ │ ├── jsMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── net │ │ │ └── HttpClientSimpleJs.kt │ │ │ └── type │ │ │ └── AtomicReferenceJs.kt │ │ ├── jvmShareMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── net │ │ │ └── httpClientSimpleJvm.kt │ │ │ └── type │ │ │ └── AtomicReferenceJvm.kt │ │ └── main │ │ └── AndroidManifest.xml └── plugin │ ├── kotlin-simple-api-gradle-service-native │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── kim │ │ └── jeonghyeon │ │ └── simplearchitecture │ │ └── plugin │ │ ├── ApiComponentRegistrar.kt │ │ ├── impl │ │ └── SharedKtFileImpl.kt │ │ └── util │ │ └── KtEx.kt │ ├── kotlin-simple-api-gradle-service-shared │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── kim │ │ └── jeonghyeon │ │ └── simplearchitecture │ │ └── plugin │ │ ├── ApiCommandLineProcessor.kt │ │ ├── SourceCodeGenerator.kt │ │ ├── external │ │ ├── RetrofitAnnotations.kt │ │ └── Transacter.kt │ │ ├── generator │ │ ├── ApiGenerator.kt │ │ └── DbGenerator.kt │ │ ├── model │ │ ├── GeneratedApiSource.kt │ │ ├── GeneratedDbSource.kt │ │ ├── KotlinPlatformType.kt │ │ ├── PluginOptions.kt │ │ └── SharedKtFile.kt │ │ └── util │ │ ├── FileEx.kt │ │ ├── PluginUtil.kt │ │ └── ProjectEx.kt │ ├── kotlin-simple-api-gradle-service │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── kim │ │ └── jeonghyeon │ │ └── simplearchitecture │ │ └── plugin │ │ ├── ApiComponentRegistrar.kt │ │ ├── impl │ │ └── SharedKtFileImpl.kt │ │ └── util │ │ ├── KtEx.kt │ │ └── KtFileAnalyzer.kt │ └── kotlin-simple-api-gradle │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ ├── RootEx.kt │ └── kim │ └── jeonghyeon │ └── simplearchitecture │ └── plugin │ ├── ApiGradleSubplugin.kt │ ├── MainGradlePlugin.kt │ ├── config │ └── GenerationConfig.kt │ ├── extension │ └── SimpleArchExtension.kt │ ├── model │ └── SourceDirectorySetAndName.kt │ ├── task │ └── DeleteGeneratedSourceTask.kt │ └── util │ └── ProjectExt.kt ├── build.gradle.kts ├── buildSrc ├── .gitignore ├── build.gradle.kts └── src │ └── main │ └── kotlin │ ├── Configuration.kt │ ├── Dependencies.kt │ ├── DependencyVersion.kt │ ├── GradleFunctions.kt │ └── PublishConfig.kt ├── framework ├── kotlin-simple-architecture-backend │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── jvmMain │ │ └── kotlin │ │ └── kim │ │ └── jeonghyeon │ │ ├── SimpleFeature.kt │ │ ├── api │ │ ├── ApiBindingController.kt │ │ └── PreferenceController.kt │ │ ├── auth │ │ ├── ServiceAuthConfiguration.kt │ │ ├── SignController.kt │ │ ├── SignFeature.kt │ │ ├── SignInAuthConfiguration.kt │ │ └── UserSession.kt │ │ ├── di │ │ └── ServiceLocatorBackend.kt │ │ ├── net │ │ └── ControllerUtil.kt │ │ └── pergist │ │ └── UserPreference.kt ├── kotlin-simple-architecture-client │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ ├── api │ │ │ │ └── PreferenceApi.kt │ │ │ │ ├── auth │ │ │ │ ├── SignApi.kt │ │ │ │ ├── SignBasicApi.kt │ │ │ │ ├── SignDigestApi.kt │ │ │ │ ├── SignOAuthApi.kt │ │ │ │ └── SignOAuthClient.kt │ │ │ │ ├── client │ │ │ │ ├── BaseViewModel.kt │ │ │ │ ├── DeeplinkNavigator.kt │ │ │ │ ├── FlowEx.kt │ │ │ │ ├── FlowReactiveEx.kt │ │ │ │ ├── FlowViewModelEx.kt │ │ │ │ ├── Navigator.kt │ │ │ │ ├── UiManager.kt │ │ │ │ └── ViewModelScope.kt │ │ │ │ ├── extension │ │ │ │ ├── AnyEx.kt │ │ │ │ ├── BooleanEx.kt │ │ │ │ ├── CharSequenceEx.kt │ │ │ │ ├── IntEx.kt │ │ │ │ ├── ListEx.kt │ │ │ │ ├── StringEx.kt │ │ │ │ └── ThrowableExt.kt │ │ │ │ ├── net │ │ │ │ ├── ApiBinding.kt │ │ │ │ ├── ArchitectureRequestResponseAdapter.kt │ │ │ │ └── httpClientSimple.kt │ │ │ │ ├── pergist │ │ │ │ ├── Preference.kt │ │ │ │ └── QueryEx.kt │ │ │ │ ├── type │ │ │ │ └── WeakReference.kt │ │ │ │ └── util │ │ │ │ └── Log.kt │ │ └── sqldelight │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── db │ │ │ ├── PreferenceForAll.sq │ │ │ ├── PreferencePerUser.sq │ │ │ └── User.sq │ │ ├── iosMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── UIApplication.kt │ │ │ ├── auth │ │ │ └── OAuthSignClientIos.kt │ │ │ ├── client │ │ │ └── UiManager.kt │ │ │ ├── net │ │ │ └── httpClientSimpleIos.kt │ │ │ ├── type │ │ │ └── WeakReference.kt │ │ │ └── util │ │ │ └── LogIos.kt │ │ ├── jsMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── auth │ │ │ └── OAuthSignClientJs.kt │ │ │ ├── client │ │ │ └── UiManager.kt │ │ │ ├── net │ │ │ └── HttpClientSimpleJs.kt │ │ │ ├── type │ │ │ └── WeakReference.kt │ │ │ └── util │ │ │ └── LogJs.kt │ │ ├── jvmMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── auth │ │ │ └── OAuthSignClientJvm.kt │ │ │ ├── client │ │ │ └── UiManager.kt │ │ │ ├── net │ │ │ └── HttpClientSimpleJvm.kt │ │ │ └── util │ │ │ └── LogJvm.kt │ │ ├── jvmShareMain │ │ └── kotlin │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── extension │ │ │ ├── AnyExJvm.kt │ │ │ ├── CalendarEx.kt │ │ │ ├── CoroutineEx.kt │ │ │ ├── DoubleExJvm.kt │ │ │ ├── FileEx.kt │ │ │ ├── InputStreamEx.kt │ │ │ ├── IterableEx.kt │ │ │ └── StringExJvm.kt │ │ │ └── type │ │ │ └── WeakReference.kt │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ └── kim │ │ │ └── jeonghyeon │ │ │ ├── androidlibrary │ │ │ ├── SimpleInitProvider.kt │ │ │ ├── extension │ │ │ │ ├── ActivityEx.kt │ │ │ │ ├── BuildConfigEx.kt │ │ │ │ ├── GlobalFunctions.kt │ │ │ │ ├── IntentExt.kt │ │ │ │ ├── NumberExt.kt │ │ │ │ ├── ServiceExt.kt │ │ │ │ └── SharedPreferencesExt.kt │ │ │ └── util │ │ │ │ ├── NetworkUtil.kt │ │ │ │ ├── PackageEx.kt │ │ │ │ ├── SystemUtil.kt │ │ │ │ └── ValidationUtil.kt │ │ │ ├── auth │ │ │ └── OAuthSignClientAndroid.kt │ │ │ ├── client │ │ │ ├── BaseActivity.kt │ │ │ └── UiManager.kt │ │ │ ├── net │ │ │ └── httpClientSimpleAndroid.kt │ │ │ └── util │ │ │ └── LogAndroid.kt │ │ └── res │ │ └── values │ │ └── strings.xml └── kotlin-simple-architecture-gradle │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ └── main │ └── kotlin │ ├── kim │ └── jeonghyeon │ │ └── simplearchitecture │ │ └── plugin │ │ ├── MainGradlePlugin.kt │ │ ├── config │ │ ├── AndroidConfig.kt │ │ ├── CommonConfig.kt │ │ └── SimpleConfig.kt │ │ └── task │ │ └── GenerateSimpleConfigTask.kt │ └── sqldelight.kt ├── gradle.properties ├── gradle ├── publish │ ├── publish.md │ ├── publishAndroid.gradle │ ├── publishGradlePlugin.gradle │ ├── publishJvm.gradle │ ├── publishMPP.gradle │ └── publishShadowJar.gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── initializer ├── android-backend-api-only │ ├── .gitignore │ ├── README.md │ ├── android │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── template │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── colors.xml │ │ │ └── strings.xml │ ├── backend │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── kotlin │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── backend │ │ │ │ ├── Application.kt │ │ │ │ └── GreetingController.kt │ │ │ └── resources │ │ │ └── application.conf │ ├── base │ │ ├── .gitignore │ │ ├── base.podspec │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── kim.jeonghyeon.base │ │ │ │ └── GreetingApi.kt │ │ │ ├── jvmSharedMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ └── HttpClient.kt │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── base │ │ │ └── HomeViewModel.kt │ ├── build.gradle.kts │ ├── buildSrc │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ └── Dependencies.kt │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── settings.gradle.kts │ └── shell │ │ ├── installAndroid.sh │ │ └── runBackend.sh ├── android-ios-backend │ ├── .gitignore │ ├── README.md │ ├── android │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ ├── androidlibrary │ │ │ │ └── compose │ │ │ │ │ ├── Screen.kt │ │ │ │ │ ├── screen │ │ │ │ │ └── TabsScreen.kt │ │ │ │ │ └── widget │ │ │ │ │ ├── Button.kt │ │ │ │ │ ├── ErrorSnackbar.kt │ │ │ │ │ ├── ListView.kt │ │ │ │ │ ├── LoadingBox.kt │ │ │ │ │ └── Spacer.kt │ │ │ │ └── template │ │ │ │ ├── HomeScreen.kt │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── backend │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ ├── kotlin │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── backend │ │ │ │ ├── Application.kt │ │ │ │ └── GreetingController.kt │ │ │ └── resources │ │ │ └── application.conf │ ├── base │ │ ├── .gitignore │ │ ├── base.podspec │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── template │ │ │ │ └── ExampleInstrumentedTest.kt │ │ │ ├── clientMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ ├── Hello.kt │ │ │ │ └── HomeViewModel.kt │ │ │ ├── commonMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ ├── GreetingApi.kt │ │ │ │ └── HttpClient.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ └── HelloIos.kt │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ └── HelloAndroid.kt │ │ │ └── test │ │ │ └── java │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── template │ │ │ └── ExampleUnitTest.kt │ ├── build.gradle.kts │ ├── buildSrc │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ └── Dependencies.kt │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── ios │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── Pods │ │ │ ├── Local Podspecs │ │ │ │ └── base.podspec.json │ │ │ ├── Manifest.lock │ │ │ ├── Pods.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcuserdata │ │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ │ └── xcschemes │ │ │ │ │ ├── Pods-ios-iosUITests.xcscheme │ │ │ │ │ ├── Pods-ios.xcscheme │ │ │ │ │ ├── Pods-iosTests.xcscheme │ │ │ │ │ ├── base.xcscheme │ │ │ │ │ └── xcschememanagement.plist │ │ │ └── Target Support Files │ │ │ │ ├── Pods-ios-iosUITests │ │ │ │ ├── Pods-ios-iosUITests-Info.plist │ │ │ │ ├── Pods-ios-iosUITests-acknowledgements.markdown │ │ │ │ ├── Pods-ios-iosUITests-acknowledgements.plist │ │ │ │ ├── Pods-ios-iosUITests-dummy.m │ │ │ │ ├── Pods-ios-iosUITests-frameworks-Debug-input-files.xcfilelist │ │ │ │ ├── Pods-ios-iosUITests-frameworks-Debug-output-files.xcfilelist │ │ │ │ ├── Pods-ios-iosUITests-frameworks-Release-input-files.xcfilelist │ │ │ │ ├── Pods-ios-iosUITests-frameworks-Release-output-files.xcfilelist │ │ │ │ ├── Pods-ios-iosUITests-frameworks.sh │ │ │ │ ├── Pods-ios-iosUITests-umbrella.h │ │ │ │ ├── Pods-ios-iosUITests.debug.xcconfig │ │ │ │ ├── Pods-ios-iosUITests.modulemap │ │ │ │ └── Pods-ios-iosUITests.release.xcconfig │ │ │ │ ├── Pods-ios │ │ │ │ ├── Pods-ios-Info.plist │ │ │ │ ├── Pods-ios-acknowledgements.markdown │ │ │ │ ├── Pods-ios-acknowledgements.plist │ │ │ │ ├── Pods-ios-dummy.m │ │ │ │ ├── Pods-ios-frameworks-Debug-input-files.xcfilelist │ │ │ │ ├── Pods-ios-frameworks-Debug-output-files.xcfilelist │ │ │ │ ├── Pods-ios-frameworks-Release-input-files.xcfilelist │ │ │ │ ├── Pods-ios-frameworks-Release-output-files.xcfilelist │ │ │ │ ├── Pods-ios-frameworks.sh │ │ │ │ ├── Pods-ios-umbrella.h │ │ │ │ ├── Pods-ios.debug.xcconfig │ │ │ │ ├── Pods-ios.modulemap │ │ │ │ └── Pods-ios.release.xcconfig │ │ │ │ ├── Pods-iosTests │ │ │ │ ├── Pods-iosTests-Info.plist │ │ │ │ ├── Pods-iosTests-acknowledgements.markdown │ │ │ │ ├── Pods-iosTests-acknowledgements.plist │ │ │ │ ├── Pods-iosTests-dummy.m │ │ │ │ ├── Pods-iosTests-umbrella.h │ │ │ │ ├── Pods-iosTests.debug.xcconfig │ │ │ │ ├── Pods-iosTests.modulemap │ │ │ │ └── Pods-iosTests.release.xcconfig │ │ │ │ └── base │ │ │ │ ├── base.debug.xcconfig │ │ │ │ └── base.release.xcconfig │ │ ├── ios.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ ├── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcuserdata │ │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ ├── ios.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ ├── ios │ │ │ ├── Assets.xcassets │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── HomeScreen.swift │ │ │ ├── Info.plist │ │ │ ├── MainActivity.swift │ │ │ ├── Preview Content │ │ │ │ └── Preview Assets.xcassets │ │ │ │ │ └── Contents.json │ │ │ ├── iosApp.swift │ │ │ └── library │ │ │ │ ├── BaseActivity.swift │ │ │ │ ├── ComposeTypeAlias.swift │ │ │ │ ├── Localizable.swift │ │ │ │ ├── Screen.swift │ │ │ │ ├── Snackbar.swift │ │ │ │ ├── ThreadEx.swift │ │ │ │ ├── TypeAliases.swift │ │ │ │ └── ViewModelEx.swift │ │ ├── iosTests │ │ │ ├── Info.plist │ │ │ └── iosTests.swift │ │ └── iosUITests │ │ │ ├── Info.plist │ │ │ └── iosUITests.swift │ ├── settings.gradle.kts │ └── shell │ │ ├── installAndroid.sh │ │ └── runBackend.sh ├── android-ios │ ├── .gitignore │ ├── README.md │ ├── android │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src │ │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── java │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ ├── androidlibrary │ │ │ │ └── compose │ │ │ │ │ ├── Screen.kt │ │ │ │ │ ├── screen │ │ │ │ │ └── TabsScreen.kt │ │ │ │ │ └── widget │ │ │ │ │ ├── Button.kt │ │ │ │ │ ├── ErrorSnackbar.kt │ │ │ │ │ ├── ListView.kt │ │ │ │ │ ├── LoadingBox.kt │ │ │ │ │ └── Spacer.kt │ │ │ │ └── template │ │ │ │ ├── HomeScreen.kt │ │ │ │ └── MainActivity.kt │ │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ ├── base │ │ ├── .gitignore │ │ ├── base.podspec │ │ ├── build.gradle.kts │ │ └── src │ │ │ ├── androidTest │ │ │ └── java │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── template │ │ │ │ └── ExampleInstrumentedTest.kt │ │ │ ├── clientMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ ├── Hello.kt │ │ │ │ └── HomeViewModel.kt │ │ │ ├── iosMain │ │ │ └── kotlin │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ └── HelloIos.kt │ │ │ ├── main │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── base │ │ │ │ └── HelloAndroid.kt │ │ │ └── test │ │ │ └── java │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── template │ │ │ └── ExampleUnitTest.kt │ ├── build.gradle.kts │ ├── buildSrc │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ └── src │ │ │ └── main │ │ │ └── kotlin │ │ │ └── Dependencies.kt │ ├── gradle.properties │ ├── gradle │ │ └── wrapper │ │ │ ├── gradle-wrapper.jar │ │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ ├── ios │ │ ├── Podfile │ │ ├── Podfile.lock │ │ ├── Pods │ │ │ ├── Local Podspecs │ │ │ │ └── base.podspec.json │ │ │ ├── Manifest.lock │ │ │ ├── Pods.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcuserdata │ │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ │ └── xcschemes │ │ │ │ │ ├── Pods-ios-iosUITests.xcscheme │ │ │ │ │ ├── Pods-ios.xcscheme │ │ │ │ │ ├── Pods-iosTests.xcscheme │ │ │ │ │ ├── base.xcscheme │ │ │ │ │ └── xcschememanagement.plist │ │ │ └── Target Support Files │ │ │ │ ├── Pods-ios-iosUITests │ │ │ │ ├── Pods-ios-iosUITests-Info.plist │ │ │ │ ├── Pods-ios-iosUITests-acknowledgements.markdown │ │ │ │ ├── Pods-ios-iosUITests-acknowledgements.plist │ │ │ │ ├── Pods-ios-iosUITests-dummy.m │ │ │ │ ├── Pods-ios-iosUITests-umbrella.h │ │ │ │ ├── Pods-ios-iosUITests.debug.xcconfig │ │ │ │ ├── Pods-ios-iosUITests.modulemap │ │ │ │ └── Pods-ios-iosUITests.release.xcconfig │ │ │ │ ├── Pods-ios │ │ │ │ ├── Pods-ios-Info.plist │ │ │ │ ├── Pods-ios-acknowledgements.markdown │ │ │ │ ├── Pods-ios-acknowledgements.plist │ │ │ │ ├── Pods-ios-dummy.m │ │ │ │ ├── Pods-ios-umbrella.h │ │ │ │ ├── Pods-ios.debug.xcconfig │ │ │ │ ├── Pods-ios.modulemap │ │ │ │ └── Pods-ios.release.xcconfig │ │ │ │ ├── Pods-iosTests │ │ │ │ ├── Pods-iosTests-Info.plist │ │ │ │ ├── Pods-iosTests-acknowledgements.markdown │ │ │ │ ├── Pods-iosTests-acknowledgements.plist │ │ │ │ ├── Pods-iosTests-dummy.m │ │ │ │ ├── Pods-iosTests-umbrella.h │ │ │ │ ├── Pods-iosTests.debug.xcconfig │ │ │ │ ├── Pods-iosTests.modulemap │ │ │ │ └── Pods-iosTests.release.xcconfig │ │ │ │ └── base │ │ │ │ ├── base.debug.xcconfig │ │ │ │ └── base.release.xcconfig │ │ ├── ios.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ ├── xcshareddata │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ └── xcuserdata │ │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ │ └── UserInterfaceState.xcuserstate │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ ├── ios.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ └── UserInterfaceState.xcuserstate │ │ ├── ios │ │ │ ├── Assets.xcassets │ │ │ │ ├── AccentColor.colorset │ │ │ │ │ └── Contents.json │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ └── Contents.json │ │ │ │ └── Contents.json │ │ │ ├── HomeScreen.swift │ │ │ ├── Info.plist │ │ │ ├── MainActivity.swift │ │ │ ├── Preview Content │ │ │ │ └── Preview Assets.xcassets │ │ │ │ │ └── Contents.json │ │ │ ├── iosApp.swift │ │ │ └── library │ │ │ │ ├── BaseActivity.swift │ │ │ │ ├── ComposeTypeAlias.swift │ │ │ │ ├── Localizable.swift │ │ │ │ ├── Screen.swift │ │ │ │ ├── Snackbar.swift │ │ │ │ ├── ThreadEx.swift │ │ │ │ ├── TypeAliases.swift │ │ │ │ └── ViewModelEx.swift │ │ ├── iosTests │ │ │ ├── Info.plist │ │ │ └── iosTests.swift │ │ └── iosUITests │ │ │ ├── Info.plist │ │ │ └── iosUITests.swift │ ├── settings.gradle.kts │ └── shell │ │ └── installAndroid.sh └── android │ ├── .gitignore │ ├── README.md │ ├── app │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── template │ │ │ └── ExampleInstrumentedTest.kt │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ ├── androidlibrary │ │ │ │ └── compose │ │ │ │ │ ├── Screen.kt │ │ │ │ │ ├── screen │ │ │ │ │ └── TabsScreen.kt │ │ │ │ │ └── widget │ │ │ │ │ ├── Button.kt │ │ │ │ │ ├── ErrorSnackbar.kt │ │ │ │ │ ├── ListView.kt │ │ │ │ │ ├── LoadingBox.kt │ │ │ │ │ └── Spacer.kt │ │ │ │ └── template │ │ │ │ ├── HomeScreen.kt │ │ │ │ ├── HomeViewModel.kt │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable │ │ │ └── ic_launcher_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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-night │ │ │ └── themes.xml │ │ │ └── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── themes.xml │ │ └── test │ │ └── java │ │ └── kim │ │ └── jeonghyeon │ │ └── template │ │ └── ExampleUnitTest.kt │ ├── build.gradle.kts │ ├── buildSrc │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── Dependencies.kt │ ├── gradle.properties │ ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle.kts ├── sample ├── .gitignore ├── README.md ├── build.gradle.kts ├── buildSrc │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ ├── Dependencies.kt │ │ └── config.kt ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── sample-android │ ├── .gitignore │ ├── build.gradle.kts │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ ├── com │ │ │ └── example │ │ │ │ └── sampleandroid │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── ui │ │ │ │ ├── Color.kt │ │ │ │ └── Theme.kt │ │ │ │ └── view │ │ │ │ ├── MainScaffold.kt │ │ │ │ ├── drawer │ │ │ │ ├── HomeDrawer.kt │ │ │ │ └── SubDrawer.kt │ │ │ │ ├── home │ │ │ │ └── HomeScreen.kt │ │ │ │ ├── model │ │ │ │ ├── ApiAnnotationScreen.kt │ │ │ │ ├── ApiBindingScreen.kt │ │ │ │ ├── ApiDbScreen.kt │ │ │ │ ├── ApiExternalScreen.kt │ │ │ │ ├── ApiHeaderScreen.kt │ │ │ │ ├── ApiParallelScreen.kt │ │ │ │ ├── ApiPollingScreen.kt │ │ │ │ ├── ApiSequentialScreen.kt │ │ │ │ ├── ApiSingleScreen.kt │ │ │ │ ├── ApiTestScreen.kt │ │ │ │ ├── DbSimpleScreen.kt │ │ │ │ ├── DeeplinkScreen.kt │ │ │ │ ├── DeeplinkSubScreen.kt │ │ │ │ ├── RetrofitScreen.kt │ │ │ │ ├── SearchScreen.kt │ │ │ │ ├── SignInScreen.kt │ │ │ │ ├── SignUpScreen.kt │ │ │ │ └── UserScreen.kt │ │ │ │ └── widget │ │ │ │ └── SampleTextField.kt │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── androidlibrary │ │ │ └── compose │ │ │ ├── Screen.kt │ │ │ ├── screen │ │ │ └── TabsScreen.kt │ │ │ └── widget │ │ │ ├── Button.kt │ │ │ ├── ErrorSnackbar.kt │ │ │ ├── ListView.kt │ │ │ ├── LoadingBox.kt │ │ │ └── Spacer.kt │ │ └── res │ │ ├── drawable-v24 │ │ └── ic_launcher_foreground.xml │ │ ├── drawable │ │ └── ic_launcher_background.xml │ │ ├── mipmap-anydpi-v26 │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ │ ├── 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-night │ │ └── themes.xml │ │ └── values │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml ├── sample-backend │ ├── .gitignore │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── kotlin │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── backend │ │ │ ├── Application.kt │ │ │ ├── auth │ │ │ └── SampleSignController.kt │ │ │ ├── const │ │ │ └── PreferenceEx.kt │ │ │ ├── controller │ │ │ ├── ApiTestController.kt │ │ │ ├── RetrofitToSimpleController.kt │ │ │ └── SampleController.kt │ │ │ ├── di │ │ │ └── ServiceLocatorBackend.kt │ │ │ ├── log │ │ │ └── LoggerStartupListener.kt │ │ │ └── user │ │ │ └── UserController.kt │ │ └── resources │ │ ├── application.conf │ │ └── logback.xml ├── sample-base │ ├── .gitignore │ ├── build.gradle.kts │ ├── http │ │ └── simple.http │ ├── sample_base.podspec │ └── src │ │ ├── commonMain │ │ ├── kotlin │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ ├── const │ │ │ │ ├── ApiErrorBodyEx.kt │ │ │ │ └── DeeplinkUrl.kt │ │ │ │ ├── net │ │ │ │ └── HttpClient.kt │ │ │ │ └── sample │ │ │ │ └── api │ │ │ │ ├── GithubApi.kt │ │ │ │ ├── RetrofitToSimpleApi.kt │ │ │ │ ├── SampleApi.kt │ │ │ │ ├── TestApi.kt │ │ │ │ └── UserApi.kt │ │ └── sqldelight │ │ │ └── kim │ │ │ └── jeonghyeon │ │ │ └── sample │ │ │ └── Word.sq │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── kim │ │ │ │ └── jeonghyeon │ │ │ │ └── sample │ │ │ │ ├── api │ │ │ │ ├── RequestResponseAdapter.kt │ │ │ │ ├── RetrofitAdapter.kt │ │ │ │ └── RetrofitApi.kt │ │ │ │ └── viewmodel │ │ │ │ └── RetrofitViewModel.kt │ │ └── res │ │ │ ├── drawable-anydpi │ │ │ ├── ic_save.xml │ │ │ └── ic_share.xml │ │ │ ├── drawable-hdpi │ │ │ ├── ic_save.png │ │ │ └── ic_share.png │ │ │ ├── drawable-mdpi │ │ │ ├── ic_save.png │ │ │ └── ic_share.png │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── ic_save.png │ │ │ └── ic_share.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── ic_save.png │ │ │ └── ic_share.png │ │ │ ├── drawable │ │ │ ├── bg_wallet_register_card.png │ │ │ ├── ic_android.xml │ │ │ ├── ic_home.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── sample_background_tile.xml │ │ │ ├── sample_rectangle_dotted.xml │ │ │ └── sample_selector.xml │ │ │ ├── font │ │ │ ├── font_gotham_bold.otf │ │ │ ├── font_gotham_book.otf │ │ │ ├── font_gotham_medium.otf │ │ │ ├── font_roboto_black.ttf │ │ │ ├── font_roboto_bold.ttf │ │ │ ├── font_roboto_light.ttf │ │ │ ├── font_roboto_medium.ttf │ │ │ ├── font_roboto_regular.ttf │ │ │ ├── gotham_bold.xml │ │ │ ├── gotham_book.xml │ │ │ ├── gotham_medium.xml │ │ │ ├── roboto_black.xml │ │ │ ├── roboto_bold.xml │ │ │ ├── roboto_light.xml │ │ │ ├── roboto_medium.xml │ │ │ └── roboto_regular.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── 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 │ │ │ ├── colors-in-style.xml │ │ │ ├── colors-palette.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ └── mobileMain │ │ └── kotlin │ │ └── kim │ │ └── jeonghyeon │ │ └── sample │ │ ├── Deeplink.kt │ │ ├── di │ │ └── ServiceLocatorClient.kt │ │ ├── repository │ │ ├── UserRepository.kt │ │ └── WordRepository.kt │ │ └── viewmodel │ │ ├── ApiAnnotationViewModel.kt │ │ ├── ApiBindingViewModel.kt │ │ ├── ApiDbViewModel.kt │ │ ├── ApiExternalViewModel.kt │ │ ├── ApiHeaderViewModel.kt │ │ ├── ApiParallelViewModel.kt │ │ ├── ApiPollingViewModel.kt │ │ ├── ApiSequentialViewModel.kt │ │ ├── ApiSingleViewModel.kt │ │ ├── ApiTestViewModel.kt │ │ ├── DbSimpleViewModel.kt │ │ ├── DeeplinkSubViewModel.kt │ │ ├── DeeplinkViewModel.kt │ │ ├── HomeViewModel.kt │ │ ├── SampleViewModel.kt │ │ ├── SearchViewModel.kt │ │ ├── SignInViewModel.kt │ │ ├── SignUpViewModel.kt │ │ └── UserViewModel.kt ├── sample-native │ ├── .gitignore │ ├── Podfile │ ├── Podfile.lock │ ├── Pods │ │ ├── Local Podspecs │ │ │ └── sample_base.podspec.json │ │ ├── Manifest.lock │ │ ├── Pods.xcodeproj │ │ │ ├── project.pbxproj │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ └── xcschemes │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests.xcscheme │ │ │ │ ├── Pods-kotlinIOS.xcscheme │ │ │ │ ├── Pods-kotlinIOSTests.xcscheme │ │ │ │ ├── sample_base.xcscheme │ │ │ │ └── xcschememanagement.plist │ │ ├── Target Support Files │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-Info.plist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-acknowledgements.markdown │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-acknowledgements.plist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-dummy.m │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-Prod-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-Prod-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Release-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks-Release-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-frameworks.sh │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests-umbrella.h │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests.debug-prod.xcconfig │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests.debug.xcconfig │ │ │ │ ├── Pods-kotlinIOS-kotlinIOSUITests.modulemap │ │ │ │ └── Pods-kotlinIOS-kotlinIOSUITests.release.xcconfig │ │ │ ├── Pods-kotlinIOS │ │ │ │ ├── Pods-kotlinIOS-Info.plist │ │ │ │ ├── Pods-kotlinIOS-acknowledgements.markdown │ │ │ │ ├── Pods-kotlinIOS-acknowledgements.plist │ │ │ │ ├── Pods-kotlinIOS-dummy.m │ │ │ │ ├── Pods-kotlinIOS-frameworks-Debug-Prod-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks-Debug-Prod-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks-Debug-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks-Debug-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks-Release-input-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks-Release-output-files.xcfilelist │ │ │ │ ├── Pods-kotlinIOS-frameworks.sh │ │ │ │ ├── Pods-kotlinIOS-umbrella.h │ │ │ │ ├── Pods-kotlinIOS.debug-prod.xcconfig │ │ │ │ ├── Pods-kotlinIOS.debug.xcconfig │ │ │ │ ├── Pods-kotlinIOS.modulemap │ │ │ │ └── Pods-kotlinIOS.release.xcconfig │ │ │ ├── Pods-kotlinIOSTests │ │ │ │ ├── Pods-kotlinIOSTests-Info.plist │ │ │ │ ├── Pods-kotlinIOSTests-acknowledgements.markdown │ │ │ │ ├── Pods-kotlinIOSTests-acknowledgements.plist │ │ │ │ ├── Pods-kotlinIOSTests-dummy.m │ │ │ │ ├── Pods-kotlinIOSTests-umbrella.h │ │ │ │ ├── Pods-kotlinIOSTests.debug-prod.xcconfig │ │ │ │ ├── Pods-kotlinIOSTests.debug.xcconfig │ │ │ │ ├── Pods-kotlinIOSTests.modulemap │ │ │ │ └── Pods-kotlinIOSTests.release.xcconfig │ │ │ └── sample_base │ │ │ │ ├── sample_base.debug.xcconfig │ │ │ │ └── sample_base.release.xcconfig │ │ └── build │ │ │ └── Pods_kotlinIOS.framework │ │ │ ├── Headers │ │ │ └── Pods-kotlinIOS-umbrella.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ └── module.modulemap │ │ │ ├── Pods_kotlinIOS │ │ │ └── _CodeSignature │ │ │ ├── CodeDirectory │ │ │ ├── CodeRequirements │ │ │ ├── CodeRequirements-1 │ │ │ ├── CodeResources │ │ │ └── CodeSignature │ ├── build │ │ ├── Pods_kotlinIOS.framework │ │ │ ├── Headers │ │ │ │ └── Pods-kotlinIOS-umbrella.h │ │ │ ├── Info.plist │ │ │ ├── Modules │ │ │ │ └── module.modulemap │ │ │ ├── Pods_kotlinIOS │ │ │ └── _CodeSignature │ │ │ │ ├── CodeDirectory │ │ │ │ ├── CodeRequirements │ │ │ │ ├── CodeRequirements-1 │ │ │ │ ├── CodeResources │ │ │ │ └── CodeSignature │ │ ├── kotlinIOS.app │ │ │ ├── Base.lproj │ │ │ │ ├── LaunchScreen.storyboardc │ │ │ │ │ ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── UIViewController-01J-lp-oVM.nib │ │ │ │ └── Localizable.strings │ │ │ ├── Info.plist │ │ │ ├── PkgInfo │ │ │ ├── _CodeSignature │ │ │ │ └── CodeResources │ │ │ ├── ko.lproj │ │ │ │ └── Localizable.strings │ │ │ ├── kotlinIOS │ │ │ └── kotlinIOS.momd │ │ │ │ ├── VersionInfo.plist │ │ │ │ ├── kotlinIOS.mom │ │ │ │ └── kotlinIOS.omo │ │ └── kotlinIOS.swiftmodule │ │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ │ ├── x86_64-apple-ios-simulator.swiftmodule │ │ │ ├── x86_64.swiftdoc │ │ │ └── x86_64.swiftmodule │ ├── kotlinIOS.xcodeproj │ │ ├── project.pbxproj │ │ ├── project.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ ├── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ └── xcuserdata │ │ │ │ └── hyun.kim.xcuserdatad │ │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ │ └── xcschemes │ │ │ │ └── xcschememanagement.plist │ │ ├── xcshareddata │ │ │ └── xcschemes │ │ │ │ ├── kotlinIOS-Debug-Prod.xcscheme │ │ │ │ └── kotlinIOSTests-Release.xcscheme │ │ └── xcuserdata │ │ │ └── hyun.kim.xcuserdatad │ │ │ ├── xcdebugger │ │ │ └── Breakpoints_v2.xcbkptlist │ │ │ └── xcschemes │ │ │ ├── kotlinIOS.xcscheme │ │ │ └── xcschememanagement.plist │ ├── kotlinIOS.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ │ └── xcuserdata │ │ │ └── hyun.kim.xcuserdatad │ │ │ └── UserInterfaceState.xcuserstate │ ├── kotlinIOS │ │ ├── Assets.xcassets │ │ │ ├── AppIcon.appiconset │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Base.lproj │ │ │ └── LaunchScreen.storyboard │ │ ├── Info.plist │ │ ├── Preview Content │ │ │ └── Preview Assets.xcassets │ │ │ │ └── Contents.json │ │ ├── Resources │ │ │ └── kotlinIOS │ │ │ │ ├── Base.lproj │ │ │ │ └── Localizable.strings │ │ │ │ └── ko.lproj │ │ │ │ └── Localizable.strings │ │ ├── SampleApp.swift │ │ ├── ko.lproj │ │ │ ├── LaunchScreen.storyboard │ │ │ └── LaunchScreen.strings │ │ ├── kotlinIOS.xcdatamodeld │ │ │ ├── .xccurrentversion │ │ │ └── kotlinIOS.xcdatamodel │ │ │ │ └── contents │ │ ├── library │ │ │ ├── BaseActivity.swift │ │ │ ├── ComposeTypeAlias.swift │ │ │ ├── Localizable.swift │ │ │ ├── Screen.swift │ │ │ ├── Snackbar.swift │ │ │ ├── ThreadEx.swift │ │ │ ├── TypeAliases.swift │ │ │ └── ViewModelEx.swift │ │ ├── screen │ │ │ ├── HomeScreen.swift │ │ │ ├── MainActivity.swift │ │ │ ├── model │ │ │ │ ├── ApiAnnotationScreen.swift │ │ │ │ ├── ApiBindingScreen.swift │ │ │ │ ├── ApiDbScreen.swift │ │ │ │ ├── ApiExternalScreen.swift │ │ │ │ ├── ApiHeaderScreen.swift │ │ │ │ ├── ApiParallelScreen.swift │ │ │ │ ├── ApiPollingScreen.swift │ │ │ │ ├── ApiSequentialScreen.swift │ │ │ │ ├── ApiSingleScreen.swift │ │ │ │ ├── ApiTestScreen.swift │ │ │ │ ├── DbSimpleScreen.swift │ │ │ │ ├── DeeplinkScreen.swift │ │ │ │ ├── DeeplinkSubScreen.swift │ │ │ │ ├── ModelScreen.swift │ │ │ │ ├── SearchScreen.swift │ │ │ │ ├── SignInScreen.swift │ │ │ │ ├── SignUpScreen.swift │ │ │ │ └── UserScreen.swift │ │ │ └── view │ │ │ │ └── ViewScreen.swift │ │ └── widget │ │ │ └── SampleTextField.swift │ ├── kotlinIOSTests │ │ ├── Info.plist │ │ └── kotlinIOSTests.swift │ ├── kotlinIOSUITests │ │ ├── Info.plist │ │ └── kotlinIOSUITests.swift │ └── sample │ │ └── sample-native │ │ └── build │ │ ├── Pods_kotlinIOS.framework │ │ ├── Headers │ │ │ └── Pods-kotlinIOS-umbrella.h │ │ ├── Info.plist │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── Pods_kotlinIOS │ │ └── _CodeSignature │ │ │ ├── CodeDirectory │ │ │ ├── CodeRequirements │ │ │ ├── CodeRequirements-1 │ │ │ ├── CodeResources │ │ │ └── CodeSignature │ │ ├── kotlinIOS.app │ │ ├── Base.lproj │ │ │ ├── LaunchScreen.storyboardc │ │ │ │ ├── 01J-lp-oVM-view-Ze5-6b-2t3.nib │ │ │ │ ├── Info.plist │ │ │ │ └── UIViewController-01J-lp-oVM.nib │ │ │ └── Localizable.strings │ │ ├── Info.plist │ │ ├── PkgInfo │ │ ├── _CodeSignature │ │ │ └── CodeResources │ │ ├── ko.lproj │ │ │ └── Localizable.strings │ │ ├── kotlinIOS │ │ └── kotlinIOS.momd │ │ │ ├── VersionInfo.plist │ │ │ ├── kotlinIOS.mom │ │ │ └── kotlinIOS.omo │ │ └── kotlinIOS.swiftmodule │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ ├── x86_64-apple-ios-simulator.swiftmodule │ │ ├── x86_64.swiftdoc │ │ └── x86_64.swiftmodule ├── settings.gradle.kts └── shell │ ├── deployAll.sh │ ├── deployAllAlert.sh │ ├── deployBackend.sh │ ├── installAndroid.sh │ ├── installAndroidProductionDebug.sh │ ├── installAndroidProductionRelease.sh │ ├── installIos.sh │ └── runBackendLocal.sh ├── settings.gradle.kts ├── shell ├── completed.sh ├── completedNoSound.sh ├── error.sh ├── errorNoSound.sh ├── publishLocal.sh ├── publishLocalClient.sh ├── publishRelease.sh ├── publishReleaseAlert.sh └── runTempTest.sh └── temp-test ├── .gitignore ├── README.md ├── build.gradle.kts └── src ├── jsMain └── kotlin │ ├── client.kt │ └── welcome.kt └── jvmMain └── kotlin └── TempTest.kt /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /projectFilesBackup 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | -------------------------------------------------------------------------------- /api/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | kotlin("multiplatform") 3 | } 4 | 5 | group = deps.simpleArch.api.annotation.getGroupId() 6 | version = deps.simpleArch.api.annotation.getVersion() 7 | 8 | kotlin { 9 | explicitApi() 10 | 11 | //if this multiplatform doesn't include any platform that your project is using, then your project won't recognize this library 12 | jvm() 13 | js()/*.browser()*/ 14 | 15 | ios() 16 | } 17 | 18 | publishMPP() -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Api.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | 4 | /** 5 | * add annotation on interface. 6 | * @param path if it's "" then use base url, if it contains ://, replace base url. if it contains some path, attach to base url 7 | * 8 | * todo this retention is runtime becase backend jvm use annotation on runtime. if backend migrate to native, this is not required 9 | */ 10 | @Target(AnnotationTarget.CLASS) 11 | @Retention(AnnotationRetention.RUNTIME) 12 | public annotation class Api(val path: String = "") -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/ApiParameterType.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | public enum class ApiParameterType { 4 | HEADER, QUERY, PATH, BODY, NONE 5 | } -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Body.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.VALUE_PARAMETER) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Body -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/CallSuper.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | public annotation class CallSuper -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Delete.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Delete(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Get.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | /** 4 | * use GET method, 5 | * @param path 6 | * if "" then, baseUrl + Api's path 7 | * if contains '://' then, replace baseUrl 8 | * if it's path, baseUrl + Api's path + this 9 | */ 10 | @Target(AnnotationTarget.FUNCTION) 11 | @Retention(AnnotationRetention.RUNTIME) 12 | public annotation class Get(val path: String = "") -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Head.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Head(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Header.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.VALUE_PARAMETER) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Header(val name: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Keep.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.SOURCE) 5 | public annotation class Keep -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Options.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Options(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Patch.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Patch(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Path.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | /** 4 | * todo support encoded 5 | */ 6 | @Target(AnnotationTarget.VALUE_PARAMETER) 7 | @Retention(AnnotationRetention.RUNTIME) 8 | public annotation class Path(val name: String, val encoded: Boolean = false) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Post.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Post(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Put.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | @Target(AnnotationTarget.FUNCTION) 4 | @Retention(AnnotationRetention.RUNTIME) 5 | public annotation class Put(val path: String) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/Query.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | /** 4 | * todo support encoded 5 | */ 6 | @Target(AnnotationTarget.VALUE_PARAMETER) 7 | @Retention(AnnotationRetention.RUNTIME) 8 | public annotation class Query(val name: String, val encoded: Boolean = false) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-annotation/src/commonMain/kotlin/kim/jeonghyeon/annotation/SimpleArchInternal.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.annotation 2 | 3 | /** 4 | * annotated function or class is used only in simple architecture. so, don't use 5 | */ 6 | @RequiresOptIn(level = RequiresOptIn.Level.WARNING, 7 | message = "This Api can change" 8 | ) 9 | public annotation class SimpleArchInternal(val explanation: String = "") -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-backend/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-backend/src/jvmMain/kotlin/kim/jeonghyeon/net/PipelineContextStore.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | import io.ktor.application.* 4 | import io.ktor.util.pipeline.* 5 | import kotlin.coroutines.CoroutineContext 6 | 7 | class PipelineContextStore( 8 | val context: PipelineContext, 9 | var responded: Boolean = false 10 | ) : 11 | CoroutineContext.Element { 12 | override val key: CoroutineContext.Key<*> 13 | get() = Key 14 | 15 | companion object Key : CoroutineContext.Key 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/commonMain/kotlin/kim/jeonghyeon/type/AtomicReference.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | //todo I couldn't refer AtomicRef on common. if it's possible this can be removed 4 | expect class AtomicReference(initial: T) { 5 | fun getAndSet(value: T): T 6 | var value: T 7 | } 8 | 9 | fun atomic(initial: T) = AtomicReference(initial) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/commonMain/kotlin/kim/jeonghyeon/type/ResourceError.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | open class ResourceError(message: String? = null, cause: Throwable? = null) : 4 | RuntimeException(message, cause) { 5 | fun asResource(): Resource = Resource.Error(this) 6 | } -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/commonMain/kotlin/kim/jeonghyeon/type/UnknownResourceError.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | class UnknownResourceError(cause: Throwable? = null) : ResourceError(cause = cause) -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/iosMain/kotlin/kim/jeonghyeon/net/HttpClientBaseExIos.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | import io.ktor.client.engine.ios.* 4 | import io.ktor.util.* 5 | 6 | //todo check exception type 7 | @OptIn(KtorExperimentalAPI::class) 8 | actual fun Throwable.isConnectException(): Boolean = this is IosHttpRequestException -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/iosMain/kotlin/kim/jeonghyeon/type/AtomicReferenceIos.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | import kotlinx.atomicfu.atomic 4 | 5 | actual class AtomicReference actual constructor(initial: T) { 6 | private val atomic = atomic(initial) 7 | 8 | actual fun getAndSet(value: T): T = atomic.getAndSet(value) 9 | actual var value: T 10 | get() { 11 | return atomic.value 12 | } 13 | set(value) { 14 | atomic.value = value 15 | } 16 | } -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/jsMain/kotlin/kim/jeonghyeon/net/HttpClientSimpleJs.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | 4 | //todo check exception type 5 | actual fun Throwable.isConnectException(): Boolean = false -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/jsMain/kotlin/kim/jeonghyeon/type/AtomicReferenceJs.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | import kotlinx.atomicfu.atomic 4 | 5 | actual class AtomicReference actual constructor(initial: T) { 6 | private val atomic = atomic(initial) 7 | 8 | actual fun getAndSet(value: T): T = atomic.getAndSet(value) 9 | actual var value: T 10 | get() { 11 | return atomic.value 12 | } 13 | set(value) { 14 | atomic.value = value 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/jvmShareMain/kotlin/kim/jeonghyeon/net/httpClientSimpleJvm.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | import java.net.ConnectException 4 | 5 | actual fun Throwable.isConnectException(): Boolean = this is ConnectException 6 | -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/jvmShareMain/kotlin/kim/jeonghyeon/type/AtomicReferenceJvm.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | 4 | 5 | actual class AtomicReference actual constructor(initial: T) { 6 | 7 | private val atomic = java.util.concurrent.atomic.AtomicReference(initial) 8 | 9 | actual fun getAndSet(value: T): T = atomic.getAndSet(value) 10 | actual var value: T 11 | get() { 12 | return atomic.get() 13 | } 14 | set(value) { 15 | atomic.set(value) 16 | } 17 | } -------------------------------------------------------------------------------- /api/library/kotlin-simple-api-client/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-native/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-native/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | id("org.jetbrains.kotlin.jvm") 4 | id("kotlin-kapt") 5 | } 6 | 7 | group = deps.simpleArch.api.gradleServiceNative.getGroupId() 8 | version = deps.simpleArch.api.gradleServiceNative.getVersion() 9 | 10 | dependencies { 11 | // implementation(project(":gradle-plugin:${deps.simpleArch.api.gradleServiceShared.getArtifactId()}")) 12 | implementation(deps.simpleArch.api.gradleServiceShared) 13 | compileOnly(deps.plugin.compiler)//for native 14 | compileOnly(deps.plugin.auto) 15 | kapt(deps.plugin.auto) 16 | } 17 | 18 | publishShadowJar() 19 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/external/Transacter.kt: -------------------------------------------------------------------------------- 1 | package com.squareup.sqldelight 2 | 3 | interface Transacter -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/model/GeneratedApiSource.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.simplearchitecture.plugin.model 2 | 3 | data class GeneratedApiSource( 4 | val fileName: String,//SampleApi.kt 5 | val name: String, //SampleApi 6 | val packageName: String, //kim.jeonghyeon.sample.api 7 | val sourceSetPath: String, 8 | val source: String 9 | ) -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/model/GeneratedDbSource.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.simplearchitecture.plugin.model 2 | 3 | data class GeneratedDbSource( 4 | val name: String,//db interface name 5 | val packageName: String,//db interface packageName 6 | val sourceSetPath: String 7 | ) -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/util/FileEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.simplearchitecture.plugin.util 2 | 3 | import java.io.File 4 | import java.io.FileWriter 5 | 6 | 7 | fun File.write(action: FileWriter.() -> Unit): File { 8 | if (!exists()) { 9 | parentFile.mkdirs() 10 | createNewFile() 11 | } 12 | val fileWriter = FileWriter(this) 13 | action(fileWriter) 14 | 15 | fileWriter.close() 16 | return this 17 | } -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service-shared/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/util/PluginUtil.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.simplearchitecture.plugin.util 2 | 3 | fun generatedSourceSetPath(buildPath: String, sourceSetName: String): String = 4 | "${generatedPath(buildPath)}/source/simpleArch/$sourceSetName" 5 | 6 | fun generatedPath(buildPath: String): String = 7 | "${buildPath}/generated" -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle-service/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | id("org.jetbrains.kotlin.jvm") 4 | id("kotlin-kapt") 5 | } 6 | 7 | group = deps.simpleArch.api.gradleService.getGroupId() 8 | version = deps.simpleArch.api.gradleService.getVersion() 9 | 10 | dependencies { 11 | // implementation(project(":gradle-plugin:${deps.simpleArch.api.gradleServiceShared.getArtifactId()}")) 12 | implementation(deps.simpleArch.api.gradleServiceShared) 13 | compileOnly(deps.plugin.compilerEmbeddable) 14 | compileOnly(deps.plugin.auto) 15 | kapt(deps.plugin.auto) 16 | } 17 | 18 | publishJvm() -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle/src/main/kotlin/RootEx.kt: -------------------------------------------------------------------------------- 1 | import kim.jeonghyeon.simplearchitecture.plugin.extension.SimpleArchExtension 2 | import kim.jeonghyeon.simplearchitecture.plugin.extension.simpleArchExtension 3 | import org.gradle.api.Project 4 | import org.gradle.kotlin.dsl.getByType 5 | 6 | fun Project.simpleArch(dsl: SimpleArchExtension.() -> Unit) { 7 | dsl(simpleArchExtension) 8 | } -------------------------------------------------------------------------------- /api/plugin/kotlin-simple-api-gradle/src/main/kotlin/kim/jeonghyeon/simplearchitecture/plugin/MainGradlePlugin.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.simplearchitecture.plugin 2 | 3 | import kim.jeonghyeon.simplearchitecture.plugin.config.applyGenerationConfig 4 | import org.gradle.api.Plugin 5 | import org.gradle.api.Project 6 | import org.gradle.kotlin.dsl.apply 7 | 8 | open class MainGradlePlugin : Plugin { 9 | //this is called 1 time on configuration step. 10 | override fun apply(project: Project) = with(project) { 11 | applyGenerationConfig() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/Configuration.kt: -------------------------------------------------------------------------------- 1 | object config { 2 | const val compileSdkVersion: Int = 30 3 | const val targetSdkVersion: Int = 30 4 | const val minSdkVersion: Int = 23 5 | const val buildToolVersion: String = "30.0.2" 6 | } -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/GradleFunctions.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.artifacts.dsl.DependencyHandler 2 | 3 | fun DependencyHandler.apis(dependencyNotations: List) = 4 | dependencyNotations.forEach { 5 | add("api", it) 6 | } 7 | -------------------------------------------------------------------------------- /buildSrc/src/main/kotlin/PublishConfig.kt: -------------------------------------------------------------------------------- 1 | import org.gradle.api.Project 2 | import org.gradle.kotlin.dsl.apply 3 | 4 | fun Project.publishMPP() { 5 | apply(from = "${rootDir.path}/gradle/publish/publishMPP.gradle") 6 | } 7 | 8 | fun Project.publishJvm() { 9 | apply(from = "${rootDir.path}/gradle/publish/publishJvm.gradle") 10 | } 11 | 12 | fun Project.publishShadowJar() { 13 | apply(from = "${rootDir.path}/gradle/publish/publishShadowJar.gradle") 14 | } 15 | 16 | fun Project.publishGradlePlugin() { 17 | apply(from = "${rootDir.path}/gradle/publish/publishGradlePlugin.gradle") 18 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-backend/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-backend/src/jvmMain/kotlin/kim/jeonghyeon/auth/UserSession.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.auth 2 | 3 | data class UserSession(val userId: Long, val extra: Map) -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/client/UiManager.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.client 2 | 3 | expect class UiManager() -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/extension/BooleanEx.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | inline fun T.alsoIfTrue(action: () -> Unit): T = alsoIf(this == true) { action() } 6 | 7 | inline fun T.alsoIfFalse(action: () -> Unit): T = alsoIf(this == false) { action() } 8 | 9 | inline fun T.alsoIfNullOrFalse(action: () -> Unit): T = 10 | alsoIf(this == null || !this) { action() } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/extension/CharSequenceEx.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | inline fun T.letIfNotEmpty(action: (T) -> R): R? = 6 | if (this.isNullOrEmpty()) null else action(this) -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/extension/IntEx.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | 6 | fun Int?.plus(value: String?): String? = toString() + value -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/extension/ThrowableExt.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | 6 | inline fun ignoreException(action: () -> T): T? = try { 7 | action() 8 | } catch (e: Exception) { 9 | null 10 | } 11 | 12 | inline fun ignoreException(defValue: T?, action: () -> T): T? = try { 13 | action() 14 | } catch (e: Exception) { 15 | defValue 16 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/kotlin/kim/jeonghyeon/util/Log.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.util 2 | 3 | 4 | val log = Logger() 5 | 6 | expect class Logger() { 7 | inline fun i(message: String) 8 | inline fun i(vararg obj: Any?) 9 | inline fun d(message: String) 10 | inline fun d(vararg obj: Any?) 11 | inline fun e(e: Throwable) 12 | inline fun e(e: String) 13 | inline fun e(vararg obj: Any?) 14 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/sqldelight/kim/jeonghyeon/db/PreferenceForAll.sq: -------------------------------------------------------------------------------- 1 | CREATE TABLE preferenceForAll ( 2 | key TEXT PRIMARY KEY, 3 | value TEXT 4 | ); 5 | 6 | get: 7 | SELECT * 8 | FROM preferenceForAll 9 | WHERE key = ?; 10 | 11 | set: 12 | REPLACE INTO preferenceForAll(key, value) 13 | VALUES (?, ?); 14 | 15 | delete: 16 | DELETE FROM preferenceForAll 17 | WHERE key = ?; -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/commonMain/sqldelight/kim/jeonghyeon/db/PreferencePerUser.sq: -------------------------------------------------------------------------------- 1 | CREATE TABLE preferencePerUser ( 2 | key TEXT NOT NULL, 3 | id INTEGER NOT NULL, 4 | value TEXT, 5 | PRIMARY KEY (key, id) 6 | ); 7 | 8 | get: 9 | SELECT * 10 | FROM preferencePerUser 11 | WHERE key = ? AND id = ?; 12 | 13 | set: 14 | REPLACE INTO preferencePerUser(key, id, value) 15 | VALUES (?, ?, ?); 16 | 17 | delete: 18 | DELETE FROM preferencePerUser 19 | WHERE key = ? AND id = ?; 20 | 21 | deleteAll: 22 | DELETE FROM preferencePerUser 23 | WHERE id = ?; -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/iosMain/kotlin/kim/jeonghyeon/UIApplication.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon 2 | 3 | import platform.UIKit.UIApplication 4 | 5 | lateinit var application: UIApplication -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/iosMain/kotlin/kim/jeonghyeon/client/UiManager.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.client 2 | 3 | import kim.jeonghyeon.application 4 | import kotlinx.coroutines.GlobalScope 5 | import platform.UIKit.UIApplication 6 | 7 | actual class UiManager actual constructor() { 8 | 9 | val deeplinkNavigator = DeeplinkNavigator 10 | val navigator = Navigator 11 | val globalScope = GlobalScope 12 | 13 | fun initialize(app: UIApplication) { 14 | application = app 15 | } 16 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/iosMain/kotlin/kim/jeonghyeon/type/WeakReference.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | actual typealias WeakReference = kotlin.native.ref.WeakReference -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jsMain/kotlin/kim/jeonghyeon/auth/OAuthSignClientJs.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.auth 2 | 3 | actual fun loadUrlInBrowser(url: String) { 4 | //todo 5 | } 6 | 7 | actual val platform: ClientPlatform = ClientPlatform.JS 8 | 9 | actual val packageName: String? = null 10 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jsMain/kotlin/kim/jeonghyeon/client/UiManager.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.client 2 | 3 | actual class UiManager actual constructor() -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jsMain/kotlin/kim/jeonghyeon/net/HttpClientSimpleJs.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | import io.ktor.client.* 4 | import io.ktor.client.features.logging.* 5 | 6 | @HttpClientDsl 7 | actual fun httpClientSimple(config: HttpClientConfig<*>.() -> Unit): HttpClient = 8 | httpClientDefault { 9 | install(Logging) { 10 | logger = Logger.DEFAULT 11 | level = LogLevel.ALL 12 | } 13 | 14 | config() 15 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jsMain/kotlin/kim/jeonghyeon/type/WeakReference.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | actual class WeakReference actual constructor(referred: T) { 4 | var data: T? = referred 5 | actual fun clear() { 6 | data = null 7 | } 8 | 9 | actual fun get(): T? { 10 | return data 11 | } 12 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmMain/kotlin/kim/jeonghyeon/auth/OAuthSignClientJvm.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.auth 2 | 3 | actual fun loadUrlInBrowser(url: String) { 4 | //todo 5 | } 6 | 7 | actual val platform: ClientPlatform = ClientPlatform.JVM 8 | 9 | actual val packageName: String? = null 10 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmMain/kotlin/kim/jeonghyeon/client/UiManager.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.client 2 | 3 | actual class UiManager actual constructor() -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmMain/kotlin/kim/jeonghyeon/net/HttpClientSimpleJvm.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.net 2 | 3 | import io.ktor.client.* 4 | import io.ktor.client.features.logging.* 5 | 6 | @HttpClientDsl 7 | actual fun httpClientSimple(config: HttpClientConfig<*>.() -> Unit): HttpClient = 8 | httpClientDefault { 9 | install(Logging) { 10 | logger = Logger.DEFAULT 11 | level = LogLevel.ALL 12 | } 13 | 14 | config() 15 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/extension/AnyExJvm.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | import com.google.gson.Gson 6 | import com.google.gson.GsonBuilder 7 | 8 | 9 | fun Any?.printJson() { 10 | println( 11 | GsonBuilder() 12 | .setPrettyPrinting() 13 | .serializeNulls() 14 | .create() 15 | .toJson(this) 16 | ) 17 | } 18 | 19 | fun Any?.toJsonString(): String? = if (this == null) null else Gson().toJson(this) -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/extension/CoroutineEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.extension 2 | 3 | import kotlinx.coroutines.CoroutineScope 4 | import kotlinx.coroutines.Dispatchers 5 | import kotlinx.coroutines.withContext 6 | import kotlin.coroutines.CoroutineContext 7 | import kotlin.coroutines.EmptyCoroutineContext 8 | 9 | suspend fun withIoDispatcher( 10 | context: CoroutineContext = EmptyCoroutineContext, 11 | block: suspend CoroutineScope.() -> T 12 | ): T = withContext(Dispatchers.IO + context, block) -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/extension/DoubleExJvm.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | import java.math.RoundingMode 6 | import java.text.DecimalFormat 7 | 8 | fun Double.ceil(decimalPlace: Int): Double { 9 | 10 | val df = DecimalFormat( 11 | if (decimalPlace == 0) "#" 12 | else "#." + ("#".repeat(decimalPlace)) 13 | ) 14 | df.roundingMode = RoundingMode.CEILING 15 | return df.format(this).toDouble() 16 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/extension/InputStreamEx.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.extension 4 | 5 | import java.io.InputStream 6 | import java.nio.charset.Charset 7 | 8 | fun InputStream.readToString(charset: Charset = Charsets.UTF_8): String = 9 | this.bufferedReader(charset).use { it.readText() } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/extension/IterableEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.extension 2 | 3 | import java.math.BigDecimal 4 | 5 | inline fun Iterable.sumByBigDecimal(selector: (T) -> BigDecimal): BigDecimal { 6 | var sum = BigDecimal(0) 7 | for (element in this) { 8 | sum += selector(element) 9 | } 10 | return sum 11 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/jvmShareMain/kotlin/kim/jeonghyeon/type/WeakReference.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.type 2 | 3 | actual typealias WeakReference = java.lang.ref.WeakReference -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 8 | 9 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/java/kim/jeonghyeon/androidlibrary/extension/NumberExt.kt: -------------------------------------------------------------------------------- 1 | @file:Suppress("unused") 2 | 3 | package kim.jeonghyeon.androidlibrary.extension 4 | 5 | 6 | fun Int.resourceToString(): String = ctx.getString(this) -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/java/kim/jeonghyeon/androidlibrary/util/PackageEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.androidlibrary.util 2 | 3 | import android.content.pm.PackageManager 4 | import kim.jeonghyeon.androidlibrary.extension.ctx 5 | 6 | val PackageManager.packageName: String 7 | get() = getApplicationLabel(ctx.applicationInfo).toString() 8 | 9 | val PackageManager.installTime: Long 10 | get() = getPackageInfo(packageName, 0).firstInstallTime -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/java/kim/jeonghyeon/androidlibrary/util/ValidationUtil.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.androidlibrary.util 2 | 3 | import java.util.regex.Pattern 4 | 5 | object ValidationUtil { 6 | private val EMAIL_PATTERN by lazy { 7 | Pattern.compile("^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$") 8 | } 9 | 10 | fun isValidEmail(email: String) = EMAIL_PATTERN.matcher(email).matches() 11 | } -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/java/kim/jeonghyeon/auth/OAuthSignClientAndroid.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.auth 2 | 3 | import android.content.Intent 4 | import android.net.Uri 5 | import kim.jeonghyeon.androidlibrary.extension.ctx 6 | 7 | actual fun loadUrlInBrowser(url: String) { 8 | ctx.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(url)).apply { 9 | addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) 10 | }) 11 | } 12 | 13 | actual val platform: ClientPlatform = ClientPlatform.ANDROID 14 | 15 | actual val packageName: String? get() = ctx.packageName 16 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/java/kim/jeonghyeon/client/UiManager.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.client 2 | 3 | actual class UiManager actual constructor() -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-client/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | no activity 4 | error occurred 5 | retry 6 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-gradle/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /framework/kotlin-simple-architecture-gradle/src/main/kotlin/sqldelight.kt: -------------------------------------------------------------------------------- 1 | import com.squareup.sqldelight.gradle.SqlDelightExtension 2 | import org.gradle.api.Project 3 | import org.gradle.kotlin.dsl.getByType 4 | 5 | //default function is not working when using apply. if use plugins { id() }, then it's working. 6 | fun Project.sqldelight(dsl: SqlDelightExtension.() -> Unit) { 7 | dsl(extensions.getByType()) 8 | } -------------------------------------------------------------------------------- /gradle/publish/publishMPP.gradle: -------------------------------------------------------------------------------- 1 | apply(plugin: "maven-publish") 2 | 3 | //todo if this is gradle.kts, publishing is not recognized 4 | publishing { 5 | repositories { 6 | maven { 7 | url = "https://api.bintray.com/maven/hyun/kotlin-simple-architecture/${project.name}/;publish=1;override=1" 8 | credentials { 9 | username = bintrayUser 10 | password = bintrayApiKey 11 | } 12 | } 13 | } 14 | } 15 | 16 | publish.dependsOn build 17 | publishToMavenLocal.dependsOn build -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jul 11 11:58:14 IST 2019 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 7 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /build 6 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/README.md: -------------------------------------------------------------------------------- 1 | 2 | Common 3 | 2. set ip address of the server on base/src/commonMain/kotlin/kim.jeonghyeon.base.HttpClient.kt 4 | 5 | Android 6 | 1. change android package name 7 | 2. change package name on proguard for kotlin serialization 8 | 3. run android by `sh shell/installAndroid.sh` 9 | 10 | Backend 11 | 1. run backend by `sh shell/runBackend.sh` -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Kotlin Simple Architecture - Template 3 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/backend/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-backend-api-only/backend/src/main/kotlin/kim/jeonghyeon/backend/GreetingController.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.backend 2 | 3 | import kim.jeonghyeon.base.GreetingApi 4 | import kim.jeonghyeon.base.Data 5 | 6 | class GreetingController : GreetingApi { 7 | override suspend fun greeting(): Data = Data("Welcome to Backend") 8 | } -------------------------------------------------------------------------------- /initializer/android-backend-api-only/backend/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | ktor { 2 | deployment { 3 | port = 8080 4 | } 5 | 6 | application { 7 | modules = [kim.jeonghyeon.backend.ApplicationKt.module] 8 | } 9 | } -------------------------------------------------------------------------------- /initializer/android-backend-api-only/base/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-backend-api-only/base/src/commonMain/kotlin/kim.jeonghyeon.base/GreetingApi.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import kim.jeonghyeon.annotation.Api 4 | 5 | @Api 6 | interface GreetingApi { 7 | suspend fun greeting(): Data 8 | } 9 | 10 | class Data(val value: String) -------------------------------------------------------------------------------- /initializer/android-backend-api-only/base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/base/src/main/java/kim/jeonghyeon/base/HomeViewModel.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import base.generated.net.create 4 | 5 | 6 | class HomeViewModel(val api: GreetingApi = api()) { 7 | suspend fun getData(): Data { 8 | client.create("") 9 | return api.greeting() 10 | } 11 | } -------------------------------------------------------------------------------- /initializer/android-backend-api-only/buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /initializer/android-backend-api-only/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /initializer/android-backend-api-only/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-backend-api-only/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /initializer/android-backend-api-only/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Oct 04 23:58:52 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include("base") 2 | include("android") 3 | include("backend") 4 | -------------------------------------------------------------------------------- /initializer/android-backend-api-only/shell/installAndroid.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :android:installDebug && \ 2 | adb shell am start -n "kim.jeonghyeon.template/kim.jeonghyeon.template.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /initializer/android-backend-api-only/shell/runBackend.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :backend:run -------------------------------------------------------------------------------- /initializer/android-ios-backend/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /build 6 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/README.md: -------------------------------------------------------------------------------- 1 | 2 | Common 3 | 1. Set JDK 11 path on gradle.properties 4 | 5 | Android 6 | 1. change android package name 7 | 2. change package name on proguard for kotlin serialization 8 | 3. run android by `sh shell/installAndroid.sh` 9 | 4. connect same wifi with desktop(for running local) 10 | 11 | Backend 12 | 1. run backend by `sh shell/runBackend.sh` 13 | 2. connect same wifi with Android(for running local) -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/java/kim/jeonghyeon/template/HomeScreen.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import androidx.compose.foundation.Text 4 | import androidx.compose.runtime.Composable 5 | import kim.jeonghyeon.androidlibrary.compose.Screen 6 | import kim.jeonghyeon.androidlibrary.compose.unaryPlus 7 | import kim.jeonghyeon.base.helloText 8 | import kim.jeonghyeon.base.HomeViewModel 9 | 10 | @Composable 11 | fun HomeScreen(model: HomeViewModel) { 12 | Screen(model) { 13 | Text("$helloText. ${+model.greeting}") 14 | } 15 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Kotlin Simple Architecture - Template 3 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/backend/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-ios-backend/backend/src/main/kotlin/kim/jeonghyeon/backend/Application.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.backend 2 | 3 | import io.ktor.application.* 4 | import io.ktor.util.* 5 | import kim.jeonghyeon.SimpleFeature 6 | 7 | fun main(args: Array): Unit = io.ktor.server.netty.EngineMain.main(args) 8 | 9 | @KtorExperimentalAPI 10 | @kotlin.jvm.JvmOverloads 11 | fun Application.module(@Suppress("UNUSED_PARAMETER") testing: Boolean = false) { 12 | install(SimpleFeature) { 13 | routing { 14 | +GreetingController() 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/backend/src/main/kotlin/kim/jeonghyeon/backend/GreetingController.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.backend 2 | 3 | import kim.jeonghyeon.base.GreetingApi 4 | 5 | class GreetingController : GreetingApi { 6 | override suspend fun greeting(): String = "Welcome to Backend" 7 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/backend/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | ktor { 2 | deployment { 3 | port = 8080 4 | } 5 | 6 | application { 7 | modules = [kim.jeonghyeon.backend.ApplicationKt.module] 8 | } 9 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/clientMain/kotlin/kim/jeonghyeon/base/Hello.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | expect val helloText: String -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/clientMain/kotlin/kim/jeonghyeon/base/HomeViewModel.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import kim.jeonghyeon.client.BaseViewModel 4 | 5 | class HomeViewModel(val api: GreetingApi = api()) : BaseViewModel() { 6 | val greeting = viewModelFlow() 7 | 8 | override fun onInitialized() { 9 | greeting.load(initStatus) { 10 | api.greeting() 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/commonMain/kotlin/kim/jeonghyeon/base/GreetingApi.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import kim.jeonghyeon.annotation.Api 4 | 5 | @Api 6 | interface GreetingApi { 7 | suspend fun greeting(): String 8 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/commonMain/kotlin/kim/jeonghyeon/base/HttpClient.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import base.generated.SimpleConfig 4 | import base.generated.net.create 5 | import io.ktor.client.* 6 | import kim.jeonghyeon.net.httpClientSimple 7 | 8 | val client: HttpClient by lazy { 9 | httpClientSimple { 10 | //add configuration 11 | //this is in commonMain as backend also can be client of other backend 12 | } 13 | } 14 | 15 | inline fun api(baseUrl: String = "http://${SimpleConfig.buildTimeLocalIpAddress}:8080"): API = client.create(baseUrl) -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/iosMain/kotlin/kim/jeonghyeon/base/HelloIos.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | actual val helloText: String = "Hello Ios" -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/main/java/kim/jeonghyeon/base/HelloAndroid.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | actual val helloText: String = "Hello Android" -------------------------------------------------------------------------------- /initializer/android-ios-backend/base/src/test/java/kim/jeonghyeon/template/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /initializer/android-ios-backend/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /initializer/android-ios-backend/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /initializer/android-ios-backend/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Oct 04 23:58:52 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'ios' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for ios 9 | pod 'base', :path => '../base' 10 | 11 | target 'iosTests' do 12 | inherit! :search_paths 13 | # Pods for testing 14 | end 15 | 16 | target 'iosUITests' do 17 | # Pods for testing 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - base (1.0) 3 | 4 | DEPENDENCIES: 5 | - base (from `../base`) 6 | 7 | EXTERNAL SOURCES: 8 | base: 9 | :path: "../base" 10 | 11 | SPEC CHECKSUMS: 12 | base: f92ca9816efdd004deb79e01f0bd7acf4851e0e2 13 | 14 | PODFILE CHECKSUM: 090fee152ba66b53c2c6dd601cd705d17fc4e482 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - base (1.0) 3 | 4 | DEPENDENCIES: 5 | - base (from `../base`) 6 | 7 | EXTERNAL SOURCES: 8 | base: 9 | :path: "../base" 10 | 11 | SPEC CHECKSUMS: 12 | base: f92ca9816efdd004deb79e01f0bd7acf4851e0e2 13 | 14 | PODFILE CHECKSUM: 090fee152ba66b53c2c6dd601cd705d17fc4e482 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ios_iosUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ios_iosUITests 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks.sh 2 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework 3 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/base.framework 2 | ${DWARF_DSYM_FOLDER_PATH}/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks.sh 2 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework 3 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/base.framework 2 | ${DWARF_DSYM_FOLDER_PATH}/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_ios_iosUITestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ios_iosUITestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ios_iosUITests { 2 | umbrella header "Pods-ios-iosUITests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ios : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ios 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ios/Pods-ios-frameworks.sh 2 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework 3 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/base.framework 2 | ${DWARF_DSYM_FOLDER_PATH}/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-ios/Pods-ios-frameworks.sh 2 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework 3 | ${PODS_ROOT}/../../base/build/cocoapods/framework/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/base.framework 2 | ${DWARF_DSYM_FOLDER_PATH}/base.framework.dSYM -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_iosVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_iosVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ios { 2 | umbrella header "Pods-ios-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-ios/Pods-ios.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_iosTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_iosTests 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_iosTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_iosTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_iosTests { 2 | umbrella header "Pods-iosTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcodeproj/xcuserdata/hyun.kim.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ios.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios-backend/ios/ios.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/HomeScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // ios 4 | // 5 | // Created by hyun kim on 06/10/20. 6 | // 7 | 8 | import SwiftUI 9 | import base 10 | 11 | func HomeScreen(_ model: HomeViewModel) -> some View { 12 | Screen(model) { 13 | Text("\(HelloIosKt.helloText). \(+model.greeting)") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/MainActivity.swift: -------------------------------------------------------------------------------- 1 | 2 | import Foundation 3 | import base 4 | import SwiftUI 5 | 6 | func MainActivity() -> some View { 7 | BaseActivity(rootViewModel: HomeViewModel(), deeplinks: []) { viewModel in 8 | //you can customize to add tab view or drawer. etc.. 9 | Box { 10 | switch (viewModel) { 11 | case is HomeViewModel: HomeScreen(viewModel as! HomeViewModel) 12 | default: EmptyView() 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/iosApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iosApp.swift 3 | // ios 4 | // 5 | // Created by hyun kim on 06/10/20. 6 | // 7 | 8 | import SwiftUI 9 | import base 10 | 11 | @main 12 | struct iosApp: App { 13 | var body: some Scene { 14 | WindowGroup { 15 | MainActivity() 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/library/ComposeTypeAlias.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ComposeTypeAlias.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 02/10/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | 12 | typealias Column = VStack 13 | typealias Row = HStack 14 | typealias Box = ZStack 15 | 16 | func ScrollableColumn(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: () -> Content) -> some View where Content : View { 17 | ScrollView { 18 | VStack(alignment: alignment, spacing: spacing, content: content) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/library/Localizable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Localizable.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 18/07/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | extension String { 13 | func localized() -> String { 14 | return NSLocalizedString(self, comment: "") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/ios/ios/library/ThreadEx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ThreadEx.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 11/09/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | func delayMain(delayTime: DispatchTimeInterval, perform: @escaping () -> Void) { 13 | DispatchQueue.main.asyncAfter(deadline: .now() + delayTime) { 14 | perform() 15 | } 16 | } 17 | 18 | func asyncMain(perform: @escaping () -> Void) { 19 | DispatchQueue.main.async { 20 | perform() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include("base") 2 | include("android") 3 | include("backend") 4 | -------------------------------------------------------------------------------- /initializer/android-ios-backend/shell/installAndroid.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :android:installDebug && \ 2 | adb shell am start -n "kim.jeonghyeon.template/kim.jeonghyeon.template.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /initializer/android-ios-backend/shell/runBackend.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :backend:run -------------------------------------------------------------------------------- /initializer/android-ios/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /build -------------------------------------------------------------------------------- /initializer/android-ios/README.md: -------------------------------------------------------------------------------- 1 | 2 | Common 3 | 1. Set JDK 11 path on gradle.properties 4 | 5 | Android 6 | 1. change android package name 7 | 2. change package name on proguard for kotlin serialization 8 | -------------------------------------------------------------------------------- /initializer/android-ios/android/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-ios/android/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/java/kim/jeonghyeon/template/HomeScreen.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import androidx.compose.foundation.Text 4 | import androidx.compose.runtime.Composable 5 | import kim.jeonghyeon.androidlibrary.compose.Screen 6 | import kim.jeonghyeon.androidlibrary.compose.unaryPlus 7 | import kim.jeonghyeon.base.helloText 8 | import kim.jeonghyeon.base.HomeViewModel 9 | 10 | @Composable 11 | fun HomeScreen(model: HomeViewModel) { 12 | Screen(model) { 13 | Text("$helloText ${+model.world}") 14 | } 15 | } -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /initializer/android-ios/android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Kotlin Simple Architecture - Template 3 | -------------------------------------------------------------------------------- /initializer/android-ios/base/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android-ios/base/src/clientMain/kotlin/kim/jeonghyeon/base/Hello.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | expect val helloText: String -------------------------------------------------------------------------------- /initializer/android-ios/base/src/clientMain/kotlin/kim/jeonghyeon/base/HomeViewModel.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | import kim.jeonghyeon.client.BaseViewModel 4 | 5 | class HomeViewModel : BaseViewModel() { 6 | val world = viewModelFlow("world") 7 | } -------------------------------------------------------------------------------- /initializer/android-ios/base/src/iosMain/kotlin/kim/jeonghyeon/base/HelloIos.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | actual val helloText: String = "Hello Ios" -------------------------------------------------------------------------------- /initializer/android-ios/base/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android-ios/base/src/main/java/kim/jeonghyeon/base/HelloAndroid.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.base 2 | 3 | actual val helloText: String = "Hello Android" -------------------------------------------------------------------------------- /initializer/android-ios/base/src/test/java/kim/jeonghyeon/template/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /initializer/android-ios/buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /initializer/android-ios/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /initializer/android-ios/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /initializer/android-ios/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Oct 04 23:58:52 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'ios' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for ios 9 | pod 'base', :path => '../base' 10 | 11 | target 'iosTests' do 12 | inherit! :search_paths 13 | # Pods for testing 14 | end 15 | 16 | target 'iosUITests' do 17 | # Pods for testing 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - base (1.0) 3 | 4 | DEPENDENCIES: 5 | - base (from `../base`) 6 | 7 | EXTERNAL SOURCES: 8 | base: 9 | :path: "../base" 10 | 11 | SPEC CHECKSUMS: 12 | base: f92ca9816efdd004deb79e01f0bd7acf4851e0e2 13 | 14 | PODFILE CHECKSUM: 090fee152ba66b53c2c6dd601cd705d17fc4e482 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - base (1.0) 3 | 4 | DEPENDENCIES: 5 | - base (from `../base`) 6 | 7 | EXTERNAL SOURCES: 8 | base: 9 | :path: "../base" 10 | 11 | SPEC CHECKSUMS: 12 | base: f92ca9816efdd004deb79e01f0bd7acf4851e0e2 13 | 14 | PODFILE CHECKSUM: 090fee152ba66b53c2c6dd601cd705d17fc4e482 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ios_iosUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ios_iosUITests 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_ios_iosUITestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_ios_iosUITestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ios_iosUITests { 2 | umbrella header "Pods-ios-iosUITests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios-iosUITests/Pods-ios-iosUITests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_ios : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_ios 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_iosVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_iosVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_ios { 2 | umbrella header "Pods-ios-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-ios/Pods-ios.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_iosTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_iosTests 5 | @end 6 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_iosTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_iosTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_iosTests { 2 | umbrella header "Pods-iosTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/Pods/Target Support Files/Pods-iosTests/Pods-iosTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/ios/ios.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcodeproj/xcuserdata/hyun.kim.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ios.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 4 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android-ios/ios/ios.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "idiom" : "universal" 5 | } 6 | ], 7 | "info" : { 8 | "author" : "xcode", 9 | "version" : 1 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/HomeScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ContentView.swift 3 | // ios 4 | // 5 | // Created by hyun kim on 06/10/20. 6 | // 7 | 8 | import SwiftUI 9 | import base 10 | 11 | func HomeScreen(_ model: HomeViewModel) -> some View { 12 | Screen(model) { 13 | Text("\(HelloIosKt.helloText) \(+model.world)") 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/MainActivity.swift: -------------------------------------------------------------------------------- 1 | 2 | import Foundation 3 | import base 4 | import SwiftUI 5 | 6 | func MainActivity() -> some View { 7 | BaseActivity(rootViewModel: HomeViewModel(), deeplinks: []) { viewModel in 8 | //you can customize to add tab view or drawer. etc.. 9 | Box { 10 | switch (viewModel) { 11 | case is HomeViewModel: HomeScreen(viewModel as! HomeViewModel) 12 | default: EmptyView() 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/iosApp.swift: -------------------------------------------------------------------------------- 1 | // 2 | // iosApp.swift 3 | // ios 4 | // 5 | // Created by hyun kim on 06/10/20. 6 | // 7 | 8 | import SwiftUI 9 | import base 10 | 11 | @main 12 | struct iosApp: App { 13 | var body: some Scene { 14 | WindowGroup { 15 | MainActivity() 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/library/ComposeTypeAlias.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ComposeTypeAlias.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 02/10/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | 12 | typealias Column = VStack 13 | typealias Row = HStack 14 | typealias Box = ZStack 15 | 16 | func ScrollableColumn(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: () -> Content) -> some View where Content : View { 17 | ScrollView { 18 | VStack(alignment: alignment, spacing: spacing, content: content) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/library/Localizable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Localizable.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 18/07/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | extension String { 13 | func localized() -> String { 14 | return NSLocalizedString(self, comment: "") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /initializer/android-ios/ios/ios/library/ThreadEx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ThreadEx.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 11/09/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | func delayMain(delayTime: DispatchTimeInterval, perform: @escaping () -> Void) { 13 | DispatchQueue.main.asyncAfter(deadline: .now() + delayTime) { 14 | perform() 15 | } 16 | } 17 | 18 | func asyncMain(perform: @escaping () -> Void) { 19 | DispatchQueue.main.async { 20 | perform() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /initializer/android-ios/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include("base") 2 | include("android") 3 | -------------------------------------------------------------------------------- /initializer/android-ios/shell/installAndroid.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :android:installDebug && \ 2 | adb shell am start -n "kim.jeonghyeon.template/kim.jeonghyeon.template.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /initializer/android/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /build -------------------------------------------------------------------------------- /initializer/android/README.md: -------------------------------------------------------------------------------- 1 | 2 | Common 3 | 1. Set JDK 11 path on gradle.properties 4 | 5 | Android 6 | 1. change android package name 7 | 2. change package name on proguard for kotlin serialization 8 | -------------------------------------------------------------------------------- /initializer/android/app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /initializer/android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /initializer/android/app/src/main/java/kim/jeonghyeon/template/HomeScreen.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import androidx.compose.foundation.Text 4 | import androidx.compose.runtime.Composable 5 | import kim.jeonghyeon.androidlibrary.compose.Screen 6 | import kim.jeonghyeon.androidlibrary.compose.unaryPlus 7 | 8 | @Composable 9 | fun HomeScreen(model: HomeViewModel) { 10 | Screen(model) { 11 | Text("Hello Kotlin ${+model.world}") 12 | } 13 | } -------------------------------------------------------------------------------- /initializer/android/app/src/main/java/kim/jeonghyeon/template/HomeViewModel.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import kim.jeonghyeon.client.BaseViewModel 4 | 5 | class HomeViewModel : BaseViewModel() { 6 | val world = viewModelFlow("world") 7 | } -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /initializer/android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Kotlin Simple Architecture - Template 3 | -------------------------------------------------------------------------------- /initializer/android/app/src/test/java/kim/jeonghyeon/template/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.template 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /initializer/android/buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /initializer/android/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /initializer/android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/initializer/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /initializer/android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Oct 04 23:58:52 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /initializer/android/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include("app") 2 | -------------------------------------------------------------------------------- /sample/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /build 6 | -------------------------------------------------------------------------------- /sample/buildSrc/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | /.idea -------------------------------------------------------------------------------- /sample/buildSrc/build.gradle.kts: -------------------------------------------------------------------------------- 1 | plugins { 2 | `kotlin-dsl` 3 | } 4 | 5 | repositories { 6 | jcenter() 7 | } -------------------------------------------------------------------------------- /sample/buildSrc/src/main/kotlin/config.kt: -------------------------------------------------------------------------------- 1 | object config { 2 | const val compileSdkVersion: Int = 30 3 | const val targetSdkVersion: Int = 30 4 | const val minSdkVersion: Int = 23 5 | const val buildToolVersion: String = "30.0.2" 6 | } -------------------------------------------------------------------------------- /sample/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /sample/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Oct 04 23:58:52 KST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip 4 | distributionPath=wrapper/dists 5 | zipStorePath=wrapper/dists 6 | zipStoreBase=GRADLE_USER_HOME 7 | -------------------------------------------------------------------------------- /sample/sample-android/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /sample/sample-android/src/main/java/com/example/sampleandroid/ui/Color.kt: -------------------------------------------------------------------------------- 1 | package com.example.sampleandroid.ui 2 | 3 | import androidx.compose.ui.graphics.Color 4 | 5 | 6 | val purple200 = Color(0xFFBB86FC) 7 | val purple500 = Color(0xFF6200EE) 8 | val purple700 = Color(0xFF3700B3) 9 | val teal200 = Color(0xFF03DAC5) 10 | 11 | val Red200 = Color(0xfff297a2) 12 | val Red300 = Color(0xffea6d7e) 13 | val Red700 = Color(0xffdd0d3c) 14 | val Red800 = Color(0xffd00036) 15 | val Red900 = Color(0xffc20029) 16 | -------------------------------------------------------------------------------- /sample/sample-android/src/main/java/com/example/sampleandroid/view/model/ApiTestScreen.kt: -------------------------------------------------------------------------------- 1 | package com.example.sampleandroid.view.model 2 | 3 | import androidx.compose.foundation.layout.Column 4 | import androidx.compose.material.Text 5 | import androidx.compose.runtime.Composable 6 | import kim.jeonghyeon.androidlibrary.compose.Screen 7 | import kim.jeonghyeon.sample.viewmodel.ApiTestViewModel 8 | 9 | @Composable 10 | fun ApiTestScreen(model: ApiTestViewModel) { 11 | Screen(model) { 12 | Column { 13 | Text("Success") 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFBB86FC 4 | #FF6200EE 5 | #FF3700B3 6 | #FF03DAC5 7 | #FF018786 8 | #FF000000 9 | #FFFFFFFF 10 | -------------------------------------------------------------------------------- /sample/sample-android/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Sample Android 3 | 4 | -------------------------------------------------------------------------------- /sample/sample-backend/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /sample/sample-backend/src/main/kotlin/kim/jeonghyeon/backend/const/PreferenceEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.backend.const 2 | 3 | import kim.jeonghyeon.pergist.Preference 4 | 5 | @Suppress("unused") 6 | val Preference.Companion.KEY_WORDS get() = "KEY_WORDS" -------------------------------------------------------------------------------- /sample/sample-backend/src/main/resources/application.conf: -------------------------------------------------------------------------------- 1 | ktor { 2 | deployment { 3 | port = 8080 4 | } 5 | 6 | application { 7 | modules = [kim.jeonghyeon.backend.ApplicationKt.module] 8 | } 9 | } 10 | 11 | dbPath = "sample-server.db" 12 | 13 | jwtSecret = "Set your secret" 14 | 15 | oauth { 16 | google { 17 | clientId = "Add Your Client ID" 18 | clientSecret = "Add Your Client Secret" 19 | } 20 | facebook { 21 | clientId = "Add Your Client ID" 22 | clientSecret = "Add Your Client Secret" 23 | } 24 | } -------------------------------------------------------------------------------- /sample/sample-base/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /sample/sample-base/http/simple.http: -------------------------------------------------------------------------------- 1 | POST http://0.0.0.0:8080/kim-jeonghyeon-common-net-api-SimpleApi/submitPost 2 | Content-Type: application/json 3 | 4 | ["token", {"id": 1, "name": "d"}] 5 | 6 | ### 7 | POST http://localhost:8080/kim-jeonghyeon-common-net-api-SimpleApi/getToken 8 | Content-Type: application/json 9 | 10 | [1, 1.1, 1.0, "dd", {"id": 1, "name": "d"}, null] 11 | 12 | ### 13 | -------------------------------------------------------------------------------- /sample/sample-base/src/commonMain/kotlin/kim/jeonghyeon/const/ApiErrorBodyEx.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.const 2 | 3 | import kim.jeonghyeon.net.error.ApiErrorBody 4 | 5 | val ApiErrorBody.Companion.forTest get() = ApiErrorBody(2000, "forTest") -------------------------------------------------------------------------------- /sample/sample-base/src/commonMain/kotlin/kim/jeonghyeon/sample/api/UserApi.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.sample.api 2 | 3 | import kim.jeonghyeon.annotation.Api 4 | import kim.jeonghyeon.annotation.Authenticate 5 | import kotlinx.serialization.Serializable 6 | 7 | @Api 8 | @Authenticate 9 | interface UserApi { 10 | suspend fun getUser(): SerializableUserDetail 11 | } 12 | 13 | @Serializable 14 | data class SerializableUserDetail(val id: String? = null, val name: String) -------------------------------------------------------------------------------- /sample/sample-base/src/commonMain/sqldelight/kim/jeonghyeon/sample/Word.sq: -------------------------------------------------------------------------------- 1 | CREATE TABLE word ( 2 | id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 3 | text TEXT NOT NULL 4 | ); 5 | 6 | CREATE INDEX index_word ON word(text); 7 | 8 | INSERT INTO word (text) 9 | VALUES ('Ryan Getzlaf'); 10 | 11 | selectAll: 12 | SELECT * 13 | FROM word; 14 | 15 | insert: 16 | INSERT INTO word(text) 17 | VALUES (?); 18 | 19 | delete: 20 | DELETE FROM word 21 | WHERE id = ?; 22 | 23 | deleteAll: 24 | DELETE FROM word; -------------------------------------------------------------------------------- /sample/sample-base/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-anydpi/ic_save.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-hdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-hdpi/ic_save.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-hdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-hdpi/ic_share.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-mdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-mdpi/ic_save.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-mdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-mdpi/ic_share.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-xhdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-xhdpi/ic_save.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-xhdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-xhdpi/ic_share.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-xxhdpi/ic_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-xxhdpi/ic_save.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable-xxhdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable-xxhdpi/ic_share.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable/bg_wallet_register_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/drawable/bg_wallet_register_card.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable/sample_background_tile.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable/sample_rectangle_dotted.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/drawable/sample_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | 9 | 10 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_gotham_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_gotham_bold.otf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_gotham_book.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_gotham_book.otf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_gotham_medium.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_gotham_medium.otf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_roboto_black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_roboto_black.ttf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_roboto_bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_roboto_bold.ttf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_roboto_light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_roboto_light.ttf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_roboto_medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_roboto_medium.ttf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/font_roboto_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/font/font_roboto_regular.ttf -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/gotham_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/gotham_book.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/gotham_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/roboto_black.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/roboto_bold.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/roboto_light.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/roboto_medium.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/font/roboto_regular.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 11 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-base/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | #50ffffff 8 | #50333333 9 | 10 | -------------------------------------------------------------------------------- /sample/sample-base/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 30dp 4 | 20dp 5 | 120dp 6 | 7 | -------------------------------------------------------------------------------- /sample/sample-base/src/mobileMain/kotlin/kim/jeonghyeon/sample/viewmodel/HomeViewModel.kt: -------------------------------------------------------------------------------- 1 | package kim.jeonghyeon.sample.viewmodel 2 | 3 | import kim.jeonghyeon.client.viewModelFlow 4 | 5 | /** 6 | * this just used for navigation stack 7 | **/ 8 | class HomeViewModel : SampleViewModel() { 9 | 10 | //todo [KSA-48] support localization on kotlin side 11 | override val title: String = "Home" 12 | 13 | val currentTabIndex = viewModelFlow(0) 14 | 15 | } -------------------------------------------------------------------------------- /sample/sample-native/.gitignore: -------------------------------------------------------------------------------- 1 | .idea -------------------------------------------------------------------------------- /sample/sample-native/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'kotlinIOS' do 5 | # Comment the next line if you don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for kotlinIOS 9 | pod 'sample_base', :path => '../sample-base' 10 | 11 | target 'kotlinIOSTests' do 12 | inherit! :search_paths 13 | # Pods for testing 14 | end 15 | 16 | target 'kotlinIOSUITests' do 17 | # Pods for testing 18 | end 19 | 20 | end 21 | -------------------------------------------------------------------------------- /sample/sample-native/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - sample_base (1.0) 3 | 4 | DEPENDENCIES: 5 | - sample_base (from `../sample-base`) 6 | 7 | EXTERNAL SOURCES: 8 | sample_base: 9 | :path: "../sample-base" 10 | 11 | SPEC CHECKSUMS: 12 | sample_base: a3c80a31b9b3785d6defc7701dbec36451816053 13 | 14 | PODFILE CHECKSUM: 0d7139545c9eb68325cb6a582bd90580a73c7f3c 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - sample_base (1.0) 3 | 4 | DEPENDENCIES: 5 | - sample_base (from `../sample-base`) 6 | 7 | EXTERNAL SOURCES: 8 | sample_base: 9 | :path: "../sample-base" 10 | 11 | SPEC CHECKSUMS: 12 | sample_base: a3c80a31b9b3785d6defc7701dbec36451816053 13 | 14 | PODFILE CHECKSUM: 0d7139545c9eb68325cb6a582bd90580a73c7f3c 15 | 16 | COCOAPODS: 1.9.3 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_kotlinIOS_kotlinIOSUITests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_kotlinIOS_kotlinIOSUITests 5 | @end 6 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-Prod-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-Prod-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOS_kotlinIOSUITestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOS_kotlinIOSUITestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests.debug-prod.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOS_kotlinIOSUITests { 2 | umbrella header "Pods-kotlinIOS-kotlinIOSUITests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS-kotlinIOSUITests/Pods-kotlinIOS-kotlinIOSUITests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_kotlinIOS : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_kotlinIOS 5 | @end 6 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Debug-Prod-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Debug-Prod-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Debug-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Debug-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Release-input-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${PODS_ROOT}/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks.sh 2 | ${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-frameworks-Release-output-files.xcfilelist: -------------------------------------------------------------------------------- 1 | ${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOSVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOSVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS.debug-prod.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOS { 2 | umbrella header "Pods-kotlinIOS-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOS/Pods-kotlinIOS.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -ObjC -l"c++" -framework "sample_base" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests-acknowledgements.markdown: -------------------------------------------------------------------------------- 1 | # Acknowledgements 2 | This application makes use of the following third party libraries: 3 | Generated by CocoaPods - https://cocoapods.org 4 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_kotlinIOSTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_kotlinIOSTests 5 | @end 6 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOSTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOSTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests.debug-prod.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests.debug.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOSTests { 2 | umbrella header "Pods-kotlinIOSTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/Target Support Files/Pods-kotlinIOSTests/Pods-kotlinIOSTests.release.xcconfig: -------------------------------------------------------------------------------- 1 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/../../sample-base/build/cocoapods/framework" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -l"c++" 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_PODFILE_DIR_PATH = ${SRCROOT}/. 7 | PODS_ROOT = ${SRCROOT}/Pods 8 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 9 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Headers/Pods-kotlinIOS-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOSVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOSVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOS { 2 | umbrella header "Pods-kotlinIOS-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Pods_kotlinIOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/Pods_kotlinIOS -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/Pods/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/Headers/Pods-kotlinIOS-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOSVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOSVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOS { 2 | umbrella header "Pods-kotlinIOS-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/Pods_kotlinIOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/Pods_kotlinIOS -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/Base.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/Base.lproj/Localizable.strings -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/ko.lproj/Localizable.strings -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/kotlinIOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/kotlinIOS -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/VersionInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/VersionInfo.plist -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.mom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.mom -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.omo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.omo -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/kotlinIOS.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcodeproj/project.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcodeproj/xcuserdata/hyun.kim.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/kotlinIOS.xcworkspace/xcuserdata/hyun.kim.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "version": 1, 4 | "author": "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info": { 3 | "version": 1, 4 | "author": "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/SampleApp.swift: -------------------------------------------------------------------------------- 1 | import SwiftUI 2 | import sample_base 3 | 4 | @main 5 | struct SampleApp: App { 6 | var body: some Scene { 7 | 8 | return WindowGroup { 9 | MainActivity() 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/ko.lproj/LaunchScreen.strings: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/kotlinIOS.xcdatamodeld/.xccurrentversion: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | _XCCurrentVersionName 6 | kotlinIOS.xcdatamodel 7 | 8 | 9 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/kotlinIOS.xcdatamodeld/kotlinIOS.xcdatamodel/contents: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/library/ComposeTypeAlias.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ComposeTypeAlias.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 02/10/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | 12 | typealias Column = VStack 13 | typealias Row = HStack 14 | typealias Box = ZStack 15 | 16 | func ScrollableColumn(alignment: HorizontalAlignment = .center, spacing: CGFloat? = nil, @ViewBuilder content: () -> Content) -> some View where Content : View { 17 | ScrollView { 18 | VStack(alignment: alignment, spacing: spacing, content: content) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/library/Localizable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Localizable.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 18/07/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | extension String { 13 | func localized() -> String { 14 | return NSLocalizedString(self, comment: "") 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/library/ThreadEx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ThreadEx.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 11/09/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | 12 | func delayMain(delayTime: DispatchTimeInterval, perform: @escaping () -> Void) { 13 | DispatchQueue.main.asyncAfter(deadline: .now() + delayTime) { 14 | perform() 15 | } 16 | } 17 | 18 | func asyncMain(perform: @escaping () -> Void) { 19 | DispatchQueue.main.async { 20 | perform() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/ApiHeaderScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ApiHeaderScreen.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 25/10/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | import sample_base 12 | 13 | func ApiHeaderScreen(_ model: ApiHeaderViewModel) -> some View { 14 | Screen(model) { 15 | Column { 16 | Text("current header : \(+model.result)") 17 | SampleTextField("Input custom header", model.input) 18 | Button("change header") { model.onClick() } 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/ApiPollingScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ApiPollingScreen.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 19/07/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | import sample_base 12 | 13 | func ApiPollingScreen(_ model: ApiPollingViewModel) -> some View { 14 | Screen(model) { 15 | Column { 16 | Text("fail count \(+model.count ?? 0)") 17 | if (model.status.asValue()?.isSuccess() == true) { 18 | Text("result \(+model.result)") 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/ApiSingleScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by hyun kim on 04/07/20. 3 | // Copyright (c) 2020 hyun kim. All rights reserved. 4 | // 5 | 6 | import Foundation 7 | import SwiftUI 8 | import sample_base 9 | 10 | 11 | func ApiSingleScreen(_ model: ApiSingleViewModel) -> some View { 12 | Screen(model) { 13 | Column(alignment: .center) { 14 | Text("current value : \(+model.result)") 15 | SampleTextField("Enter value", model.input).frame(width: 100, alignment: .center) 16 | Button("Update") { model.onClick() } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/ApiTestScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ApiTestScreen.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 30/12/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | import sample_base 12 | 13 | func ApiTestScreen(_ model: ApiTestViewModel) -> some View { 14 | Screen(model) { 15 | Column { 16 | Text("Success") 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/DeeplinkSubScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SigninScreen.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 04/09/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import SwiftUI 10 | import sample_base 11 | 12 | func DeeplinkSubScreen(_ model: DeeplinkSubViewModel) -> some View { 13 | Screen(model) { 14 | Column { 15 | SampleTextField("Input value", model.result) 16 | Button("OK") { model.onClickOk() } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/ModelScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Architecture.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 18/06/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import SwiftUI 10 | import sample_base 11 | 12 | func ModelScreen() -> some View { 13 | List(ModelViewModel.Companion.init().items, id: \.self) { item in 14 | Button(item.generate().title) { 15 | navigator.navigate(viewModel: item.generate()) 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/model/UserScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SigninScreen.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 04/09/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import SwiftUI 10 | import sample_base 11 | 12 | func UserScreen(_ model: UserViewModel) -> some View { 13 | Screen(model) { 14 | ScrollableColumn { 15 | if let userDetail = +model.user { 16 | Text("Id : \(userDetail.id!)") 17 | Text("Name : \(userDetail.name)") 18 | Button("Log Out") { model.onClickLogOut() } 19 | } 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/screen/view/ViewScreen.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Architecture.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 18/06/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import SwiftUI 10 | import sample_base 11 | 12 | func ViewScreen() -> some View { 13 | Text("View") 14 | } 15 | -------------------------------------------------------------------------------- /sample/sample-native/kotlinIOS/widget/SampleTextField.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SampleTextField.swift 3 | // kotlinIOS 4 | // 5 | // Created by hyun kim on 02/10/20. 6 | // Copyright © 2020 hyun kim. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import SwiftUI 11 | import sample_base 12 | 13 | 14 | func SampleTextField(_ title: String, _ text: ViewModelFlow) -> some View { 15 | TextField(title, text: ++text) 16 | } 17 | 18 | -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Headers/Pods-kotlinIOS-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_kotlinIOSVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_kotlinIOSVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_kotlinIOS { 2 | umbrella header "Pods-kotlinIOS-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Pods_kotlinIOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/Pods_kotlinIOS -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/Pods_kotlinIOS.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/01J-lp-oVM-view-Ze5-6b-2t3.nib -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/LaunchScreen.storyboardc/UIViewController-01J-lp-oVM.nib -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/Base.lproj/Localizable.strings -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/Info.plist -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/ko.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/ko.lproj/Localizable.strings -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/VersionInfo.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/VersionInfo.plist -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.mom: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.mom -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.omo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.app/kotlinIOS.momd/kotlinIOS.omo -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftdoc -------------------------------------------------------------------------------- /sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dss99911/kotlin-simple-architecture/e9da57fdab9c9c1169fab422fac7432143e2c02c/sample/sample-native/sample/sample-native/build/kotlinIOS.swiftmodule/x86_64.swiftmodule -------------------------------------------------------------------------------- /sample/settings.gradle.kts: -------------------------------------------------------------------------------- 1 | include("sample-base") 2 | include("sample-android") 3 | include("sample-backend") -------------------------------------------------------------------------------- /sample/shell/deployAll.sh: -------------------------------------------------------------------------------- 1 | sh ${0%/*}/deployBackend.sh && \ 2 | sh ${0%/*}/installAndroidProductionRelease.sh -------------------------------------------------------------------------------- /sample/shell/deployAllAlert.sh: -------------------------------------------------------------------------------- 1 | sh ${0%/*}/deployAll.sh && \ 2 | sh ${0%/*}/completed.sh || \ 3 | sh ${0%/*}/error.sh -------------------------------------------------------------------------------- /sample/shell/deployBackend.sh: -------------------------------------------------------------------------------- 1 | #todo migrate to teamcity after libraries are deployed 2 | source ~/.path_profile 3 | 4 | ./gradlew -Penvironment=production :sample-backend:build && \ 5 | scp sample-backend/build/libs/sample-backend-all.jar hyun-server:~/app/sample-backend/sample-backend-all.jar && \ 6 | ssh hyun-server "sudo systemctl restart sample-backend" -------------------------------------------------------------------------------- /sample/shell/installAndroid.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :sample-android:installFreeProdDebug && \ 2 | adb shell am start -n "kim.jeonghyeon.sample.compose/com.example.sampleandroid.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /sample/shell/installAndroidProductionDebug.sh: -------------------------------------------------------------------------------- 1 | ./gradlew -Penvironment=production :sample-android:installFreeProdDebug && \ 2 | adb shell am start -n "kim.jeonghyeon.sample.compose/com.example.sampleandroid.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /sample/shell/installAndroidProductionRelease.sh: -------------------------------------------------------------------------------- 1 | ./gradlew -Penvironment=production :sample-android:installFreeProdRelease && \ 2 | adb shell am start -n "kim.jeonghyeon.sample.compose/com.example.sampleandroid.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -------------------------------------------------------------------------------- /sample/shell/installIos.sh: -------------------------------------------------------------------------------- 1 | xcodebuild \ 2 | -scheme kotlinIOS \ 3 | -workspace "$(pwd)/${0%/*}/../sample-native/kotlinIOS.xcworkspace" \ 4 | -sdk iphonesimulator \ 5 | -configuration Debug \ 6 | build \ 7 | CONFIGURATION_BUILD_DIR="$(pwd)/${0%/*}/../sample-native/build" && \ 8 | xcrun simctl install booted "$(pwd)/${0%/*}/../sample-native/build/kotlinIOS.app" && \ 9 | xcrun simctl launch booted "kim.jeonghyeon.kotlinIOS" && \ 10 | open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app -------------------------------------------------------------------------------- /sample/shell/runBackendLocal.sh: -------------------------------------------------------------------------------- 1 | ./gradlew :sample-backend:run -------------------------------------------------------------------------------- /shell/completed.sh: -------------------------------------------------------------------------------- 1 | osascript -e 'display notification "Completed"' 2 | osascript -e 'say "Completed"' -------------------------------------------------------------------------------- /shell/completedNoSound.sh: -------------------------------------------------------------------------------- 1 | osascript -e 'display notification "Completed"' -------------------------------------------------------------------------------- /shell/error.sh: -------------------------------------------------------------------------------- 1 | osascript -e 'display notification "Error"' 2 | osascript -e 'say "Error"' -------------------------------------------------------------------------------- /shell/errorNoSound.sh: -------------------------------------------------------------------------------- 1 | osascript -e 'display notification "Error"' -------------------------------------------------------------------------------- /shell/publishLocalClient.sh: -------------------------------------------------------------------------------- 1 | ./gradlew -PincludingModuleName=api:library:kotlin-simple-api-client :api:library:kotlin-simple-api-client:publishToMavenLocal && \ 2 | ./gradlew -PincludingModuleName=framework:kotlin-simple-architecture-client :framework:kotlin-simple-architecture-client:publishToMavenLocal -------------------------------------------------------------------------------- /shell/publishReleaseAlert.sh: -------------------------------------------------------------------------------- 1 | sh ${0%/*}/publishRelease.sh && \ 2 | sh ${0%/*}/completed.sh || \ 3 | sh ${0%/*}/error.sh -------------------------------------------------------------------------------- /shell/runTempTest.sh: -------------------------------------------------------------------------------- 1 | ./gradlew -PincludingModuleName=temp-test :temp-test:run -------------------------------------------------------------------------------- /temp-test/.gitignore: -------------------------------------------------------------------------------- 1 | build -------------------------------------------------------------------------------- /temp-test/README.md: -------------------------------------------------------------------------------- 1 | Just test simple code. 2 | -------------------------------------------------------------------------------- /temp-test/src/jsMain/kotlin/client.kt: -------------------------------------------------------------------------------- 1 | import react.dom.render 2 | import kotlinx.browser.document 3 | import kotlinx.browser.window 4 | 5 | fun main() { 6 | window.onload = { 7 | render(document.getElementById("root")) { 8 | child(Welcome::class) { 9 | attrs { 10 | name = "Kotlin/JS" 11 | } 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /temp-test/src/jvmMain/kotlin/TempTest.kt: -------------------------------------------------------------------------------- 1 | fun main() { 2 | println("test") 3 | } 4 | 5 | --------------------------------------------------------------------------------