SlideShare a Scribd company logo
What is Kotlin Multiplaform? Why & How?
● 20 years of experience in web and mobile development
● Mobile & Web Evangelist
● Technology savvy
● Think tank
● UI/UX freak
●
● Public Speaker, 2015
● GDG Helwan Founder & Leader, 2017
● Kotlin Cairo User Group Founder & Leader, 2017
● Mentor & Tester in Udacity Nanodegree, 2017
● Andela Senior Software Engineer, 2019
2
Speaker Bio
• Native iOS and Android Languages
• Cross Mobile Languages
• What is Kotlin?
• Jetpack Compose
• SwiftUI
• Kotlin/Native
3
Index
4
Mobile OS
Linux Kernel and Device
Drivers
Core OS
Core Services & Media
Cupertino Widget
Linux Kernel and Device
Drivers
Libraries & Run Time
Applications &
Framework
Material Design Widgets
iOS Android
Native Approach (Single Platform)
Swift
Kotlin
OEM Widgets
Cupertino
Material Design
Canvas
Events
Location Bluetooth
Camera Sensors
Java
Kotlin
Swift
Objective-c
Application
Services
OEM SDKs
9
Cross Mobile Languages
What is Kotlin Multiplaform? Why & How?
Class A Class B
Popular Cross Tools
Web View
Canvas
Events
Location Bluetooth
Camera Sensors
JavaScript
HTML
CSS
Application
Services
Bridge
Class A
Canvas
Events
Location Bluetooth
Camera Sensors
Transferred
Native Code
Application
Services
FrameworklibrariesSDK
OEM Widgets
Cupertino
Material Design
Class B
Canvas
Events
Location Bluetooth
Camera Sensors
Native ARM
Binary
Code
Application
Services
Platform
Channels
Flutter Widgets
Cupertino
Material Design
Flutter Approach
So what is Flutter ?
Flutter is the next step in
App development
Speed and performance
Fast , smooth performance
Flexibility
Customize anything - Brand
first design
Native look and feel
Familiarity , ease of use
Rapid Development
Easy to learn , predictable
Great looking and Fast Animation
https://rive.app/
Kotlin History
⬝ Created by Jetbrains on 2011
⬝ Open sourced on 2012
⬝ Reached version 1 on 2016
⬝ Adopted by Google on 2017
⬝ Google announce Kotlin as 1st Class language on 2017
⬝ Google announce Android Kotlin 1st language on 2019
Kotlin is
⬝ Statically typed programming language targeting the JVM
⬝ Support for functional and OO paradigms
⬝ Pragmatic, safe, concise, great Java interop
⬝ Free and open-source
⬝ Drastically reduces the amount of boilerplate code
⬝ Having Lambda expression
⬝ Avoids entire classes of errors such as null pointer exceptions
⬝ Supported by Google
Kotlin Strength
⬝ Modeling the data of your application concisely and
expressively
⬝ Creating reusable abstractions using functional programming
techniques
⬝ Creating expressive domain-specific languages (DSL)
⬝ Java interop ensures that all existing Java frameworks can be
used
⬝ No rewrite required to start using Kotlin in existing codebase
⬝ Existing investment is fully preserved
Jetpack Compose
21
Jetpack Compose
@Composable
fun Greeting(name: String) {
Text (text = "Hello $name!")
}
@Preview
@Composable
fun PreviewGreeting() {
Greeting("Android")
}
Jetpack Compose Benefits
⬝ Build with the benefits that Kotlin brings -- concise, safe, and
fully interoperable with the Java programming language.
Designed to drastically reduce the amount of boilerplate code
you have to write, so you can focus on your app code, and
help avoid entire classes of errors.
⬝ Fully declarative for defining UI components, including
drawing and creating custom layouts. Simply describe your UI
as a set of composable functions, and the framework handles
UI optimizations and updates to the view hierarchy under the
hood.
Jetpack Compose Benefits -2
⬝ Provide reusable building blocks that let you build custom
widgets easier, and without starting from scratch.
⬝ Compatible with existing views so you can mix and match and
adopt at your own pace with direct access to all of the Android
and Jetpack APIs.
⬝ Material Design out of the box and animations from the start,
so it’s easy to create beautiful apps that are full of motion.
⬝ Accelerate development with tools like live preview and apply
changes.
SwiftUI
25
SwiftUI
SwiftUI Benefits
⬝ Declarative Syntax
⬝ Design Tools
⬝ Native on All Apple Platforms
⬝ Easy to read and natural to write
⬝ Works seamlessly with new Xcode design tools to keep your
code and design perfectly in sync
⬝ Automatic support for Dynamic Type, Dark Mode, localization,
and accessibility
Kotlin/Native
28
Kotlin/Native
⬝ An SDK, not a framework
⬝ Reuse your business logic
⬝ Smooth interoperability with platform-specific code
⬝ Have a native UI
⬝ No lagging behind native platforms
⬝ Use the language you already know and love
1 Code base,
2 platforms
Resources and samples
⬝ Main Page
https://www.jetbrains.com/lp/mobilecrossplatform/
⬝ Samples
https://github.com/JetBrains/kotlin-native/tree/master/samples
⬝ Minimal Projects
https://github.com/joreilly/PeopleInSpace
https://johnoreilly.dev/2019/06/08/swiftui-meetings-kotlin-
multiplatform.html
⬝ MVVM Project Template
https://moko.icerock.dev/
Codelabs and Workshop
⬝ https://play.kotlinlang.org/hands-
on/Targeting%20iOS%20and%20Android%20with%20Kotlin%2
0Multiplatform/
⬝ https://www.raywenderlich.com/1022411-kotlin-multiplatform-
project-for-android-and-ios-getting-started
What is Kotlin Multiplaform? Why & How?
Cairo, Egypt
Shady Yehia Selim
/Shady-Selim
/ShadySelim
Senior Software Engineer
@dr_Shady_Selim

