All Projects → jstuyts → kotlin-multiplatform-recipes

jstuyts / kotlin-multiplatform-recipes

Licence: MIT license
Recipes for building multi-platform Kotlin modules.

Programming Languages

kotlin
9241 projects
HTML
75241 projects

Projects that are alternatives of or similar to kotlin-multiplatform-recipes

Kotatogram Desktop
Experimental Telegram Desktop fork.
Stars: ✭ 200 (+156.41%)
Mutual labels:  multi-platform
Panda3d
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU
Stars: ✭ 3,035 (+3791.03%)
Mutual labels:  multi-platform
goreleaser-xx
Cross compilation helper for GoReleaser
Stars: ✭ 34 (-56.41%)
Mutual labels:  multi-platform
Leaf
Lightweight Error Augmentation Framework
Stars: ✭ 201 (+157.69%)
Mutual labels:  multi-platform
Etlegacy
ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
Stars: ✭ 212 (+171.79%)
Mutual labels:  multi-platform
Examples wxWidgets
Shows how to use wxWidgets controls only by programming code (c++17).
Stars: ✭ 116 (+48.72%)
Mutual labels:  multi-platform
Magpie Luckydraw
🏅A fancy lucky-draw tool supporting multiple platforms💻(Mac/Linux/Windows/Web/Docker)
Stars: ✭ 179 (+129.49%)
Mutual labels:  multi-platform
jExifToolGUI
jExifToolGUI is a multi-platform java/Swing graphical frontend for the excellent command-line ExifTool application by Phil Harvey
Stars: ✭ 267 (+242.31%)
Mutual labels:  multi-platform
Libuiohook
A multi-platform C library to provide global keyboard and mouse hooks from userland.
Stars: ✭ 237 (+203.85%)
Mutual labels:  multi-platform
docker-firefox-syncserver
Firefox Sync Server Docker image
Stars: ✭ 169 (+116.67%)
Mutual labels:  multi-platform
Dock
A docking layout system.
Stars: ✭ 204 (+161.54%)
Mutual labels:  multi-platform
Esenthelengine
Full Source of Esenthel Engine and its Tools
Stars: ✭ 204 (+161.54%)
Mutual labels:  multi-platform
ocsigen-start
Ocsigen-start: an Eliom application skeleton ready to use to build your own application with users, (pre)registration, notifications, etc.
Stars: ✭ 70 (-10.26%)
Mutual labels:  multi-platform
Saldl
A lightweight well-featured CLI downloader optimized for speed and early preview.
Stars: ✭ 203 (+160.26%)
Mutual labels:  multi-platform
gtkmm-plplot
a scientific plotting library for Gtkmm leveraging the power of PLplot
Stars: ✭ 59 (-24.36%)
Mutual labels:  multi-platform
Engine
Cocos Creator is a complete package of game development tools and workflow, including a game engine, resource management, scene editing, game preview, debug and publish one project to multiple platforms.
Stars: ✭ 2,574 (+3200%)
Mutual labels:  multi-platform
Tdesktop
Telegram Desktop messaging app
Stars: ✭ 17,508 (+22346.15%)
Mutual labels:  multi-platform
Xamarin.Forms.Platform.Avalonia
Xamarin Forms platform implemented with Avalonia (A multi-platform .NET UI framework)
Stars: ✭ 36 (-53.85%)
Mutual labels:  multi-platform
smooth
The smooth Class Library
Stars: ✭ 23 (-70.51%)
Mutual labels:  multi-platform
DialogHost.Avalonia
AvaloniaUI control that provides a simple way to display a dialog with information or prompt the user when information is needed
Stars: ✭ 92 (+17.95%)
Mutual labels:  multi-platform

NO LONGER RELEVANT

Multi-platform Kotlin has undergone signifcant changes after I stopped updating this. Please see the current documentation.

Recipes for Multi-Platform Kotlin Modules

This project is a testbed for multi-platform Kotlin modules. It shows how you could implement modules that have code that is common for all platforms, and that may need platform-specific code for (some of) its types and functions.

Note that you have to change settings in IntelliJ IDEA to be able to build the project and run the examples from your IDE. See the item about IntelliJ IDEA under current issues below.

Recipes for unit tests for common and platform-specific code are available. Execute the following command to run the Java tests. The test output can be found in jvm/build/reports/tests/test/index.html:

./gradlew :jvm:test

Execute the following command to run the JavaScript tests. The test output can be found in the build output:

./gradlew :js:test

Current Issues

Not everything is working as it should as multi-platform support is still being developed. This is the list of known issues:

  • IntelliJ IDEA support using stable plug-ins is broken. The experience should be better with an EAP or development build, and using the associated Gradle plug-in and standard library from the Kotlin development repository:
    • You have to build and run the examples using the Gradle runner by enabling the following setting: Settings › Build, Execution, Deployment › Build Tools › Gradle › Runner › Delegate IDE build/run actions to gradle), or use the command line. To run the Java app:

        ./gradlew :jvm-app:run
      

      Or to run the JavaScript app:

        ./gradlew :js-app:runDceKotlinJs
      

      And open js-app/JsApp.html. The JavaScript has been mapped to the sources of the Kotlin standard library and module js, so you can set breakpoints in Kotlin code. Note that for some reason, the source maps are not available if you open the browser from within IntelliJ. Copy the file path of jsApp.html and paste that in the address bar of your browser.

      If you want to use the minified JavaScript run:

        ./gradlew :js-app:minifyJs
      

      And open js-app/JsApp-minified.html.

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