KMM RSS Reader: an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile.

Related tags

Kotlin kotlin sample kmm
Overview

KMM RSS Reader

​ ​ This is an open-source, mobile, cross-platform application built with Kotlin Multiplatform Mobile. It's a simple RSS reader, and you can download it from the App Store and Google Play. It's been designed to demonstrate how KMM can be used in real production projects. ​ ​

Project structure

​ This repository contains a common Kotlin Multiplatform module, an Android project, and an iOS project. The common module is connected with the Android project via the Gradle multi-project mechanism. For use in iOS applications, the shared module compiles into a framework that is exposed to the Xcode project via the PackForXcode Gradle task. This framework connects to the Xcode project that builds an iOS application. ​ You can achieve the same structure by creating a project with the KMM Plugin project wizard or cloning the basic sample project. ​ ​ ​

Architecture

​ Kotlin Multiplatform Mobile is a flexible technology that allows you to share only what you want to share, from the core layer to UI layers. ​ This sample demonstrates sharing not only the data and domain layers of the app but also the application state: ​ ​ ​

Shared data and domain layers

​ There are two types of data sources. The network service is for getting RSS feed updates, while local storage is for caching the feed, which makes it possible to use the application offline. Ktor HTTP Client is used for making API requests. Kotlinx.serialization is used to serialize feed data and store it locally with MultiplaformSettings. This logic is organized in the shared module of the com.github.jetbrains.rssreader.core package. ​ ​

Shared application state

​ The Redux pattern is used for managing the application state. The simplified Redux architecture is implemented in the shared module. The Store class dispatches the actions that can be produced either by a user or by some async work, and generates the new state. It stores the actual state and facilitates subscription to state updates via Kotlin's StateFlow. To provide additional information about state updates, the Store class also produces effects that, for example, can be used to display this information via alerts. This logic is organized in the shared KMM module of the com.github.jetbrains.rssreader.app package. ​ ​ ​

Native UI

​ The UI layer is fully native and implemented using SwiftUI for iOS and Jetpack Compose for Android. ​ On the iOS side, the Store from the KMM library is wrapped into the ObservableObject and implements the state as a @Published wrapped property. This publishes changes whenever a dispatched action produces a new state after being reduced in the shared module. The store is injected as an Environment Object into the root view of the application, and is easily accessible from anywhere in the application. SwiftUI performs all aspects of diffing on the render pass when your state changes. ​ For subscribing to state updates, the simple wrapper is used. This wrapper allows you to provide a callback that will be called when each new value (the state in our case) is emitted. ​

Multiplatform features used

Platform-specific API usage. RSS feeds usually only support the XML format. The kotlinx.serialization library currently doesn't support parsing XML data, but there is no need to implement your own parser. Instead, platform libraries (XmlPullParser for Android and NSXMLParser for iOS) are used. The common FeedParser interface is declared in the commonMain source set. Platform implementations are placed in the corresponding iOSMain and AndroidMain source sets. They are injected into the RSSReader class (the KMM module entry point) via the create factory method, which is declared in the RSSReader class companion object.

