- Support for multiple platforms in the same framework.
- Support for Swift, Objective-C and C.
- Support for dynamic frameworks and static libraries.
- Support for Swift Package Manager.
- End of fat binaries.
- Open Current framework project
| class Test { | |
| val names: List<String> | |
| field: MutableList<String> = mutableListOf<String>() | |
| fun doThing() { | |
| names.add("Hello!") | |
| } | |
| } | |
| fun main() { |
| package com.theozgurr.apparchitecture.ui.register | |
| import androidx.compose.animation.ExperimentalAnimationApi | |
| import androidx.compose.ui.ExperimentalComposeUiApi | |
| import androidx.compose.ui.test.assertIsDisplayed | |
| import androidx.compose.ui.test.junit4.createAndroidComposeRule | |
| import androidx.compose.ui.test.onNodeWithTag | |
| import androidx.compose.ui.test.onNodeWithText | |
| import androidx.compose.ui.test.onRoot | |
| import androidx.navigation.NavHostController |
| /* <rootdir>/src/.../Process.kt */ | |
| package js | |
| /** | |
| * Wrapper for the Javascript `process` object. | |
| */ | |
| public external val process: Process | |
| public external interface Process { |
| /* | |
| Copyright 2020 Cedric Kring. | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, |
| @NonNull | |
| public static Fragment instantiate(@NonNull Context context, @NonNull String fname, @Nullable Bundle args) { | |
| try { | |
| ... | |
| Fragment f = clazz.getConstructor().newInstance(); | |
| if (args != null) { | |
| args.setClassLoader(...); | |
| f.setArguments(args); | |
| } | |
| return f; |
| plugins { | |
| `android-base-app` | |
| `android-base` | |
| id("io.fabric") | |
| } | |
| android { | |
| defaultConfig { | |
| versionCode = 20 | |
| versionName = "1.6.3" |
| class CustomScope : CoroutineScope { | |
| private var parentJob = Job() | |
| override val coroutineContext: CoroutineContext | |
| get() = Dispatchers.Main + parentJob | |
| fun onStart() { | |
| parentJob = Job() | |
| } |
| plugins { | |
| id("com.android.application") | |
| } | |
| android { | |
| defaultConfig { | |
| applicationId = "com.example.task" | |
| versionCode = 1 | |
| versionName = "1.0" | |
| } |