More Related Content

PPTX
Jetpack Compose.pptx
PPTX
Kotlin Multiplatform
PDF
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
PDF
Embedded Android : System Development - Part IV (Android System Services)
PPTX
Android jetpack compose | Declarative UI
PDF
Kotlin for Android Development
PPTX
Jenkins CI presentation
PDF
Android Session.pdf
Jetpack Compose.pptx
Kotlin Multiplatform
Why I ❤️ Kotlin Multiplatform (and want YOU to also ❤️ Kotlin Multiplatform)
Embedded Android : System Development - Part IV (Android System Services)
Android jetpack compose | Declarative UI
Kotlin for Android Development
Jenkins CI presentation
Android Session.pdf

What's hot (20)

PPTX
Android with kotlin course
PPTX
Swagger - make your API accessible
PPT
Selenium Presentation at Engineering Colleges
PPT
Java Basics for selenium
PPTX
A flight with Flutter
PDF
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017
PDF
Introduction to kotlin
PDF
Introduction to Flutter - truly crossplatform, amazingly fast
PDF
Declarative UIs with Jetpack Compose
PDF
Game development using Flutter
PPT
Android ppt
PPTX
Flutter talkshow
PPT
Android Architecture
PPTX
Infrastructure as Code (IaC)
PPTX
Introduction to Flutter.pptx
PPTX
Automated Test Framework with Cucumber
PDF
Chapter 1. java programming language overview
PPTX
Test Automation Framework with BDD and Cucumber
PDF
Android Jetpack Compose - Turkey 2021
PPTX
Cucumber BDD
Android with kotlin course
Swagger - make your API accessible
Selenium Presentation at Engineering Colleges
Java Basics for selenium
A flight with Flutter
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017
Introduction to kotlin
Introduction to Flutter - truly crossplatform, amazingly fast
Declarative UIs with Jetpack Compose
Game development using Flutter
Android ppt
Flutter talkshow
Android Architecture
Infrastructure as Code (IaC)
Introduction to Flutter.pptx
Automated Test Framework with Cucumber
Chapter 1. java programming language overview
Test Automation Framework with BDD and Cucumber
Android Jetpack Compose - Turkey 2021
Cucumber BDD
Ad

Similar to What is Kotlin Multiplaform? Why & How? (20)

