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

CodeFest 2018. Дмитирй Грязин (Avito) — Kotlin:...

CodeFest 2018. Дмитирй Грязин (Avito) — Kotlin: новые перспективы кроссплатформенной разработки

Посмотрите выступления Дмитрия: https://2018.codefest.ru/lecture/1263/

Доклад будет посвящен кроссплатформеной разработке на Kotlin. Расскажу про то какие возможности Kotlin позволяет получить и про то чем Kotlin не является.

CodeFest

April 09, 2018
Tweet

More Decks by CodeFest

Other Decks in Technology

Transcript

  1. Cross-platform 6 Xamarin PhoneGap React Native Intel XDK, Intel MultiOS

    engine Titanium, Ionic, J2ObjC, Mobile Angular, Unity...
  2. Kotlin native сегодня Могу ли я: - Использовать С-библиотеки? -

    Писать Android-приложения? - Писать iOS-приложения? - Писать Android- / iOS-приложения? 29
  3. С-библиотеки cinterop → .klib CPointer<T> CPointer<CPointerVar<ByteVar>> COpaquePointer CValuesRef<T> CValue<T> StableObjPtr

    40 .reinterpret<IntVar>() nativeHeap.alloc nativeHeap.allocArray nativeHeap.free memScoped { }
  4. С-библиотеки cinterop → .klib CPointer<T> CPointer<CPointerVar<ByteVar>> COpaquePointer CValuesRef<T> CValue<T> StableObjPtr

    41 .reinterpret<IntVar>() nativeHeap.alloc nativeHeap.allocArray nativeHeap.free memScoped { } staticCFunction { } ...
  5. Kotlin native сегодня Могу ли я: - Использовать С-библиотеки? ДА,

    но… - Писать Android-приложения? ДА, но... 47
  6. iOS-приложения - CMake + cinterop? - No XCode support. CLion?

    - @ExportObjCClass - @konan.internal.Intrinsic external fun <T : ObjCObjectBase> T.initBy 52
  7. Kotlin native сегодня Могу ли я: - Использовать С-библиотеки? ДА,

    но… - Писать Android-приложения? ДА, но… - Писать iOS-приложения? ДА, но… 53
  8. Android- / iOS-приложения 56 Common Business logic Android UI iOS

    UI UI libs SDK UI libs SDK View Binding View Binding
  9. Android- / iOS-приложения 57 ? Android UI iOS UI UI

    libs SDK UI libs SDK View Binding View Binding
  10. Android- / iOS-приложения 58 Android UI iOS UI UI libs

    SDK UI libs SDK View Binding View Binding Network Caching Parsing Models Presentation logic IO / Database
  11. Android- / iOS-приложения 59 Android UI iOS UI UI libs

    SDK UI libs SDK View Binding View Binding Network Caching Parsing Models Presentation logic IO / Database
  12. Android- / iOS-приложения 60 Android UI iOS UI UI libs

    SDK UI libs SDK View Binding View Binding Models Presentation logic Network Caching Parsing Database Network Caching Parsing Database
  13. Android- / iOS-приложения 61 Android UI iOS UI UI libs

    SDK UI libs SDK View Binding View Binding Models Presentation logic Network Caching Parsing Database Network Caching Parsing Database ? ?
  14. Kotlin native сегодня Могу ли я: - Использовать С-библиотеки? ДА,

    но… - Писать Android-приложения? ДА, но… - Писать iOS-приложения? ДА, но… - Писать Android- / iOS-приложения? ДА 67
  15. Kotlin native сегодня 71 - Multiplatform - Objective-C interop -

    POSIX API, UIKit... - Compile as iOS framework
  16. Kotlin native сегодня 72 - Objective-C interop - POSIX API,

    UIKit... - Compile as iOS framework - Multiplatform
  17. 74