Fragments 2019

State of mobile engineering, state of platforms, hardware and user research.

Architectures with Kotlin Multiplatform

Submitted by Jitin (@jitinsharma) on Feb 26, 2019

Section: Full talk Technical level: Intermediate Status: Confirmed & scheduled

Abstract

In the current wave of cross platform solutions, Kotlin’s multiplatform is shaping up to be a unique proponent of code reuse. Unlike write once run everywhere, Multiplatform offers a unique space of reusability and formalization of code across platforms and also removes dependency on custom VMs or runtime. Modern apps are build on top of abstractions and architectures which make sure code-bases remain mature, testable and error free. They on the other hand also introduce a lot of boilerplate code. This presents an opportunity of code reuse with help of Kotlin multiplatform. Through this talk, we’ll see how can harness power of Kotlin Multiplatform to create apps using architectures such as MVP, MVI etc and use Kotlin native to build an abstraction layer across platforms. We’ll also go through usage of various multiplatform libraries for database and network management.

Outline

  • A brief introduction to kotlin multiplatform
  • Using various architectures such as MVP/MVI to create a multiplatform app for Android and iOS.
  • Designing a common layer for storage and networking operations
  • Using available multiplatform libraries such as SQLDelight, ktor
  • Developing your own multiplatform library

Speaker bio

Jitin works as an Android Engineer at GO-JEK, India where he works on aligning design and development as part of UX engineering. He writes about Android and Kotlin on Medium, is an open source contributor and has a certification in Android Developer Nanodegreee from Udacity.

He has previously given talks at DroidJam Conference and local meetups in Bangalore.

Links

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('You need to be a participant to comment.') }}

{{ formTitle }}
{{ gettext('Post a comment...') }}
{{ gettext('New comment') }}

{{ errorMsg }}