PDF
Kotlin native for iOS and Android
PPTX
Kotlin vs flutter which is better for doing business
PDF
Mobile Programming - 1 Introduction
PPTX
Kotlin vs Flutter: The Battle of Platforms
PDF
What is Kotlin.pdf
PDF
Why You Should Go with Kotlin for Android App Development.pdf
PPTX
Kotlin for android 2019
PPTX
Introduction to Kotlin
PDF
A Brief Overview of Kotlin
PPTX
Why to Choose Kotlin in 2023 to Build Mobile Apps Faster?
PPTX
Is kotlin better option for android app development
PPTX
The Pros and Cons of Kotlin Language for Android App Development
PDF
Flutter Vs Kotlin: Which One is Best for Developing Cross-platform Applicatio...
PDF
Flutter vs. Kotlin: Which Is the Best Fit for Your Next Project?
PDF
Kotlin Vs Java Which Is the Better Option for Android App Development.pdf
PDF
Kotlin Programming Concise Expressive And Powerful Theophilus Edet
PPTX
Android Study Jam
PPTX
Android Development Presentation[1].pptx
PDF
Flutter VS Kotlin Vs Swift: Which is Better for App Development?
Kotlin native for iOS and Android
Kotlin vs flutter which is better for doing business
Mobile Programming - 1 Introduction
Kotlin vs Flutter: The Battle of Platforms
What is Kotlin.pdf
Why You Should Go with Kotlin for Android App Development.pdf
Kotlin for android 2019
Introduction to Kotlin
A Brief Overview of Kotlin
Why to Choose Kotlin in 2023 to Build Mobile Apps Faster?
Is kotlin better option for android app development
The Pros and Cons of Kotlin Language for Android App Development
Flutter Vs Kotlin: Which One is Best for Developing Cross-platform Applicatio...
Flutter vs. Kotlin: Which Is the Best Fit for Your Next Project?
Kotlin Vs Java Which Is the Better Option for Android App Development.pdf
Kotlin Programming Concise Expressive And Powerful Theophilus Edet
Android Study Jam
Android Development Presentation[1].pptx
Flutter VS Kotlin Vs Swift: Which is Better for App Development?
Ad

More from Shady Selim (20)

PPTX
Introduction on Mobile development
PPTX
I/O 2019 android updates
PPTX
What's new in android 2018 (dev fest)
PPTX
Intro to Flutter
PPTX
Intro to kotlin 2018
PDF
The magic of flutter
PPTX
Intro to Kotlin
PPTX
Intro to Kotlin Minia GDG DevFest 2017
PPTX
Kotlin for Frontend & Backend Web development
PPTX
Kotlin for android
PPTX
Intro to Kotlin
PPTX
Firebase
PPTX
Android content provider explained
PPTX
Design for Web and Mobile
PPTX
Towards a better higher education system by Shady Selim
DOCX
Android Programing Course Material Labs
DOCX
Android Programing Course Material
PPTX
Cross mobility
PPTX
Mobile apps types + Responsice Vs. Adaptive
PPTX
Grow your business with player analytics ben frenkel & Shady Selim
Introduction on Mobile development
I/O 2019 android updates
What's new in android 2018 (dev fest)
Intro to Flutter
Intro to kotlin 2018
The magic of flutter
Intro to Kotlin
Intro to Kotlin Minia GDG DevFest 2017
Kotlin for Frontend & Backend Web development
Kotlin for android
Intro to Kotlin
Firebase
Android content provider explained
Design for Web and Mobile
Towards a better higher education system by Shady Selim
Android Programing Course Material Labs
Android Programing Course Material
Cross mobility
Mobile apps types + Responsice Vs. Adaptive
Grow your business with player analytics ben frenkel & Shady Selim

Recently uploaded (6)

PDF
heheheueueyeyeyegehehehhehshMedia-Literacy.pdf
PDF
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
PDF
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
DOC
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
PPTX
ASMS Telecommunication company Profile
DOC
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证
heheheueueyeyeyegehehehhehshMedia-Literacy.pdf
6-UseCfgfhgfhgfhgfhgfhfhhaseActivity.pdf
Lesson 13- HEREDITY _ pedSAWEREGFVCXZDSASEWFigree.pdf
证书学历UoA毕业证,澳大利亚中汇学院毕业证国外大学毕业证
ASMS Telecommunication company Profile
Camb毕业证学历认证,格罗斯泰斯特主教大学毕业证仿冒文凭毕业证

