GithubHelp home page GithubHelp logo

gadgeurx / mapts Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pink-room/kotlin-multiplatform-template

1.0 1.0 0.0 2.97 MB

Kotlin Multiplatform Template

License: Apache License 2.0

Kotlin 87.62% Swift 5.48% HTML 6.81% Ruby 0.09%

mapts's Introduction

MAPTS

This is a Kotlin Multiplatform small project that implement a login form and map display to test multiplatform project.

You must use IntellijIDEA as the main IDE. However, the Android client was developed in Android Studio and the iOS client with Xcode.


ArchitectureBackendWebAndroidiOS


Info

As opposed to other cross-platform approaches, Kotlin doesn't want you to write your code once and compile it to multiple platforms. Instead, it focus on sharing the part of the code that contains logic and left the platform specific part to be implemented natively using its specific SDK's.

Architecture

The architecture of this project is composed by one common module and its platform specific implementations (jvm, js and ios). A common-client module and the platform specific modules. One backend and three clients (android, ios and web).

Project Architecture

  • common: Contains all the common code shared between the modules. In this case are only the data models.
  • common-jvm/js/ios: Where the common platform specific implementations are placed.
  • common-client: Where the clients common code is implemented. Such as the business and presentation logic.
  • common-client-jvm/js/ios: Responsible for the common client specific implementations.
  • backend: Contains the server logic and a REST API.
  • android: Responsible for the android clients.
  • ios: The iOS client ...
  • web: The web client.

The common module contains only the data models since it's the only code that we want to share between the backend and the client modules.

The common-client module is responsible to implement the repositories and presenters. This is the code that we want to share only between clients

Clients only need to implement the View part that is specific for each platform.

Backend

The backend is implemented using the ktor framework.

To run it, simply execute ./gradlew :backend:run in the root of the project and the server will start listening at localhost:8080.

Android

Android Screens

iOS

Currently the ios client is not implemented due to my lack of competence

Web

Web Screen

Currently, we are only using Kotlin/JS in order to manipulate the DOM. Some part are also write in Vue.Js for testing purpose.

Run it with ./gradlew :web:run and then open it on your browser.

mapts's People

Contributors

bffcorreia avatar gadgeurx avatar mgago avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.