All Projects → moallemi → Kotlin Multiplatform Showcase

moallemi / Kotlin Multiplatform Showcase

Licence: apache-2.0
A real minimal app illustrating Kotlin Multiplatform

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to Kotlin Multiplatform Showcase

Coremldemo
A simple demo for Core ML
Stars: ✭ 90 (+76.47%)
Mutual labels:  ios-app, xcode
Swiftui Tutorials
A code example and translation project of SwiftUI. / 一个 SwiftUI 的示例、翻译的教程项目。
Stars: ✭ 1,992 (+3805.88%)
Mutual labels:  ios-app, xcode
Phimpme Ios
Phimp.me - Photo Image Editor and Sharing App. Phimp.me is a Photo App for iOS that aims to replace proprietary photo applications. It offers features such as taking photos, adding filters, editing images and uploading them to social networks.
Stars: ✭ 79 (+54.9%)
Mutual labels:  ios-app, xcode
Eventkit
A template conference app, featuring real-time schedule and data changes & running on Realm 🚀
Stars: ✭ 59 (+15.69%)
Mutual labels:  ios-app, xcode
Ios Open Gpx Tracker
GPS Tracker app for iOS + WatchOS. Log your tracks without limits and share them; Open source GPX tracker app written in Swift
Stars: ✭ 344 (+574.51%)
Mutual labels:  ios-app, xcode
Expandable Table View
Expandable UITableView in iOS
Stars: ✭ 180 (+252.94%)
Mutual labels:  ios-app, xcode
Stompclientlib
Simple STOMP Client library, Swift 3 and 4, 4.2, 5 compatible
Stars: ✭ 99 (+94.12%)
Mutual labels:  ios-app, xcode
Example Ios Apps
 A curated list of Open Source example iOS apps developed in Swift. An amazing list for people who are beginners and learning ios development and for ios developers who need any example app or feature.
Stars: ✭ 461 (+803.92%)
Mutual labels:  ios-app, xcode
Expenso Ios
A Simple Expense Tracker App built to demonstrate the use of SwiftUI, CoreData, Charts, Biometrics (Face & Touch ID) and MVVM Architecture.
Stars: ✭ 191 (+274.51%)
Mutual labels:  ios-app, xcode
Qrcodereader
Barcode and QR code reader built in Swift
Stars: ✭ 237 (+364.71%)
Mutual labels:  ios-app, xcode
React Native Mixpanel
A React Native wrapper for Mixpanel tracking
Stars: ✭ 451 (+784.31%)
Mutual labels:  ios-app, xcode
Icepa
iOS system-wide VPN based Tor client
Stars: ✭ 519 (+917.65%)
Mutual labels:  ios-app, xcode
San Jose
Custom Xcode theme inspired by Apple's WWDC 2017
Stars: ✭ 43 (-15.69%)
Mutual labels:  xcode
Swiftysampleproject
A starter project for Sample Project in swift 3.0/4.0 (also bridging header included so you could use objective c code in it as well ). For objectiveC version : https://github.com/xeieshan/SampleProject > Supports iOS 8.4+ > Swift 4.x
Stars: ✭ 47 (-7.84%)
Mutual labels:  xcode
Chineseidcardocr
[Deprecated] 🇨🇳中国二代身份证光学识别
Stars: ✭ 1,015 (+1890.2%)
Mutual labels:  xcode
Imagecoordinatespace
UICoordinateSpace for UIImageView image
Stars: ✭ 42 (-17.65%)
Mutual labels:  xcode
Swiftymessenger
Swift toolkit for passing messages between iOS apps and extensions.
Stars: ✭ 48 (-5.88%)
Mutual labels:  xcode
Scxcodeminimap
Sublime Text like Minimap for Xcode
Stars: ✭ 1,037 (+1933.33%)
Mutual labels:  xcode
React Native Alternate Icons
React Native Alternate Icons for iOS 10.3+
Stars: ✭ 42 (-17.65%)
Mutual labels:  xcode
Ios Oss
Kickstarter for iOS. Bring new ideas to life, anywhere.
Stars: ✭ 7,840 (+15272.55%)
Mutual labels:  ios-app

Kotlin Multiplatform Showcase

A minimal app illustrating Kotlin Multiplatform. Currently running on

  • Android (available on Google Play)
  • iOS (Rejected by Apple!)
  • Web (view Demo)
  • Web-React (in progress)
  • macOS (TODO)
  • CLI (TODO)

Project Structure

This project consists of several gradle modules as well as an xcode project.

Shared

This is the central module which contains shared client code. It includes an Api class with a method to query the apps endpoint using the Ktor http client.

Android

This is an Android project consuming the :shared module. It contains a single activity which calls the viewModel.load() function and displays its output in UI.

iOS

The iOS app code is in the iosApp directory. It uses SwiftUI to render output to screen.

Server

This is a simple Ktor server running on the Netty engine with a single endpoint /api/v1/apps, which outputs a list of Apps object serialized to JSON.

Note that this repository may have not used the best practices on android or iOS implementation to help more clearly illustrate key parts of a Kotlin Multiplatform project and also to help someone just starting to explore KMP for the first time.

Libraries and tools used

Development setup

  • Android: For development, the latest version of Android Studio 4.0+ is required.
  • iOS: The iOS code can be modified or built by opening iosApp/KmpShowcase.xcodeproj in Xcode.
  • Server: Running ./gradlew server:run will deploy the server to localhost on port 9090.
  • Web: Running ./gradlew web:run -t will run web client on localhost.
  • WebReact: Running ./gradlew webReact:run -t will run web React client on localhost.

Once you setup the project, you might want to change server address in your ~/.gradle/gradle.properties:

KMP_SHOWCASE_API_BASE_URL_DEFAULT=<insert> // default: http://localhost:9090
KMP_SHOWCASE_API_BASE_URL_ANDROID=<insert> // default: http://10.0.2.2:9090
KMP_SHOWCASE_API_BASE_URL_IOS_X64=<insert> // default: http://localhost:9090
KMP_SHOWCASE_API_BASE_URL_IOS_ARM64=<insert> // default: http://localhost:9090

Contributions

If you've found an error in this sample or you want to improve the project, please read the Contributing Guide first.

Patches are encouraged, and may be submitted by forking this project and submitting a pull request. Since this project is still in its very early stages, if your change is substantial, please raise an issue first to discuss it.

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].