AppCode helper for Kotlin/Native and Xcode

Related tags

xcode-compat
Overview

JetBrains incubator project

Kotlin Xcode compatibility Gradle plugin

The plugin is used by AppCode to set up Kotlin/Native project along with Xcode

Sources

A multi-build sample with:

  1. plugin a Gradle plugin implemented in Kotlin and taking advantage of the kotlin-dsl plugin,
  2. consumer a build that uses the Gradle plugin above.

Run with:

./gradlew consumer

This will build and publish the Gradle plugin locally ; and then run the task contributed by this plugin in the consumer build.

License

Apache 2.0. See LICENSE file in the repostiory for details

Issues
  • Add basic support for generating Xcode project

    Add basic support for generating Xcode project

    opened by SvyatoslavScherbina 3
  • Sync only the artifacts produced by us, avoid deleting the rest of th…

    Sync only the artifacts produced by us, avoid deleting the rest of th…

    …e content in the directory

    opened by stigger 0
  • Compatibility 1360

    Compatibility 1360

    opened by ddolovov 0
  • Changing NativeBinary.setupTask function visibility

    Changing NativeBinary.setupTask function visibility

    This is a proposal to change the NativeBinary.setupTask function visibility. Changing the visibility of this function will enable the possibility to call it from other build processes outside.

    Now it is not possible to use the setupFramework function for some cases since it will automatically find a target and use it, not enabling the possibility to use your own configured target.

    opened by Danilo-Araujo-Silva 0
  • Add iosTest task

    Add iosTest task

    This plugin currently automates one piece of common boilerplate by generating a gradle task to copy generated frameworks to xcode. Another piece of common boilerplate in Kotlin/Native iOS projects is an iosTest task, which looks something like

    task iosTest(dependsOn: 'linkDebugTestIosX64') {
        doLast {
            def testBinaryPath = kotlin.targets.iosSim.binaries.getTest('DEBUG').outputFile.absolutePath
            exec {
                commandLine 'xcrun', 'simctl', 'spawn', "iPhone Xʀ", testBinaryPath
            }
        }
    }
    

    Could this task also be generated by the plugin?

    opened by russhwolf 0
  • Configure Xcode project task

    Configure Xcode project task

    Right now it is hard to attach a K/N Framework into Xcode. Wizards to help, but probably are not enough. The idea is to create a task for the plugin. One calls it with the sourceSet name (of Kotlin/Native Framework) and the path to Xcode project. The task patches Xcode project to include the Framework. The implementation may decide automatically to use CocoaPods integration or not.

    I see the following from my own behavior:

    • I trust Xcode (only) to create a new iOS project (too many things that my go wrong)
    • I have a K/N project with the code to re-use
    • I want to try it (it should be a one-click action, not a struggle as of now)
    • I'm fine using Xcode and IntelliJ for that (my goal is to reuse code, not to try yet another IDE losing the flow)
    opened by jonnyzzz 0
  • Use same Java as in IntelliJ

    Use same Java as in IntelliJ

    It is possible to run Gradle in IntelliJ with one JRE while having the other one as default JRE on the system. Different JREs will make Gradle start several different Gradle wrappers.

    It will be better to use the same JRE as it was from IntelliJ/AndroidStudio via generating a dedicated script that is used from Xcode build

    opened by jonnyzzz 0
  • Cannot manually register framework

    Cannot manually register framework

    By default, the plugin uses Xcode environment variable to create the framework. It is hard-to-impossible to add such framework to Xcode project manually, because

    • "CONFIGURATION_BUILD_DIR" may point to sandbox folder
    • "CONFIGURATION_BUILD_DIR" may contain build target name (thus hardcoding it to Xcode project is not intended)

    Let's add an option to store frameworks under Gradle's buildDir folder instead

    opened by jonnyzzz 0
  • buildForXcode task should not crash

    buildForXcode task should not crash

    Running the buildForXcode from IntelliJ IDEA should not make it crash, It should detect the execution context and generate iOS simulator binary

    opened by jonnyzzz 0
  • The generated task should be in `build` group

    The generated task should be in `build` group

    The generated task buildForXcode should be visible in the build group, right now it is shown in the other group

    opened by jonnyzzz 0
  • Project does not compile as described in README

    Project does not compile as described in README

    Running the command: $ ./gradlew consumer

    Yields the following output:

    Task :plugin FAILED

    FAILURE: Build failed with an exception.

    • What went wrong: Project directory '/XXX/kotlin-xcode-compat/plugin' is not part of the build defined by settings file '/XXX/kotlin-xcode-compat/settings.gradle.kts'. If this is an unrelated build, it must have it's own settings file.
    opened by dtornqvist 1