What is Kotlin Multiplaform? Why & How?

  • 2. ● 20 years of experience in web and mobile development ● Mobile & Web Evangelist ● Technology savvy ● Think tank ● UI/UX freak ● ● Public Speaker, 2015 ● GDG Helwan Founder & Leader, 2017 ● Kotlin Cairo User Group Founder & Leader, 2017 ● Mentor & Tester in Udacity Nanodegree, 2017 ● Andela Senior Software Engineer, 2019 2 Speaker Bio
  • 3. • Native iOS and Android Languages • Cross Mobile Languages • What is Kotlin? • Jetpack Compose • SwiftUI • Kotlin/Native 3 Index
  • 5. Linux Kernel and Device Drivers Core OS Core Services & Media Cupertino Widget Linux Kernel and Device Drivers Libraries & Run Time Applications & Framework Material Design Widgets
  • 7. Native Approach (Single Platform) Swift Kotlin
  • 8. OEM Widgets Cupertino Material Design Canvas Events Location Bluetooth Camera Sensors Java Kotlin Swift Objective-c Application Services OEM SDKs
  • 11. Class A Class B Popular Cross Tools
  • 12. Web View Canvas Events Location Bluetooth Camera Sensors JavaScript HTML CSS Application Services Bridge Class A
  • 13. Canvas Events Location Bluetooth Camera Sensors Transferred Native Code Application Services FrameworklibrariesSDK OEM Widgets Cupertino Material Design Class B
  • 14. Canvas Events Location Bluetooth Camera Sensors Native ARM Binary Code Application Services Platform Channels Flutter Widgets Cupertino Material Design Flutter Approach
  • 15. So what is Flutter ? Flutter is the next step in App development Speed and performance Fast , smooth performance Flexibility Customize anything - Brand first design Native look and feel Familiarity , ease of use Rapid Development Easy to learn , predictable
  • 16. Great looking and Fast Animation
  • 18. Kotlin History ⬝ Created by Jetbrains on 2011 ⬝ Open sourced on 2012 ⬝ Reached version 1 on 2016 ⬝ Adopted by Google on 2017 ⬝ Google announce Kotlin as 1st Class language on 2017 ⬝ Google announce Android Kotlin 1st language on 2019
  • 19. Kotlin is ⬝ Statically typed programming language targeting the JVM ⬝ Support for functional and OO paradigms ⬝ Pragmatic, safe, concise, great Java interop ⬝ Free and open-source ⬝ Drastically reduces the amount of boilerplate code ⬝ Having Lambda expression ⬝ Avoids entire classes of errors such as null pointer exceptions ⬝ Supported by Google
  • 20. Kotlin Strength ⬝ Modeling the data of your application concisely and expressively ⬝ Creating reusable abstractions using functional programming techniques ⬝ Creating expressive domain-specific languages (DSL) ⬝ Java interop ensures that all existing Java frameworks can be used ⬝ No rewrite required to start using Kotlin in existing codebase ⬝ Existing investment is fully preserved
  • 22. Jetpack Compose @Composable fun Greeting(name: String) { Text (text = "Hello $name!") } @Preview @Composable fun PreviewGreeting() { Greeting("Android") }
  • 23. Jetpack Compose Benefits ⬝ Build with the benefits that Kotlin brings -- concise, safe, and fully interoperable with the Java programming language. Designed to drastically reduce the amount of boilerplate code you have to write, so you can focus on your app code, and help avoid entire classes of errors. ⬝ Fully declarative for defining UI components, including drawing and creating custom layouts. Simply describe your UI as a set of composable functions, and the framework handles UI optimizations and updates to the view hierarchy under the hood.
  • 24. Jetpack Compose Benefits -2 ⬝ Provide reusable building blocks that let you build custom widgets easier, and without starting from scratch. ⬝ Compatible with existing views so you can mix and match and adopt at your own pace with direct access to all of the Android and Jetpack APIs. ⬝ Material Design out of the box and animations from the start, so it’s easy to create beautiful apps that are full of motion. ⬝ Accelerate development with tools like live preview and apply changes.
  • 27. SwiftUI Benefits ⬝ Declarative Syntax ⬝ Design Tools ⬝ Native on All Apple Platforms ⬝ Easy to read and natural to write ⬝ Works seamlessly with new Xcode design tools to keep your code and design perfectly in sync ⬝ Automatic support for Dynamic Type, Dark Mode, localization, and accessibility
  • 29. Kotlin/Native ⬝ An SDK, not a framework ⬝ Reuse your business logic ⬝ Smooth interoperability with platform-specific code ⬝ Have a native UI ⬝ No lagging behind native platforms ⬝ Use the language you already know and love
  • 30. 1 Code base, 2 platforms
  • 31. Resources and samples ⬝ Main Page https://www.jetbrains.com/lp/mobilecrossplatform/ ⬝ Samples https://github.com/JetBrains/kotlin-native/tree/master/samples ⬝ Minimal Projects https://github.com/joreilly/PeopleInSpace https://johnoreilly.dev/2019/06/08/swiftui-meetings-kotlin- multiplatform.html ⬝ MVVM Project Template https://moko.icerock.dev/
  • 32. Codelabs and Workshop ⬝ https://play.kotlinlang.org/hands- on/Targeting%20iOS%20and%20Android%20with%20Kotlin%2 0Multiplatform/ ⬝ https://www.raywenderlich.com/1022411-kotlin-multiplatform- project-for-android-and-ios-getting-started
  • 34. Cairo, Egypt Shady Yehia Selim /Shady-Selim /ShadySelim Senior Software Engineer @dr_Shady_Selim