Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin - 1 código, 3 plataformas

Kotlin - 1 código, 3 plataformas

Palestra apresentada no DevFest Rio 2018 onde eu falei um pouco das experiências usando Kotlin multi plataforma para Android, iOS e Web

Kotlin - 1 code, 3 platforms
Slides I presented at DevFest Rio 2018, where I spoke a bit about my experiences using Kotlin multi-platform for Android, iOS and Web

Avatar for Lucas Diego

Lucas Diego

November 17, 2018

Other Decks in Programming

Transcript

  1. Library Multi Platform 1. Escreva ou migre sua lib para

    Kotlin 2. Mova tudo que não é específico da plataforma para módulos commom 3. O que for específico da plataforma, deixe como expected 4. Sua lib já pode ser usada em qualquer plataforma
  2. └── src ├── commonMain │ └── kotlin ├── commonTest │

    └── kotlin ├── iosMain │ └── kotlin ├── iosTest │ └── kotlin ├── main │ └── kotlin ├── test └── kotlin Estrutura do projeto Multi Plataform
  3. Commom module - Contem todo código comum compatilhado e deve

    ser limitado à Kotlin - Marca como expected tudo que for "plataform-specific" └── src ├── commonMain │ └── kotlin ├── commonTest │ └── kotlin ├── iosMain │ └── kotlin ├── iosTest │ └── kotlin ├── main │ └── kotlin ├── test └── kotlin Estrutura do projeto Multi Plataform
  4. Commom module - Contem todo código comum compatilhado e deve

    ser limitado à Kotlin - Marca como expected tudo que for "plataform-specific" Plataform module - Marca como actual a implementação do que foi declarado em commom └── src ├── commonMain │ └── kotlin ├── commonTest │ └── kotlin ├── iosMain │ └── kotlin ├── iosTest │ └── kotlin ├── main │ └── kotlin ├── test └── kotlin Estrutura do projeto Multi Plataform
  5. Note que... - Declarações expected não tem implementação - O

    compilador garante que para cada declaração expected, tenha sua implementação no módulo de cada plataforma - Expected não está restrito a interfaces. O modificador expect pode ser aplicado para outras declarações, incluindo anotations.
  6. iOS

  7. iOS

  8. WEB

  9. WEB

  10. https://github.com/diegolucasb/kotlin-multi-plataform No projeto foi usado: IntelliJ IDEA CE 2018.2.6 (Comunity

    Edition) Android Studio 3.3 Preview Gradle 4.7 XCode 10.0.0 Kotlin 1.3.10-release-IJ2018.2-1
  11. Referências: - https://kotlinlang.org/docs/reference/multiplatform.html - https://www.youtube.com/watch?v=afc5PUs_EPE - https://github.com/MarcinMoskala/KotlinMultiplatformExample - https://hadihariri.com/2017/11/10/multiplatform-projects-with-kotlin/ -

    https://github.com/Albert-Gao/kotlin-native-mobile-multiplatform-example - https://proandroiddev.com/targeting-kotlin-for-both-android-and-ios-dec5b967006a - https://blog.novoda.com/introduction-to-kotlin-multiplatform/