UIKit-cross-platform is a UI framework for native apps, which enables code targeting iOS UIKit to run on other platforms, particularly on Android.
Currently in mobile development apps have to be written twice, for iOS and Android, or native performance has to be sacrificed with a cross-platform solution such as React Native.
This framework aims to combine both advantages, having native performance and writing code only once but still keeping a native look & feel.
./UIKit/create-android-project
from the root of your iOS project./android
folder in Android Studio (install Android SDKs if necessary) and press "run" buttonThis project includes a DemoApp which runs on iOS, Android and Mac.
How to run it on different platforms:
cd
into it and run git submodule update --init --recursive
./samples/getting-started/DemoApp.xcodeproj
in Xcode
DemoApp
target for the iOS AppDemoAppMac
target for the Mac App./samples/getting-started/android
with Android Studio (install Android SDKs if necessary)UIKit-cross-platform
has to be added as a dependency to your project including its subdependencies.
The recommended way is to use git submodules
to add it to an UIKit
subdirectory.
In order to do so use the following command:
git submodule add git@github.com:flowkey/UIKit-cross-platform.git UIKit && git submodule update --init --recursive UIKit
brew install cmake && brew install ninja
Android SDK Build Tools
Show Package Details
to see all available versions)/usr/local/ndk/21.4.7075529/
pointing to the path of the NDK (ln -vsi ~/Library/Android/sdk/ndk/21.4.7075529 /usr/local/ndk/21.4.7075529
)UIKit-cross-platform renders with SDL_gpu which translates down to lower-level OpenGL instructions.
On Android, CMake compiles Swift Code into native binaries via Ninja, which are called through the NDK.
More detailed information about the architecture can be found here
This framework uses the Apple UIKit API, therefore the official Apple Docs serve as documentation for the already implemented features.
Contributions are very welcome and helpful 🙌
If you are looking for a feature or find a bug, please create an Issue.
For additional information please refer to our contribution guidelines.
UIKit-cross-platform is free software; you can redistribute it and/or modify it under the terms of the MIT License.