All Projects → flowkey → Uikit Cross Platform

flowkey / Uikit Cross Platform

Licence: other
Cross-platform Swift implementation of UIKit, mostly for Android

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Uikit Cross Platform

Crosswindow
💻📱 A cross platform system abstraction library written in C++ for managing windows and performing OS tasks.
Stars: ✭ 155 (-63.18%)
Mutual labels:  cmake, cross-platform, uikit
Skui
Skia-based C++ UI framework
Stars: ✭ 218 (-48.22%)
Mutual labels:  cmake, cross-platform
Engine
A basic cross-platform 3D game engine
Stars: ✭ 208 (-50.59%)
Mutual labels:  cmake, cross-platform
Ultralight
Next-generation HTML renderer for apps and games
Stars: ✭ 3,585 (+751.54%)
Mutual labels:  cmake, cross-platform
Openscenegraph
OpenSceneGraph git repository
Stars: ✭ 2,321 (+451.31%)
Mutual labels:  cmake, opengl-es
Magnum Examples
Examples for the Magnum C++11/C++14 graphics engine
Stars: ✭ 180 (-57.24%)
Mutual labels:  cmake, opengl-es
Rabbittoolbox
🤸🏾‍♀️👗开源的动画渲染软件,提倡以简单、易用,高质量的物理演算以及渲染质量和性能,为喜爱二次元动画的用户降低视频制作门槛
Stars: ✭ 309 (-26.6%)
Mutual labels:  opengl-es, cross-platform
Androidsecurity
Android安全实践
Stars: ✭ 150 (-64.37%)
Mutual labels:  cmake, ndk
Anese
Another NES Emulator - written for fun & learning - first implementation of wideNES
Stars: ✭ 323 (-23.28%)
Mutual labels:  cmake, cross-platform
Reproc
A cross-platform (C99/C++11) process library
Stars: ✭ 325 (-22.8%)
Mutual labels:  cmake, cross-platform
Obengine
2D Game Engine with Lua Scripting made on top of SFML !
Stars: ✭ 335 (-20.43%)
Mutual labels:  cmake, cross-platform
Div Games Studio
Complete cross platform games development package, originally for DOS but now available on modern platforms.
Stars: ✭ 168 (-60.1%)
Mutual labels:  cmake, cross-platform
Raz
Modern & multiplatform game engine in C++17
Stars: ✭ 161 (-61.76%)
Mutual labels:  cmake, cross-platform
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-53.21%)
Mutual labels:  cmake, cross-platform
Hp Socket
High Performance TCP/UDP/HTTP Communication Component
Stars: ✭ 4,420 (+949.88%)
Mutual labels:  ndk, cross-platform
Camera2GLPreview
Android camera preview application using Camera2 API and OpenGL ES/Vulkan
Stars: ✭ 140 (-66.75%)
Mutual labels:  ndk, opengl-es
Notepanda
📃 A simple cross-platform notepad. Based on Qt and C++.
Stars: ✭ 134 (-68.17%)
Mutual labels:  cmake, cross-platform
Polyfem
A polyvalent C++ FEM library
Stars: ✭ 147 (-65.08%)
Mutual labels:  cmake, cross-platform
Python Cmake Buildsystem
A cmake buildsystem for compiling Python
Stars: ✭ 317 (-24.7%)
Mutual labels:  cmake, cross-platform
Ark
ARK is a lightweight, agility, elastic, distributed plugin framework written in C++,make it easier and faster to create your own application service.
Stars: ✭ 370 (-12.11%)
Mutual labels:  cmake, cross-platform

CircleCI Swift4.1 Platforms License codecov

UIKit-cross-platform

Your Swift UI Code on Android

UIKit-cross-platform is a UI framework for native apps, which enables code targeting iOS UIKit to run on other platforms, particularly on Android.

Goal

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.

How to run your iOS Project on Android

  1. Create new iOS Project or open an existing one
  2. Prepare your iOS Project
  3. Add UIKit-cross-platform to your project
  4. Run ./UIKit/create-android-project from the root of your iOS project
  5. Open ./android folder in Android Studio (install Android SDKs if necessary) and press "run" button

Try out the demo

This project includes a DemoApp which runs on iOS, Android and Mac.

How to run it on different platforms:

  1. Clone this project, cd into it and run git submodule update --init --recursive
  2. Open ./samples/getting-started/DemoApp.xcodeproj in Xcode
    1. Run DemoApp target for the iOS App
    2. Run DemoAppMac target for the Mac App
  3. Open ./samples/getting-started/android with Android Studio (install Android SDKs if necessary)
  4. Connect an Android device and press "Run" for the Android App

Additional setup instructions

Adding UIKit-cross-platform

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 [email protected]:flowkey/UIKit-cross-platform.git UIKit && git submodule update --init --recursive UIKit

Setup build environment

  1. Install Cmake > 3.16 and Ninja
brew install cmake && brew install ninja
  1. Install Android Studio
  2. Add SDKs in Android Studio
    1. Open Preferences in Android Studio
    2. Go to Appearance & Behavior -> System Settings -> Android SDK
    3. under SDK Platforms: tick checkbox for API Level 29 (latest should always work)
    4. under SDK Tools, tick the box for Android SDK Tools
    5. Press Apply / OK to install SDKs

Architecture

UIKit-cross-platform renders with SDL_gpu which translates down to lower-level OpenGL instructions.

On Android, Swift Package Manager compiles Swift Code into native binaries, which are called through the NDK.

More detailed information about the architecture can be found here

API documentation

This framework uses the Apple UIKit API, therefore the official Apple Docs serve as documentation for the already implemented features.

How to contribute

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.

FAQs / Troubleshooting

Our FAQs can be found here (Work In Progress).

Please contact us regarding upcoming issues on Spectrum or create a new Issue.

License

UIKit-cross-platform is free software; you can redistribute it and/or modify it under the terms of the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].