You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Sebastian Aigner 364a916740
Various improvements for multiplatform template README (#2834)
2 years ago
..
.run Add iOS target to multiplatform template (#2788) 2 years ago
androidApp Add iOS target to multiplatform template (#2788) 2 years ago
desktopApp Add iOS target to multiplatform template (#2788) 2 years ago
gradle/wrapper Revert "Introduce Config.xconfig" 2 years ago
iosApp Introduce Config.xсconfig (#2792) 2 years ago
shared Add resources component to multiplatform template (#2796) 2 years ago
.gitignore Add iOS target to multiplatform template (#2788) 2 years ago
README.md Various improvements for multiplatform template README (#2834) 2 years ago
build.gradle.kts Add iOS target to multiplatform template (#2788) 2 years ago
cleanup.sh Introduce Config.xсconfig (#2792) 2 years ago
gradle.properties Add resources component to multiplatform template (#2796) 2 years ago
gradlew Copy templates to experimental as is ... (#2786) 2 years ago
gradlew.bat Copy templates to experimental as is ... (#2786) 2 years ago
settings.gradle.kts Add iOS target to multiplatform template (#2788) 2 years ago

README.md

Compose Multiplatform Application

Use this template to start developing your own Compose Multiplatform application targeting desktop, Android, and iOS (experimental).

Desktop

This template contains desktopApp run configuration that you can use to run the desktop target in Android Studio or IntelliJ IDEA.

Useful Gradle tasks:

  • ./gradlew run - run application
  • ./gradlew package - package native distribution into build/compose/binaries

Android

To run on Android, use the androidApp run configuration in Android Studio or use Gradle:

./gradlew installDebug - install Android application on an Android device (on a real device or on an emulator)

iOS

Make sure you have set up your environment for mobile development with Kotlin Multiplatform. A detailed guide on how to set up your environment is available in the Kotlin Multiplatform documentation.

To work with the iOS target you need:

Before opening the project in Android Studio, make sure that your environment is set up for iOS and Kotlin Multiplatform development. Use kdoctor to ensure your development environment is configured correctly.

We suggest going through the "Hello, World" steps of creating and deploying a sample project in Xcode to a simulator and/or your physical device. A video tutorial for setting up Xcode and running your first "Hello, World" application is available in this Standford CS193P lecture recording.

Running on an iOS simulator

Once you have configured your environment correctly, you will be able to select which iOS simulator to run your application in Android Studio on by modifying the iosApp run configuration.

Select "Run" | "Edit Configurations..." and navigate to the "iOS Application" | "iosApp" run configuration. In the "Execution target" drop-down, select your target device.

Running on a real iOS device

Running your Compose Multiplatform application on a physical device can be done for free. You need:

  • an Apple ID
  • the registered iOS device in Xcode

Running with a free Personal Team

If you use a free Personal Team for signing applications to run on a real device, you'll have to find your team ID.

The easiest way is to refer to your "Hello, World" project that you created while setting up your development environment. Use your terminal to navigate to the folder where you have created the Xcode project (.xcodeproj) and run the following command:

grep -r "DEVELOPMENT_TEAM"

In your multiplatform project, navigate to iosApp/Configuration/Config.xcconfig and set the TEAM_ID to the value you've gotten from the previous command.

Alternative approaches

To see your local team ID, you try running security find-certificate -c "Apple Development" -p | openssl x509 -noout -text | grep --color 'OU=\w\w\w\w*' in your terminal.

If you're running into trouble with the method described above, you can try this alternative method.

  • Run the iosApp run configuration from Android Studio (it will fail)
  • Open the iosApp/iosApp.xcworkspace in Xcode
  • Select iosApp in the menu on the left side
  • Navigate to "Signing & Capabilities"
  • Select your Personal Team in the "Team" dropdown. If you haven't set up your team, use the "Add account..." option and follow the steps inside Xcode.

After that you can open the project in Android Studio, and it will show the registered iOS device in the iosApp run configuration.

Running with a paid Team

  • Find your Team ID.
  • set this Team ID in iosApp/Configuration/Config.xcconfig in the TEAM_ID field

After that you can open the project in Android Studio, and it will show the registered iOS device in the iosApp run configuration.

Configuring the iOS application

This template contains a iosApp/Configuration/Config.xcconfig configuration file that allows you to configure most basic properties without having to move to Xcode. It contains:

Note: To configure the APP_NAME setting, open Config.xcconfig in any text editor before opening the project in Android Studio, and set the desired name.

If you need to change this setting after you open the project in Android Studio, please do the following:

  • close the project in Android Studio
  • run ./cleanup.sh in your terminal
  • change the setting
  • open the project in Android Studio again

For configuring advanced settings, you can use Xcode. Open the iosApp/iosApp.xcworkspace in Xcode after opening the project in Android Studio, and use Xcode to make your changes.