Comments
  • basic react.js app with shared module dependency (as commonjs)

    basic react.js app with shared module dependency (as commonjs)

    Hello,

    This PR would add a React.js application to display one RSS feed (screenshot: media/web.png)

    I have done that because I think native JS UI is still more appealing to web developers. That being said we should be able to benefit from code sharing for business logic, validation rules, data acces, persistency logic and so on ..

    I don't know if this would be of interest to you.. It is probably light years from being mergeable but, if you get a chance to review I would love some feedbacks as they would probably teach me things I don't know.

    Basically I added a jsMain source set to the module. Then I added a Kotlin/JS module to the project. On top of that I used create-react-app to create a simple react.js application (webApp/app). The shared module is installed with NPM / compiled with webpack (exported as commonjs using Kotlin/JS IR compiler)

    Networking in jsMain with Ktor

    internal fun jsHttpClient(withLog: Boolean) = HttpClient(Js) // ..
    

    XML parsing is done in the jsMain with DOMParser

    internal class JsFeedParser : FeedParser {
        override suspend fun parse(sourceUrl: String, xml: String, isDefault: Boolean): Feed {
            val parser = DOMParser()
            val feed = parser.parseFromString(xml, "text/xml")
            // ...
        }
    }
    

    Then I added a function to create the reader for JS as function extensions seem not to be supported yet.

    fun createRssReader(withLog: Boolean) = RssReader(
        FeedLoader(
            jsHttpClient(withLog),
            JsFeedParser()
        ),
        FeedStorage(
            JsSettings(),
            Json {
                ignoreUnknownKeys = true
                isLenient = true
                encodeDefaults = false
            }
        )
    ).also {
        if (withLog) Napier.base(DebugAntilog())
    }
    

    Initialize reader and store with Koin (jsMain)

    @ExperimentalJsExport
    fun initKoin() {
        val deps = module {
            single { createRssReader(true) }
            single { FeedStore(get()) }
        }
    
        startKoin {
            modules(deps)
        }
    }
    

    A view model object in the Kotlin/JS module, mainly because sealed classed representing actions are not exportable to JS. Also used to init the Koin context.

    @ExperimentalJsExport
    @JsExport
    object RssReaderJsViewModel : KoinComponent {
        private val mainScope = MainScope()
        private var store : FeedStore
    
        init {
            initKoin()
            store = get()
        }
    
        @Suppress("unused")
        fun cancel() {
            mainScope.cancel()
        }
    
        @Suppress("unused")
        fun refreshFeeds() {
            store.dispatch(FeedAction.Refresh(true))
        }
    
        @Suppress("unused")
        fun observeStore(callback: (state: FeedState) -> Unit) {
            mainScope.launch {
                store.observeState().collect {
                    callback(it)
                }
            }
        }
    }
    

    Import commonjs module in React app

    import SharedRssRead from 'RssReader-shared'
    

    Expose the state with React Context API

    const RssFeedContext = createContext()
    const useRssFeedContext = () => useContext(RssFeedContext)
    

    Bind to component lifecycle

    useEffect(() => {
        viewModel.observeStore(onStateUpdate)
        viewModel.refreshFeeds()
        return () => viewModel.cancel()
      }, [viewModel])
    

    Use in UI component

    const { loading, posts } = useRssFeedContext();
    

    Thank you for providing this project anyway :) I am a redux fan !

    Kind regards

    opened by ybonnetain 10
  • Can't  Build the ios app after a clean clone of the project

    Can't Build the ios app after a clean clone of the project

    After I cloned and opened the project in Android Studio, I managed to run the android app but I can't run the ios app neither from android studio nor from xcode (I'm an android developer and I don't have experience with ios).

    When I try to run the ios app from android studio I get the following error Error: can't grab Xcode schemes with /usr/bin/xcodebuild -project /Volumes/data/Projects/Kotlin/KotlinMultiPlatform/kmm-production-sample/iosApp/iosApp.xcodeproj -list

    Screen Shot 2021-07-31 at 6 48 44 PM

    And when I try to build the ios app from xcode I get the following error Screen Shot 2021-07-31 at 6 36 56 PM

    Environment: Device: Macbook Pro 2020 with apple M1 OS: macOS Big Sur 11.5 IDE: Android Studio Arctic Fox 2020.3.1 and Xcode Version 12.5.1

    opened by RofaeilAshaiaa 4
  • Why not MVI?

    Why not MVI?

    Just out of curiosity: Why did you choose the minimalistic redux instead of MVI?

    I know this is all pretty similar and mostly names differ, but the jb-compose samples use MVI.

    discussion 
    opened by StefanOltmann 3
  • Compose desktop app: Module with the Main dispatcher had failed to initialize

    Compose desktop app: Module with the Main dispatcher had failed to initialize

    App crashes on launch when trying to launch the app from the desktopApp/App.kt main function. This is after checking out the desktop_web tag.

    Stack trace:

    Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Module with the Main dispatcher had failed to initialize. For tests Dispatchers.setMain from kotlinx-coroutines-test module can be used at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.missing(MainDispatchers.kt:118) at kotlinx.coroutines.internal.MissingMainCoroutineDispatcher.isDispatchNeeded(MainDispatchers.kt:96) at kotlinx.coroutines.internal.DispatchedContinuationKt.resumeCancellableWith(DispatchedContinuation.kt:319) at kotlinx.coroutines.intrinsics.CancellableKt.startCoroutineCancellable(Cancellable.kt:30) at kotlinx.coroutines.BuildersKt__Builders_commonKt.startCoroutineImpl(Builders.common.kt:192) at kotlinx.coroutines.BuildersKt.startCoroutineImpl(Unknown Source) at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:134) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56) at kotlinx.coroutines.BuildersKt.launch(Unknown Source) at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch$default(Builders.common.kt:47) at kotlinx.coroutines.BuildersKt.launch$default(Unknown Source) at com.github.jetbrains.rssreader.app.FeedStore.dispatch(FeedStore.kt:57)

    opened by SeanBlahovici 2
  • Why SwiftUI and Compose

    Why SwiftUI and Compose

    It contradicts with the project goal - "It's been designed to demonstrate how KMM can be used in real production projects.​​" These 2 UI frameworks are not production ready and only few people would risk to use it in prod (SwiftUI especially). I came here to see real KMM production use and ended up with SwiftUI/Compose and the need to install Android Studio Preview version. Doesn't make any sense for the production app sample.

    discussion 
    opened by slipdef 2
  • Project doesn't build

    Project doesn't build

    Unrecognized Android Studio (or Android Support plugin for IntelliJ IDEA) version '202.7660.26.42.7486908', please retry with version 2020.3.1 or newer

    bug 
    opened by slipdef 2
  • Cannot add new feed

    Cannot add new feed

    When I enter a feed url (https://xkcd.com/atom.xml) and click add, I get a toast saying :

    expected: START_TAG {null}channel (position:START_TAG <title>@2:64 in java.io.StringReader@a71eb8a)

    The error logs I can see when I run it in debug mode include:

    D/FeedStore: Action: Error(error=org.xmlpull.v1.XmlPullParserException: expected: START_TAG {null}channel (position:START_TAG <title>@2:64 in java.io.StringReader@a71eb8a) )

    opened by nwagu 2
  • Invalid injected android support version

    Invalid injected android support version

    Hi guys,

    I can't build the project and I don't really understand the Error tbh

    * What went wrong: Invalid injected android support version '202.7660.26.42.7322048', expected to be of the form 'w.x.y.z'

    org.gradle.api.InvalidUserDataException: Invalid injected android support version '202.7660.26.42.7322048', expected to be of the form 'w.x.y.z'
    	at com.android.build.gradle.internal.ide.StudioVersions.verifyIDEIsNotOld(StudioVersions.kt:53)
    	at com.android.build.gradle.internal.ide.StudioVersions.verifyIDEIsNotOld(StudioVersions.kt:40)
    	at com.android.build.gradle.internal.ide.ModelBuilder.buildAndroidProject(ModelBuilder.java:300)
    	at com.android.build.gradle.internal.ide.ModelBuilder.buildAll(ModelBuilder.java:233)
    	at com.android.build.gradle.internal.ide.ModelBuilder.buildAll(ModelBuilder.java:153)
    	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuilderWithParameter.build(DefaultToolingModelBuilderRegistry.java:194)
    	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.lambda$build$0(DefaultToolingModelBuilderRegistry.java:211)
    	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:310)
    	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:213)
    	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:310)
    	at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:291)
    	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$LockSingleProjectBuilder.build(DefaultToolingModelBuilderRegistry.java:211)
    	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder$1.call(DefaultToolingModelBuilderRegistry.java:246)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76)
    	at org.gradle.tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingBuilder.build(DefaultToolingModelBuilderRegistry.java:243)
    	at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getParameterizedModel(DefaultBuildController.java:156)
    	at org.gradle.tooling.internal.provider.runner.DefaultBuildController.getModel(DefaultBuildController.java:104)
    	at org.gradle.tooling.internal.consumer.connection.InternalBuildActionAdapter$2.getModel(InternalBuildActionAdapter.java:74)
    	at org.gradle.tooling.internal.consumer.connection.BuildControllerAdapter.getModel(BuildControllerAdapter.java:62)
    	at org.jetbrains.plugins.gradle.model.ProjectImportAction$MyBuildController.getModel(ProjectImportAction.java:565)
    	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider$Worker.findParameterizedAndroidModel(AndroidExtraModelProvider.kt:254)
    	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider$Worker.populateAndroidModels(AndroidExtraModelProvider.kt:158)
    	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider$Worker.populateBuildModels(AndroidExtraModelProvider.kt:108)
    	at com.android.tools.idea.gradle.project.sync.idea.svs.AndroidExtraModelProvider.populateBuildModels(AndroidExtraModelProvider.kt:81)
    	at org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:247)
    	at org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:117)
    

    I'm using the latest AS version '4.2' JDK 11 Gradle 7

    Thanks for any advice

    opened by amensia 2
  • The project doesn't work with Android Gradle plugin version 7.0.0-alpha15

    The project doesn't work with Android Gradle plugin version 7.0.0-alpha15

    Hi folks,

    first of all, thanks for this nice sample project.

    I tried to open it today in the latest (at the time of writing) Arctic Fox 2020.3.1 Canary 15 (as far as I understand, the project is going to work neither in beta nor stable channles of Android Studio nor in the latest version of IDEA, please correct me if I'm wrong), and it demanded that I upgrade the plugin to alpha 15. After doing so, I'm getting following error in Android Studio:

    org.gradle.internal.exceptions.LocationAwareException: Build file '/Users/user/Developer/kmm-production-sample/androidApp/build.gradle.kts' line: 37
    Script compilation error:
      Line 37:             initWith(getByName("debug"))
                           ^ Unresolved reference: initWith
    

    Unfortunately I couldn't find any changelogs of Android Gradle plugin 7.0 alphas to find out why and with what it was removed/replaced.

    opened by nikolaykasyanov 2
  • Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

    Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.

    gradlew packForXcode --debug --info

    • What went wrong: An exception occurred applying plugin request [id: 'com.android.application']

    Failed to apply plugin 'com.android.internal.application'. Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing org.gradle.java.home in gradle.properties.

    can I use Java 1.8?

    opened by libill 2
  • Fix issue running the iOS app on Macbook M1

    Fix issue running the iOS app on Macbook M1

    Ktor update is available and running the iOS app on Macbook M1 is possible now by upgrading Ktor to the latest version. I needed to upgrade Kotlin version to be compatible with Ktor version.

    opened by alishari 1
  • iOS works ok, but Android app issues

    iOS works ok, but Android app issues "Connect Timeout has Expired" message on startup and nothing loads

    Increasing the connectTimeout at line 13 of AndroidHttpClient.kt does not fix it.

    I see this in logcat: 2022-09-02 09:57:44.604 16529-16529/com.github.jetbrains.rssreader.androidApp V/AndroidHttpClient: REQUEST https://blog.jetbrains.com/kotlin/feed/ failed with exception: io.ktor.client.network.sockets.ConnectTimeoutException: Connect timeout has expired [url=https://blog.jetbrains.com/kotlin/feed/, connect_timeout=unknown ms] 2022-09-02 09:57:44.608 16529-16529/com.github.jetbrains.rssreader.androidApp D/FeedStore: Action: Error(error=io.ktor.client.network.sockets.ConnectTimeoutException: Connect timeout has expired [url=https://blog.jetbrains.com/kotlin/feed/, connect_timeout=unknown ms])

    opened by Lee-Hounshell-at-MarianaTek 0
  • C# Interop Example

    C# Interop Example

    Does anyone know of an example of interoperability between C# and KMM (for a Windows UI) ?

    We'd like to demonstrate calling into a shared C library from a C# UI and have gotten stuck on simple interop stuff like: passing pointers to structs that need to map to C# classes. We just want to demonstrate even a single "rich" call across the language barrier.

    Thanks in advance!

    Forgive the duplicate. I wasn't sure which repo to post to.

    opened by lukegalea 0
  • We are working on xmlpull / kxml for kmp

    We are working on xmlpull / kxml for kmp

    See https://github.com/kobjects/kxml3

    Wondering if this is useful for your case and whether you have any feedback on the API draft?

    Do you have any recommendations for publishing KMP libraries? Jitpack doesn't seem to be fully ready for KMP yet...

    opened by stefanhaustein 0
  • Handle coroutine cancelation on Activity lifecycle callbacks

    Handle coroutine cancelation on Activity lifecycle callbacks

    Support for canceling coroutines when Activity is destroyed is missing. FeedStore has hardcoded CoroutineScope(Dispatchers.Main) which is not bound to any lifecycle callbacks. This hardcoded coroutine scope also makes writing unit tests hard (it could be simply a constructor parameter).

    opened by lukasz-kalnik-gcx 2
  • Can't build iOS app from XCode - Error (branch new-mm-demo)

    Can't build iOS app from XCode - Error (branch new-mm-demo)

    Hello, thanks for sample. From AndroidStudio I can build both iOS App and Android App. But from XCode I have the following issue:

    PhaseScriptExecution Run\ Script /Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Script-7555FFB5242A651A00829871.sh (in target 'iosApp' from project 'iosApp')
        cd /Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export ACTION\=build
        export AD_HOC_CODE_SIGNING_ALLOWED\=YES
        export ALTERNATE_GROUP\=staff
        export ALTERNATE_MODE\=u+w,go-w,a+rX
        export ALTERNATE_OWNER\=my_user
        export ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES\=NO
        export ALWAYS_SEARCH_USER_PATHS\=NO
        export ALWAYS_USE_SEPARATE_HEADERMAPS\=NO
        export APPLE_INTERNAL_DEVELOPER_DIR\=/AppleInternal/Developer
        export APPLE_INTERNAL_DIR\=/AppleInternal
        export APPLE_INTERNAL_DOCUMENTATION_DIR\=/AppleInternal/Documentation
        export APPLE_INTERNAL_LIBRARY_DIR\=/AppleInternal/Library
        export APPLE_INTERNAL_TOOLS\=/AppleInternal/Developer/Tools
        export APPLICATION_EXTENSION_API_ONLY\=NO
        export APPLY_RULES_IN_COPY_FILES\=NO
        export APPLY_RULES_IN_COPY_HEADERS\=NO
        export ARCHS\=x86_64
        export ARCHS_STANDARD\=arm64\ x86_64
        export ARCHS_STANDARD_32_64_BIT\=arm64\ i386\ x86_64
        export ARCHS_STANDARD_32_BIT\=i386
        export ARCHS_STANDARD_64_BIT\=arm64\ x86_64
        export ARCHS_STANDARD_INCLUDING_64_BIT\=arm64\ x86_64
        export ARCHS_UNIVERSAL_IPHONE_OS\=arm64\ i386\ x86_64
        export ASSETCATALOG_COMPILER_APPICON_NAME\=AppIcon
        export ASSETCATALOG_FILTER_FOR_DEVICE_MODEL\=iPhone13,2
        export ASSETCATALOG_FILTER_FOR_DEVICE_OS_VERSION\=14.5
        export AVAILABLE_PLATFORMS\=appletvos\ appletvsimulator\ iphoneos\ iphonesimulator\ macosx\ watchos\ watchsimulator
        export AppIdentifierPrefix\=7NQCZ5ADBW.
        export BITCODE_GENERATION_MODE\=marker
        export BUILD_ACTIVE_RESOURCES_ONLY\=YES
        export BUILD_COMPONENTS\=headers\ build
        export BUILD_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products
        export BUILD_LIBRARY_FOR_DISTRIBUTION\=NO
        export BUILD_ROOT\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products
        export BUILD_STYLE\=
        export BUILD_VARIANTS\=normal
        export BUILT_PRODUCTS_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator
        export BUNDLE_CONTENTS_FOLDER_PATH_deep\=Contents/
        export BUNDLE_EXECUTABLE_FOLDER_NAME_deep\=MacOS
        export BUNDLE_FORMAT\=shallow
        export BUNDLE_FRAMEWORKS_FOLDER_PATH\=Frameworks
        export BUNDLE_PLUGINS_FOLDER_PATH\=PlugIns
        export BUNDLE_PRIVATE_HEADERS_FOLDER_PATH\=PrivateHeaders
        export BUNDLE_PUBLIC_HEADERS_FOLDER_PATH\=Headers
        export CACHE_ROOT\=/var/folders/57/d368gqn13bdd8ghmz21hp48h0000gp/C/com.apple.DeveloperTools/12.5.1-12E507/Xcode
        export CCHROOT\=/var/folders/57/d368gqn13bdd8ghmz21hp48h0000gp/C/com.apple.DeveloperTools/12.5.1-12E507/Xcode
        export CHMOD\=/bin/chmod
        export CHOWN\=/usr/sbin/chown
        export CLANG_ANALYZER_NONNULL\=YES
        export CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION\=YES_AGGRESSIVE
        export CLANG_CXX_LANGUAGE_STANDARD\=gnu++14
        export CLANG_CXX_LIBRARY\=libc++
        export CLANG_ENABLE_MODULES\=YES
        export CLANG_ENABLE_OBJC_ARC\=YES
        export CLANG_ENABLE_OBJC_WEAK\=YES
        export CLANG_MODULES_BUILD_SESSION_FILE\=/Users/my_user/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation
        export CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING\=YES
        export CLANG_WARN_BOOL_CONVERSION\=YES
        export CLANG_WARN_COMMA\=YES
        export CLANG_WARN_CONSTANT_CONVERSION\=YES
        export CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS\=YES
        export CLANG_WARN_DIRECT_OBJC_ISA_USAGE\=YES_ERROR
        export CLANG_WARN_DOCUMENTATION_COMMENTS\=YES
        export CLANG_WARN_EMPTY_BODY\=YES
        export CLANG_WARN_ENUM_CONVERSION\=YES
        export CLANG_WARN_INFINITE_RECURSION\=YES
        export CLANG_WARN_INT_CONVERSION\=YES
        export CLANG_WARN_NON_LITERAL_NULL_CONVERSION\=YES
        export CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF\=YES
        export CLANG_WARN_OBJC_LITERAL_CONVERSION\=YES
        export CLANG_WARN_OBJC_ROOT_CLASS\=YES_ERROR
        export CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER\=YES
        export CLANG_WARN_RANGE_LOOP_ANALYSIS\=YES
        export CLANG_WARN_STRICT_PROTOTYPES\=YES
        export CLANG_WARN_SUSPICIOUS_MOVE\=YES
        export CLANG_WARN_UNGUARDED_AVAILABILITY\=YES_AGGRESSIVE
        export CLANG_WARN_UNREACHABLE_CODE\=YES
        export CLANG_WARN__DUPLICATE_METHOD_MATCH\=YES
        export CLASS_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/JavaClasses
        export CLEAN_PRECOMPS\=YES
        export CLONE_HEADERS\=NO
        export CODESIGNING_FOLDER_PATH\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator/iosApp.app
        export CODE_SIGNING_ALLOWED\=YES
        export CODE_SIGNING_REQUIRED\=YES
        export CODE_SIGN_CONTEXT_CLASS\=XCiPhoneSimulatorCodeSignContext
        export CODE_SIGN_IDENTITY\=-
        export CODE_SIGN_INJECT_BASE_ENTITLEMENTS\=YES
        export CODE_SIGN_STYLE\=Automatic
        export COLOR_DIAGNOSTICS\=NO
        export COMBINE_HIDPI_IMAGES\=NO
        export COMPILER_INDEX_STORE_ENABLE\=Default
        export COMPOSITE_SDK_DIRS\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/CompositeSDKs
        export COMPRESS_PNG_FILES\=YES
        export CONFIGURATION\=Debug
        export CONFIGURATION_BUILD_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator
        export CONFIGURATION_TEMP_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator
        export CONTENTS_FOLDER_PATH\=iosApp.app
        export COPYING_PRESERVES_HFS_DATA\=NO
        export COPY_HEADERS_RUN_UNIFDEF\=NO
        export COPY_PHASE_STRIP\=NO
        export COPY_RESOURCES_FROM_STATIC_FRAMEWORKS\=YES
        export CORRESPONDING_DEVICE_PLATFORM_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform
        export CORRESPONDING_DEVICE_PLATFORM_NAME\=iphoneos
        export CORRESPONDING_DEVICE_SDK_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.5.sdk
        export CORRESPONDING_DEVICE_SDK_NAME\=iphoneos14.5
        export CP\=/bin/cp
        export CREATE_INFOPLIST_SECTION_IN_BINARY\=NO
        export CURRENT_ARCH\=undefined_arch
        export CURRENT_VARIANT\=normal
        export DEAD_CODE_STRIPPING\=YES
        export DEBUGGING_SYMBOLS\=YES
        export DEBUG_INFORMATION_FORMAT\=dwarf-with-dsym
        export DEFAULT_COMPILER\=com.apple.compilers.llvm.clang.1_0
        export DEFAULT_DEXT_INSTALL_PATH\=/System/Library/DriverExtensions
        export DEFAULT_KEXT_INSTALL_PATH\=/System/Library/Extensions
        export DEFINES_MODULE\=NO
        export DEPLOYMENT_LOCATION\=NO
        export DEPLOYMENT_POSTPROCESSING\=NO
        export DEPLOYMENT_TARGET_CLANG_ENV_NAME\=IPHONEOS_DEPLOYMENT_TARGET
        export DEPLOYMENT_TARGET_CLANG_FLAG_NAME\=mios-simulator-version-min
        export DEPLOYMENT_TARGET_CLANG_FLAG_PREFIX\=-mios-simulator-version-min\=
        export DEPLOYMENT_TARGET_LD_ENV_NAME\=IPHONEOS_DEPLOYMENT_TARGET
        export DEPLOYMENT_TARGET_LD_FLAG_NAME\=ios_simulator_version_min
        export DEPLOYMENT_TARGET_SETTING_NAME\=IPHONEOS_DEPLOYMENT_TARGET
        export DEPLOYMENT_TARGET_SUGGESTED_VALUES\=9.0\ 9.2\ 10.0\ 10.2\ 11.0\ 11.2\ 11.4\ 12.1\ 12.3\ 13.0\ 13.2\ 13.4\ 13.6\ 14.1\ 14.3\ 14.5
        export DERIVED_FILES_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/DerivedSources
        export DERIVED_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/DerivedSources
        export DERIVED_SOURCES_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/DerivedSources
        export DEVELOPER_APPLICATIONS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications
        export DEVELOPER_BIN_DIR\=/Applications/Xcode.app/Contents/Developer/usr/bin
        export DEVELOPER_DIR\=/Applications/Xcode.app/Contents/Developer
        export DEVELOPER_FRAMEWORKS_DIR\=/Applications/Xcode.app/Contents/Developer/Library/Frameworks
        export DEVELOPER_FRAMEWORKS_DIR_QUOTED\=/Applications/Xcode.app/Contents/Developer/Library/Frameworks
        export DEVELOPER_LIBRARY_DIR\=/Applications/Xcode.app/Contents/Developer/Library
        export DEVELOPER_SDK_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
        export DEVELOPER_TOOLS_DIR\=/Applications/Xcode.app/Contents/Developer/Tools
        export DEVELOPER_USR_DIR\=/Applications/Xcode.app/Contents/Developer/usr
        export DEVELOPMENT_ASSET_PATHS\=\"iosApp/Preview\ Content\"
        export DEVELOPMENT_LANGUAGE\=en
        export DOCUMENTATION_FOLDER_PATH\=iosApp.app/en.lproj/Documentation
        export DONT_GENERATE_INFOPLIST_FILE\=NO
        export DO_HEADER_SCANNING_IN_JAM\=NO
        export DSTROOT\=/tmp/iosApp.dst
        export DT_TOOLCHAIN_DIR\=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
        export DWARF_DSYM_FILE_NAME\=iosApp.app.dSYM
        export DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT\=NO
        export DWARF_DSYM_FOLDER_PATH\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator
        export EFFECTIVE_PLATFORM_NAME\=-iphonesimulator
        export EMBEDDED_CONTENT_CONTAINS_SWIFT\=NO
        export EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE\=NO
        export ENABLE_BITCODE\=NO
        export ENABLE_DEFAULT_HEADER_SEARCH_PATHS\=YES
        export ENABLE_HARDENED_RUNTIME\=NO
        export ENABLE_HEADER_DEPENDENCIES\=YES
        export ENABLE_ON_DEMAND_RESOURCES\=YES
        export ENABLE_PREVIEWS\=NO
        export ENABLE_STRICT_OBJC_MSGSEND\=YES
        export ENABLE_TESTABILITY\=YES
        export ENABLE_TESTING_SEARCH_PATHS\=NO
        export ENTITLEMENTS_DESTINATION\=__entitlements
        export ENTITLEMENTS_REQUIRED\=YES
        export EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS\=.DS_Store\ .svn\ .git\ .hg\ CVS
        export EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES\=\*.nib\ \*.lproj\ \*.framework\ \*.gch\ \*.xcode\*\ \*.xcassets\ \(\*\)\ .DS_Store\ CVS\ .svn\ .git\ .hg\ \*.pbproj\ \*.pbxproj
        export EXECUTABLES_FOLDER_PATH\=iosApp.app/Executables
        export EXECUTABLE_FOLDER_PATH\=iosApp.app
        export EXECUTABLE_NAME\=iosApp
        export EXECUTABLE_PATH\=iosApp.app/iosApp
        export EXPANDED_CODE_SIGN_IDENTITY\=-
        export EXPANDED_CODE_SIGN_IDENTITY_NAME\=-
        export FILE_LIST\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects/LinkFileList
        export FIXED_FILES_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/FixedFiles
        export FRAMEWORKS_FOLDER_PATH\=iosApp.app/Frameworks
        export FRAMEWORK_FLAG_PREFIX\=-framework
        export FRAMEWORK_SEARCH_PATHS\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator\ /Users/my_user/Develop/projects_a/kmm-production-sample/iosApp/../shared/build/xcode-frameworks/Debug/iphonesimulator14.5
        export FRAMEWORK_VERSION\=A
        export FULL_PRODUCT_NAME\=iosApp.app
        export GCC3_VERSION\=3.3
        export GCC_C_LANGUAGE_STANDARD\=gnu11
        export GCC_DYNAMIC_NO_PIC\=NO
        export GCC_INLINES_ARE_PRIVATE_EXTERN\=YES
        export GCC_NO_COMMON_BLOCKS\=YES
        export GCC_OBJC_LEGACY_DISPATCH\=YES
        export GCC_OPTIMIZATION_LEVEL\=0
        export GCC_PFE_FILE_C_DIALECTS\=c\ objective-c\ c++\ objective-c++
        export GCC_PREPROCESSOR_DEFINITIONS\=DEBUG\=1\ 
        export GCC_SYMBOLS_PRIVATE_EXTERN\=NO
        export GCC_TREAT_WARNINGS_AS_ERRORS\=NO
        export GCC_VERSION\=com.apple.compilers.llvm.clang.1_0
        export GCC_VERSION_IDENTIFIER\=com_apple_compilers_llvm_clang_1_0
        export GCC_WARN_64_TO_32_BIT_CONVERSION\=YES
        export GCC_WARN_ABOUT_RETURN_TYPE\=YES_ERROR
        export GCC_WARN_UNDECLARED_SELECTOR\=YES
        export GCC_WARN_UNINITIALIZED_AUTOS\=YES_AGGRESSIVE
        export GCC_WARN_UNUSED_FUNCTION\=YES
        export GCC_WARN_UNUSED_VARIABLE\=YES
        export GENERATED_MODULEMAP_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator
        export GENERATE_MASTER_OBJECT_FILE\=NO
        export GENERATE_PKGINFO_FILE\=YES
        export GENERATE_PROFILING_CODE\=NO
        export GENERATE_TEXT_BASED_STUBS\=NO
        export GID\=20
        export GROUP\=staff
        export HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT\=YES
        export HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES\=YES
        export HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS\=YES
        export HEADERMAP_INCLUDES_PROJECT_HEADERS\=YES
        export HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES\=YES
        export HEADERMAP_USES_VFS\=NO
        export HEADER_SEARCH_PATHS\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator/include\ 
        export HIDE_BITCODE_SYMBOLS\=YES
        export HOME\=/Users/my_user
        export ICONV\=/usr/bin/iconv
        export INFOPLIST_EXPAND_BUILD_SETTINGS\=YES
        export INFOPLIST_FILE\=iosApp/Info.plist
        export INFOPLIST_OUTPUT_FORMAT\=binary
        export INFOPLIST_PATH\=iosApp.app/Info.plist
        export INFOPLIST_PREPROCESS\=NO
        export INFOSTRINGS_PATH\=iosApp.app/en.lproj/InfoPlist.strings
        export INLINE_PRIVATE_FRAMEWORKS\=NO
        export INSTALLHDRS_COPY_PHASE\=NO
        export INSTALLHDRS_SCRIPT_PHASE\=NO
        export INSTALL_DIR\=/tmp/iosApp.dst/Applications
        export INSTALL_GROUP\=staff
        export INSTALL_MODE_FLAG\=u+w,go-w,a+rX
        export INSTALL_OWNER\=my_user
        export INSTALL_PATH\=/Applications
        export INSTALL_ROOT\=/tmp/iosApp.dst
        export IPHONEOS_DEPLOYMENT_TARGET\=14.0
        export JAVAC_DEFAULT_FLAGS\=-J-Xms64m\ -J-XX:NewSize\=4M\ -J-Dfile.encoding\=UTF8
        export JAVA_APP_STUB\=/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
        export JAVA_ARCHIVE_CLASSES\=YES
        export JAVA_ARCHIVE_TYPE\=JAR
        export JAVA_COMPILER\=/usr/bin/javac
        export JAVA_FOLDER_PATH\=iosApp.app/Java
        export JAVA_FRAMEWORK_RESOURCES_DIRS\=Resources
        export JAVA_JAR_FLAGS\=cv
        export JAVA_SOURCE_SUBDIR\=.
        export JAVA_USE_DEPENDENCIES\=YES
        export JAVA_ZIP_FLAGS\=-urg
        export JIKES_DEFAULT_FLAGS\=+E\ +OLDCSO
        export KEEP_PRIVATE_EXTERNS\=NO
        export LD_DEPENDENCY_INFO_FILE\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/undefined_arch/iosApp_dependency_info.dat
        export LD_ENTITLEMENTS_SECTION\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/iosApp.app-Simulated.xcent
        export LD_GENERATE_MAP_FILE\=NO
        export LD_MAP_FILE_PATH\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/iosApp-LinkMap-normal-undefined_arch.txt
        export LD_NO_PIE\=NO
        export LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER\=YES
        export LD_RUNPATH_SEARCH_PATHS\=\ @executable_path/Frameworks
        export LEGACY_DEVELOPER_DIR\=/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer
        export LEX\=lex
        export LIBRARY_DEXT_INSTALL_PATH\=/Library/DriverExtensions
        export LIBRARY_FLAG_NOSPACE\=YES
        export LIBRARY_FLAG_PREFIX\=-l
        export LIBRARY_KEXT_INSTALL_PATH\=/Library/Extensions
        export LIBRARY_SEARCH_PATHS\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator\ 
        export LINKER_DISPLAYS_MANGLED_NAMES\=NO
        export LINK_FILE_LIST_normal_x86_64\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/iosApp.LinkFileList
        export LINK_WITH_STANDARD_LIBRARIES\=YES
        export LLVM_TARGET_TRIPLE_OS_VERSION\=ios14.0
        export LLVM_TARGET_TRIPLE_SUFFIX\=-simulator
        export LLVM_TARGET_TRIPLE_VENDOR\=apple
        export LOCALIZATION_EXPORT_SUPPORTED\=YES
        export LOCALIZED_RESOURCES_FOLDER_PATH\=iosApp.app/en.lproj
        export LOCALIZED_STRING_MACRO_NAMES\=NSLocalizedString\ CFCopyLocalizedString
        export LOCALIZED_STRING_SWIFTUI_SUPPORT\=YES
        export LOCAL_ADMIN_APPS_DIR\=/Applications/Utilities
        export LOCAL_APPS_DIR\=/Applications
        export LOCAL_DEVELOPER_DIR\=/Library/Developer
        export LOCAL_LIBRARY_DIR\=/Library
        export LOCROOT\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export LOCSYMROOT\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export MACH_O_TYPE\=mh_execute
        export MAC_OS_X_PRODUCT_BUILD_VERSION\=20F71
        export MAC_OS_X_VERSION_ACTUAL\=110400
        export MAC_OS_X_VERSION_MAJOR\=110000
        export MAC_OS_X_VERSION_MINOR\=110400
        export METAL_LIBRARY_FILE_BASE\=default
        export METAL_LIBRARY_OUTPUT_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator/iosApp.app
        export MODULES_FOLDER_PATH\=iosApp.app/Modules
        export MODULE_CACHE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/ModuleCache.noindex
        export MTL_ENABLE_DEBUG_INFO\=INCLUDE_SOURCE
        export MTL_FAST_MATH\=YES
        export NATIVE_ARCH\=x86_64
        export NATIVE_ARCH_32_BIT\=i386
        export NATIVE_ARCH_64_BIT\=x86_64
        export NATIVE_ARCH_ACTUAL\=x86_64
        export NO_COMMON\=YES
        export OBJC_ABI_VERSION\=2
        export OBJECT_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects
        export OBJECT_FILE_DIR_normal\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal
        export OBJROOT\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex
        export ONLY_ACTIVE_ARCH\=YES
        export OS\=MACOS
        export OSAC\=/usr/bin/osacompile
        export OTHER_CFLAGS\=-fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/FileIndex.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/PlainDatabase.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/ImageDecoder.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/DownloadManager.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/Log.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/RemoteContentView.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/URLImage.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/Introspect.modulemap\ 
        export OTHER_CPLUSPLUSFLAGS\=-fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/FileIndex.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/PlainDatabase.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/ImageDecoder.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/DownloadManager.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/Log.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/RemoteContentView.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/URLImage.modulemap\ -fmodule-map-file\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/GeneratedModuleMaps-iphonesimulator/Introspect.modulemap\ 
        export OTHER_LDFLAGS\=\ -framework\ RssReader
        export PACKAGE_TYPE\=com.apple.package-type.wrapper.application
        export PASCAL_STRINGS\=YES
        export PATH\=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/usr/local/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/local/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
        export PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES\=/usr/include\ /usr/local/include\ /System/Library/Frameworks\ /System/Library/PrivateFrameworks\ /Applications/Xcode.app/Contents/Developer/Headers\ /Applications/Xcode.app/Contents/Developer/SDKs\ /Applications/Xcode.app/Contents/Developer/Platforms
        export PBDEVELOPMENTPLIST_PATH\=iosApp.app/pbdevelopment.plist
        export PER_ARCH_OBJECT_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/undefined_arch
        export PER_VARIANT_OBJECT_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal
        export PKGINFO_FILE_PATH\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/PkgInfo
        export PKGINFO_PATH\=iosApp.app/PkgInfo
        export PLATFORM_DEVELOPER_APPLICATIONS_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications
        export PLATFORM_DEVELOPER_BIN_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin
        export PLATFORM_DEVELOPER_LIBRARY_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library
        export PLATFORM_DEVELOPER_SDK_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs
        export PLATFORM_DEVELOPER_TOOLS_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Tools
        export PLATFORM_DEVELOPER_USR_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr
        export PLATFORM_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform
        export PLATFORM_DISPLAY_NAME\=iOS\ Simulator
        export PLATFORM_FAMILY_NAME\=iOS
        export PLATFORM_NAME\=iphonesimulator
        export PLATFORM_PREFERRED_ARCH\=x86_64
        export PLATFORM_PRODUCT_BUILD_VERSION\=18E182
        export PLIST_FILE_OUTPUT_FORMAT\=binary
        export PLUGINS_FOLDER_PATH\=iosApp.app/PlugIns
        export PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR\=YES
        export PRECOMP_DESTINATION_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/PrefixHeaders
        export PRESERVE_DEAD_CODE_INITS_AND_TERMS\=NO
        export PRIVATE_HEADERS_FOLDER_PATH\=iosApp.app/PrivateHeaders
        export PRODUCT_BUNDLE_IDENTIFIER\=orgIdentifier.iosApp
        export PRODUCT_BUNDLE_PACKAGE_TYPE\=APPL
        export PRODUCT_MODULE_NAME\=iosApp
        export PRODUCT_NAME\=iosApp
        export PRODUCT_SETTINGS_PATH\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp/iosApp/Info.plist
        export PRODUCT_TYPE\=com.apple.product-type.application
        export PROFILING_CODE\=NO
        export PROJECT\=iosApp
        export PROJECT_DERIVED_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/DerivedSources
        export PROJECT_DIR\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export PROJECT_FILE_PATH\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp/iosApp.xcodeproj
        export PROJECT_NAME\=iosApp
        export PROJECT_TEMP_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build
        export PROJECT_TEMP_ROOT\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex
        export PUBLIC_HEADERS_FOLDER_PATH\=iosApp.app/Headers
        export RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS\=YES
        export REMOVE_CVS_FROM_RESOURCES\=YES
        export REMOVE_GIT_FROM_RESOURCES\=YES
        export REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES\=YES
        export REMOVE_HG_FROM_RESOURCES\=YES
        export REMOVE_SVN_FROM_RESOURCES\=YES
        export REZ_COLLECTOR_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/ResourceManagerResources
        export REZ_OBJECTS_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/ResourceManagerResources/Objects
        export REZ_SEARCH_PATHS\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator\ 
        export SCAN_ALL_SOURCE_FILES_FOR_INCLUDES\=NO
        export SCRIPTS_FOLDER_PATH\=iosApp.app/Scripts
        export SCRIPT_INPUT_FILE_COUNT\=0
        export SCRIPT_INPUT_FILE_LIST_COUNT\=0
        export SCRIPT_OUTPUT_FILE_COUNT\=0
        export SCRIPT_OUTPUT_FILE_LIST_COUNT\=0
        export SDKROOT\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk
        export SDK_DIR\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk
        export SDK_DIR_iphonesimulator\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk
        export SDK_DIR_iphonesimulator14_5\=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk
        export SDK_NAME\=iphonesimulator14.5
        export SDK_NAMES\=iphonesimulator14.5
        export SDK_PRODUCT_BUILD_VERSION\=18E182
        export SDK_VERSION\=14.5
        export SDK_VERSION_ACTUAL\=140500
        export SDK_VERSION_MAJOR\=140000
        export SDK_VERSION_MINOR\=140500
        export SED\=/usr/bin/sed
        export SEPARATE_STRIP\=NO
        export SEPARATE_SYMBOL_EDIT\=NO
        export SET_DIR_MODE_OWNER_GROUP\=YES
        export SET_FILE_MODE_OWNER_GROUP\=NO
        export SHALLOW_BUNDLE\=YES
        export SHARED_DERIVED_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator/DerivedSources
        export SHARED_FRAMEWORKS_FOLDER_PATH\=iosApp.app/SharedFrameworks
        export SHARED_PRECOMPS_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/PrecompiledHeaders
        export SHARED_SUPPORT_FOLDER_PATH\=iosApp.app/SharedSupport
        export SKIP_INSTALL\=NO
        export SOURCE_ROOT\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export SRCROOT\=/Users/my_user/Develop/projects_a/kmm-production-sample/iosApp
        export STRINGS_FILE_INFOPLIST_RENAME\=YES
        export STRINGS_FILE_OUTPUT_ENCODING\=binary
        export STRIP_BITCODE_FROM_COPIED_FILES\=NO
        export STRIP_INSTALLED_PRODUCT\=YES
        export STRIP_STYLE\=all
        export STRIP_SWIFT_SYMBOLS\=YES
        export SUPPORTED_DEVICE_FAMILIES\=1,2
        export SUPPORTED_PLATFORMS\=iphoneos\ iphonesimulator
        export SUPPORTS_TEXT_BASED_API\=NO
        export SWIFT_ACTIVE_COMPILATION_CONDITIONS\=DEBUG
        export SWIFT_OPTIMIZATION_LEVEL\=-Onone
        export SWIFT_PLATFORM_TARGET_PREFIX\=ios
        export SWIFT_RESPONSE_FILE_PATH_normal_x86_64\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Objects-normal/x86_64/iosApp.SwiftFileList
        export SWIFT_VERSION\=5.0
        export SYMROOT\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products
        export SYSTEM_ADMIN_APPS_DIR\=/Applications/Utilities
        export SYSTEM_APPS_DIR\=/Applications
        export SYSTEM_CORE_SERVICES_DIR\=/System/Library/CoreServices
        export SYSTEM_DEMOS_DIR\=/Applications/Extras
        export SYSTEM_DEVELOPER_APPS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications
        export SYSTEM_DEVELOPER_BIN_DIR\=/Applications/Xcode.app/Contents/Developer/usr/bin
        export SYSTEM_DEVELOPER_DEMOS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications/Utilities/Built\ Examples
        export SYSTEM_DEVELOPER_DIR\=/Applications/Xcode.app/Contents/Developer
        export SYSTEM_DEVELOPER_DOC_DIR\=/Applications/Xcode.app/Contents/Developer/ADC\ Reference\ Library
        export SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications/Graphics\ Tools
        export SYSTEM_DEVELOPER_JAVA_TOOLS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications/Java\ Tools
        export SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR\=/Applications/Xcode.app/Contents/Developer/Applications/Performance\ Tools
        export SYSTEM_DEVELOPER_RELEASENOTES_DIR\=/Applications/Xcode.app/Contents/Developer/ADC\ Reference\ Library/releasenotes
        export SYSTEM_DEVELOPER_TOOLS\=/Applications/Xcode.app/Contents/Developer/Tools
        export SYSTEM_DEVELOPER_TOOLS_DOC_DIR\=/Applications/Xcode.app/Contents/Developer/ADC\ Reference\ Library/documentation/DeveloperTools
        export SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR\=/Applications/Xcode.app/Contents/Developer/ADC\ Reference\ Library/releasenotes/DeveloperTools
        export SYSTEM_DEVELOPER_USR_DIR\=/Applications/Xcode.app/Contents/Developer/usr
        export SYSTEM_DEVELOPER_UTILITIES_DIR\=/Applications/Xcode.app/Contents/Developer/Applications/Utilities
        export SYSTEM_DEXT_INSTALL_PATH\=/System/Library/DriverExtensions
        export SYSTEM_DOCUMENTATION_DIR\=/Library/Documentation
        export SYSTEM_KEXT_INSTALL_PATH\=/System/Library/Extensions
        export SYSTEM_LIBRARY_DIR\=/System/Library
        export TAPI_VERIFY_MODE\=ErrorsOnly
        export TARGETED_DEVICE_FAMILY\=1,2
        export TARGETNAME\=iosApp
        export TARGET_BUILD_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Products/Debug-iphonesimulator
        export TARGET_DEVICE_IDENTIFIER\=9FC07D77-DB7B-4039-985E-0BD24EE42800
        export TARGET_DEVICE_MODEL\=iPhone13,2
        export TARGET_DEVICE_OS_VERSION\=14.5
        export TARGET_DEVICE_PLATFORM_NAME\=iphonesimulator
        export TARGET_NAME\=iosApp
        export TARGET_TEMP_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build
        export TEMP_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build
        export TEMP_FILES_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build
        export TEMP_FILE_DIR\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build
        export TEMP_ROOT\=/Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex
        export TEST_FRAMEWORK_SEARCH_PATHS\=\ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Library/Frameworks\ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.5.sdk/Developer/Library/Frameworks
        export TEST_LIBRARY_SEARCH_PATHS\=\ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/lib
        export TOOLCHAINS\=com.apple.dt.toolchain.XcodeDefault
        export TOOLCHAIN_DIR\=/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
        export TREAT_MISSING_BASELINES_AS_TEST_FAILURES\=NO
        export TeamIdentifierPrefix\=7NQCZ5ADBW.
        export UID\=502
        export UNLOCALIZED_RESOURCES_FOLDER_PATH\=iosApp.app
        export UNSTRIPPED_PRODUCT\=NO
        export USER\=my_user
        export USER_APPS_DIR\=/Users/my_user/Applications
        export USER_LIBRARY_DIR\=/Users/my_user/Library
        export USE_DYNAMIC_NO_PIC\=YES
        export USE_HEADERMAP\=YES
        export USE_HEADER_SYMLINKS\=NO
        export USE_LLVM_TARGET_TRIPLES\=YES
        export USE_LLVM_TARGET_TRIPLES_FOR_CLANG\=YES
        export USE_LLVM_TARGET_TRIPLES_FOR_LD\=YES
        export USE_LLVM_TARGET_TRIPLES_FOR_TAPI\=YES
        export VALIDATE_DEVELOPMENT_ASSET_PATHS\=YES_ERROR
        export VALIDATE_PRODUCT\=NO
        export VALIDATE_WORKSPACE\=YES_ERROR
        export VALID_ARCHS\=arm64\ arm64e\ i386\ x86_64
        export VERBOSE_PBXCP\=NO
        export VERSIONPLIST_PATH\=iosApp.app/version.plist
        export VERSION_INFO_BUILDER\=my_user
        export VERSION_INFO_FILE\=iosApp_vers.c
        export VERSION_INFO_STRING\=\"@\(\#\)PROGRAM:iosApp\ \ PROJECT:iosApp-\"
        export WRAPPER_EXTENSION\=app
        export WRAPPER_NAME\=iosApp.app
        export WRAPPER_SUFFIX\=.app
        export WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES\=NO
        export XCODE_APP_SUPPORT_DIR\=/Applications/Xcode.app/Contents/Developer/Library/Xcode
        export XCODE_PRODUCT_BUILD_VERSION\=12E507
        export XCODE_VERSION_ACTUAL\=1251
        export XCODE_VERSION_MAJOR\=1200
        export XCODE_VERSION_MINOR\=1250
        export XPCSERVICES_FOLDER_PATH\=iosApp.app/XPCServices
        export YACC\=yacc
        export arch\=undefined_arch
        export variant\=normal
        /bin/sh -c /Users/my_user/Library/Developer/Xcode/DerivedData/iosApp-gxixacvuxnguydenupeipfhevyeo/Build/Intermediates.noindex/iosApp.build/Debug-iphonesimulator/iosApp.build/Script-7555FFB5242A651A00829871.sh
    
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Build file '/Users/my_user/Develop/projects_a/kmm-production-sample/androidApp/build.gradle.kts' line: 1
    
    * What went wrong:
    An exception occurred applying plugin request [id: 'com.android.application']
    > Failed to apply plugin 'com.android.internal.application'.
       > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
         You can try some of the following options:
           - changing the IDE settings.
           - changing the JAVA_HOME environment variable.
           - changing `org.gradle.java.home` in `gradle.properties`.
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
    
    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
    
    See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
    
    BUILD FAILED in 5s
    Command PhaseScriptExecution failed with a nonzero exit code
    
    

    Java 11 is used by default, JAVA_HOME = /usr/local/Cellar/openjdk@11/11.0.10/libexec/openjdk.jdk/Contents/Home

    opened by ultraon 2
Releases(desktop_web)
Owner
Kotlin
Kotlin Tools and Libraries
Kotlin
A Bluetooth kotlin multiplatform "Cross-Platform" library for iOS and Android

Blue-Falcon A Bluetooth "Cross Platform" Kotlin Multiplatform library for iOS, Android, MacOS, Raspberry Pi and Javascript. Bluetooth in general has t

Andrew Reed 220 Dec 28, 2022
Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web.

Codename One - Cross Platform Native Apps with Java or Kotlin Codename One is a mobile first cross platform environment for Java and Kotlin developers

Codename One 1.4k Jan 9, 2023
Utility - The cross-platform native Kotlin command line tool template

Utility The cross-platform native Kotlin command line tool template. Usage Make

null 0 Jan 3, 2022
Template (pure) for KMM application with DI support

KMM di template Template (pure) for KMM application with DI support. Uses Multiplatform-DI for Dependency Injection Features Common architecture (VIP)

Anna Zharkova 8 Oct 18, 2022
Free & Open-Source External Scripting Platform

LeagueOfJire Free & Open-Source External Scripting Platform What features does this have? All of the feature's source-code can be found in the userscr

Jire 33 Dec 30, 2022
Kotlin Multiplatform Mobile application built using that consumes WakaTime API

Kotlin Multiplatform Mobile application built using that consumes WakaTime API ⏱️ to display user's coding stats such as day's or day's of weeks coding time, coding time for various programming languages or worked on projects etc. on various platforms.

Victor Kabata 17 Nov 30, 2022
KtRssReader is a Kotlin library for parsing RSS feed.

KtRssReader is a Kotlin library for parsing RSS feed.

Ivan 78 Dec 19, 2022
An awesome list that curates the best KMM libraries, tools and more.

Awesome KMM Kotlin Multiplatform Mobile (KMM) is an SDK designed to simplify creating cross-platform mobile applications. With the help of KMM, you ca

Konstantin 994 Dec 28, 2022
Ricky and Morty episode guide using KMM and Apollo GraphQL Native

Ricky And Morty Episodes - Kmm Ricky and Morty episode guide using KMM and Apollo GraphQL Native This is a simple guide on how to create an KMM projec

Julio Ribeiro 2 Apr 15, 2022
use kmm to write a flutter plugin

use KMM to write a flutter plugin The reference plugin_codelab example plugin that accompanies the How to write a Flutter plugin codelab. I changed pl

libill 8 Nov 9, 2022
An unofficial Mangadex app using KMM

Mochi An unofficial Mangadex app using KMM. The app uses Mangadex new Public API, which may change at any time. ☢️ !!!Currently in Production. Not int

Michael24884 2 Jan 25, 2022
Kamper - a small KMM/KMP library that provides performance monitoring for your app.

?? Kamper Kamper is a KMP/KMM library that implements a unified way to track application performances. The solution is based on plugin design patterns

S. Mellouk 31 Jun 10, 2022
Example KMM app for showing about layered architecture

Layered Architecture in a Kotlin Multiplatform project This project was created by a series of posts you can find on my blog https://jflavio.com The d

Jose Flavio Quispe Irrazábal 13 Oct 10, 2022
A simple KMM app

Getting Ready Install latest Android Studio version (I’m using RC Dolphin). Make sure your Kotlin Plugin has 1.7.x version. Make sure you have Ruby ge

Lena Stepanova 2 Sep 20, 2022
Demo for Jetbrains webinar on "How to share data layer in KMM"

RealmDemo Demo application demostrating how to share data layer in an KMM project using Realm Kotlin SDK and Atlas App Service. Webinar Link : https:/

MongoDB Developer Relations 9 Dec 15, 2022
Repository of a multi-platform application running the same Compose source code on all platforms

Compose multiplatform demo demo.mov Using the same compose user interface (UI) from android on all principal platforms ?? ?? App Features This is a si

David Coronel 18 Dec 16, 2022
Kotlin Multiplatform Mobile + Mobile Declarative UI Framework (Jetpack Compose and SwiftUI)

Kotlin Multiplatform Mobile + Mobile Declarative UI Framework (Jetpack Compose and SwiftUI)

Kotchaphan Muangsan 3 Nov 15, 2022
Unsplash application for Android, Desktop and Web. Built using Kotlin Multiplatform and Compose

Unsplash Unsplash application for Android, Desktop and Web. Built using Kotlin Multiplatform and Compose with ❤️ ?? Presentation Set up the environmen

Carlos Mota 15 Nov 11, 2022
Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in Kotlin with Jetpack Compose and a backed in Kotlin hosted on AppEngine.

Conferences4Hall Real life Kotlin Multiplatform project with an iOS application developed in Swift with SwiftUI, an Android application developed in K

Gérard Paligot 98 Dec 15, 2022