Owner
Kotlin
Kotlin Tools and Libraries
Kotlin
AppCode helper for Kotlin/Native and Xcode

Kotlin Xcode compatibility Gradle plugin The plugin is used by AppCode to set up Kotlin/Native project along with Xcode Sources A multi-build sample w

Kotlin 22 Feb 15, 2021
Sync Kotlin files with an Xcode project

Kotlin Xcode Sync Note Soon to be deprecated. You can add folder references instead. See here. Import kotlin files into an Xcode project. This is used

null 24 May 1, 2021
KaMP Kit by Touchlab is a collection of code and tools designed to get your mobile team started quickly with Kotlin Multiplatform.

KaMP Kit Welcome to the KaMP Kit! About Goal The goal of the KaMP Kit is to facilitate your evaluation of Kotlin Multiplatform (aka KMP). It is a coll

Touchlab 1.2k Aug 2, 2021
Kotlin Multiplatform Mobile App Template

KMMT : Kotlin Multiplatform Mobile Template Kotlin Multiplatform Mobile Development Simplified KMMT is a KMM based project template designed to simpli

Jitty Andiyan 117 Jul 19, 2021
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 1k Aug 5, 2021
Mobile client for official Nextcloud News App written as Kotlin Multiplatform Project

Newsout Android and iOS mobile client for Nextcloud news App. The Android client is already available to download in the Play Store. F-Droid and Apple

Simon Schubert 117 Apr 16, 2021
A React Native library making file access easier for developers as first class citizens, without the tears

React Native File Gateway A React Native library making file access easier for developers as first class citizens, without the tears. ⚠️ NOTE: This li

Jimmy Wei 4 Jun 6, 2021
Generic AST parsing library for kotlin multiplatform

kotlinx.ast kotlinx.ast is a generic AST (Abstract Syntax Tree) parsing library, Kotlin is currently the only supported language. The library is desig

null 140 Jul 27, 2021
DI can be simple. Forget about modules and components. Just use it!

PopKorn - Kotlin Multiplatform DI PopKorn is a simple, powerful and lightweight Kotlin Multiplatform Dependency Injector. It doesn't need any modules

Pau Corbella 109 May 22, 2021
Design Patterns implemented in Kotlin

Design Patterns In Kotlin ⚠️ New article about testing: Unit Testing with Mockito 2 Project maintained by @dbacinski (Dariusz Baciński) Inspired by De

Dariusz Baciński 4.8k Jul 28, 2021
YouTube Player library for Android and Chromecast, stable and customizable.

android-youtube-player android-youtube-player is a stable and customizable open source YouTube player for Android. It provides a simple View that can

Pierfrancesco Soffritti 2.4k Aug 4, 2021
TensorFlow Lite Helper for Android to help getting started with TesnorFlow.

TensorFlow Lite Helper for Android This library helps with getting started with TensorFlow Lite on Android. Inspired by TensorFlow Lite Android image

Ahmed Gamal 24 May 27, 2021
[Android Library] A SharedPreferences helper library to save and fetch the values easily.

Preference Helper A SharedPreferences helper library to save and fetch the values easily. Featured in Use in your project Add this to your module's bu

Naveen T P 13 Apr 4, 2020
BuildConfig for Kotlin Multiplatform Project

BuildKonfig BuildConfig for Kotlin Multiplatform Project. It currently supports embedding values from gradle file. Table Of Contents Motivation Usage

Yasuhiro SHIMIZU 187 Jul 28, 2021