SlideShare ist ein Scribd-Unternehmen logo
1 von 34
● 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
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
Cairo, Egypt
Shady Yehia Selim
/Shady-Selim
/ShadySelim
Senior Software Engineer
@dr_Shady_Selim

Weitere ähnliche Inhalte

Was ist angesagt?

Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsPaul Sons
 
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...ReformedTech
 
Introduction to Koltin for Android Part I
Introduction to Koltin for Android Part I Introduction to Koltin for Android Part I
Introduction to Koltin for Android Part I Atif AbbAsi
 
Android Synopsis
Android SynopsisAndroid Synopsis
Android SynopsisNiraj Rahi
 
Flutter session 01
Flutter session 01Flutter session 01
Flutter session 01DSC IEM
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVMSHASHI KUMAR
 
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017
Introduction to kotlin for android app development   gdg ahmedabad dev fest 2017Introduction to kotlin for android app development   gdg ahmedabad dev fest 2017
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017Hardik Trivedi
 
Unit Testing in Angular
Unit Testing in AngularUnit Testing in Angular
Unit Testing in AngularKnoldus Inc.
 
Kotlin vs Java | Edureka
Kotlin vs Java | EdurekaKotlin vs Java | Edureka
Kotlin vs Java | EdurekaEdureka!
 
Introduction to Kotlin for Android developers
Introduction to Kotlin for Android developersIntroduction to Kotlin for Android developers
Introduction to Kotlin for Android developersMohamed Wael
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextDaniel Bryant
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaEdureka!
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
Introduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportIntroduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportAtul Panjwani
 
INTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdfINTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdfAdarshMathuri
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutterShady Selim
 

Was ist angesagt? (20)

Mobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web AppsMobile Application Development: Hybrid, Native and Mobile Web Apps
Mobile Application Development: Hybrid, Native and Mobile Web Apps
 
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...
Native, Hybrid, or Cross-platform Development? What Type of Mobile App is Bes...
 
Introduction to Koltin for Android Part I
Introduction to Koltin for Android Part I Introduction to Koltin for Android Part I
Introduction to Koltin for Android Part I
 
Android Synopsis
Android SynopsisAndroid Synopsis
Android Synopsis
 
Flutter session 01
Flutter session 01Flutter session 01
Flutter session 01
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
 
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017
Introduction to kotlin for android app development   gdg ahmedabad dev fest 2017Introduction to kotlin for android app development   gdg ahmedabad dev fest 2017
Introduction to kotlin for android app development gdg ahmedabad dev fest 2017
 
Unit Testing in Angular
Unit Testing in AngularUnit Testing in Angular
Unit Testing in Angular
 
Kotlin vs Java | Edureka
Kotlin vs Java | EdurekaKotlin vs Java | Edureka
Kotlin vs Java | Edureka
 
Introduction to Kotlin for Android developers
Introduction to Kotlin for Android developersIntroduction to Kotlin for Android developers
Introduction to Kotlin for Android developers
 
Intro to kotlin
Intro to kotlinIntro to kotlin
Intro to kotlin
 
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's NextKubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
KubeCon EU 2022: From Kubernetes to PaaS to Err What's Next
 
Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Flutter
FlutterFlutter
Flutter
 
Kotlin on android
Kotlin on androidKotlin on android
Kotlin on android
 
Introduction to Android development - Presentation Report
Introduction to Android development - Presentation ReportIntroduction to Android development - Presentation Report
Introduction to Android development - Presentation Report
 
Android Basic Concept
Android Basic Concept Android Basic Concept
Android Basic Concept
 
INTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdfINTRODUCTION TO FLUTTER.pdf
INTRODUCTION TO FLUTTER.pdf
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
 

Ähnlich wie What is Kotlin Multiplaform? Why & How?

Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and AndroidShady Selim
 
Kotlin vs flutter which is better for doing business
Kotlin vs flutter  which is better for doing business Kotlin vs flutter  which is better for doing business
Kotlin vs flutter which is better for doing business Concetto Labs
 
A Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming LanguageA Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming Languageijtsrd
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGoogleDeveloperStude22
 
Android is a mobile operating system developed by Google, known for its open-...
Android is a mobile operating system developed by Google, known for its open-...Android is a mobile operating system developed by Google, known for its open-...
Android is a mobile operating system developed by Google, known for its open-...AshishChanchal1
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android developmentJalpesh Vasa
 
Why Use Kotlin for Android App Development-Here’s a Guide.pdf
Why Use Kotlin for Android App Development-Here’s a Guide.pdfWhy Use Kotlin for Android App Development-Here’s a Guide.pdf
Why Use Kotlin for Android App Development-Here’s a Guide.pdfTechugo
 
Glympse API Cross Compiling
Glympse API Cross CompilingGlympse API Cross Compiling
Glympse API Cross CompilingEgor Pushkin
 
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxKOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxShantanuApurva1
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin courseGoogleDevelopersLeba
 
Flutter App Development- Why Should You Choose It .
Flutter App Development- Why Should You Choose It .Flutter App Development- Why Should You Choose It .
Flutter App Development- Why Should You Choose It .Techugo
 
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212Mahmoud Samir Fayed
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with FlutterAwok
 
The top programming languages for mobile app development in 2024
The top programming languages for mobile app development in 2024The top programming languages for mobile app development in 2024
The top programming languages for mobile app development in 2024Simublade Technology
 
Top Programming Languages for Aspiring Mobile App Developers.pdf
Top Programming Languages for Aspiring Mobile App Developers.pdfTop Programming Languages for Aspiring Mobile App Developers.pdf
Top Programming Languages for Aspiring Mobile App Developers.pdfTechgropse Pvt.Ltd.
 
EGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewEGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewWill Smythe
 
Android with Kotlin Course - SkillIQ.pdf
Android with Kotlin Course - SkillIQ.pdfAndroid with Kotlin Course - SkillIQ.pdf
Android with Kotlin Course - SkillIQ.pdfSkilliQCourse
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloudlennartkats
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps75waytechnologies
 

Ähnlich wie What is Kotlin Multiplaform? Why & How? (20)

Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and Android
 
Kotlin vs flutter which is better for doing business
Kotlin vs flutter  which is better for doing business Kotlin vs flutter  which is better for doing business
Kotlin vs flutter which is better for doing business
 
A Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming LanguageA Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming Language
 
Green flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdfGreen flag Wrap up Google Solution Challenge.pdf
Green flag Wrap up Google Solution Challenge.pdf
 
Android is a mobile operating system developed by Google, known for its open-...
Android is a mobile operating system developed by Google, known for its open-...Android is a mobile operating system developed by Google, known for its open-...
Android is a mobile operating system developed by Google, known for its open-...
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android development
 
Why Use Kotlin for Android App Development-Here’s a Guide.pdf
Why Use Kotlin for Android App Development-Here’s a Guide.pdfWhy Use Kotlin for Android App Development-Here’s a Guide.pdf
Why Use Kotlin for Android App Development-Here’s a Guide.pdf
 
Glympse API Cross Compiling
Glympse API Cross CompilingGlympse API Cross Compiling
Glympse API Cross Compiling
 
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxKOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 
Android with kotlin course
Android with kotlin courseAndroid with kotlin course
Android with kotlin course
 
Flutter App Development- Why Should You Choose It .
Flutter App Development- Why Should You Choose It .Flutter App Development- Why Should You Choose It .
Flutter App Development- Why Should You Choose It .
 
The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212The Ring programming language version 1.10 book - Part 6 of 212
The Ring programming language version 1.10 book - Part 6 of 212
 
Mobile development with Flutter
Mobile development with FlutterMobile development with Flutter
Mobile development with Flutter
 
The top programming languages for mobile app development in 2024
The top programming languages for mobile app development in 2024The top programming languages for mobile app development in 2024
The top programming languages for mobile app development in 2024
 
Top Programming Languages for Aspiring Mobile App Developers.pdf
Top Programming Languages for Aspiring Mobile App Developers.pdfTop Programming Languages for Aspiring Mobile App Developers.pdf
Top Programming Languages for Aspiring Mobile App Developers.pdf
 
EGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL OverviewEGL Conference 2011 - EGL Overview
EGL Conference 2011 - EGL Overview
 
Android with Kotlin Course - SkillIQ.pdf
Android with Kotlin Course - SkillIQ.pdfAndroid with Kotlin Course - SkillIQ.pdf
Android with Kotlin Course - SkillIQ.pdf
 
Language Engineering in the Cloud
Language Engineering in the CloudLanguage Engineering in the Cloud
Language Engineering in the Cloud
 
10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps10 Useful Frameworks to Build Hybrid Mobile Apps
10 Useful Frameworks to Build Hybrid Mobile Apps
 

Mehr von Shady Selim

Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile developmentShady Selim
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using FlutterShady Selim
 
I/O 2019 android updates
I/O 2019 android updatesI/O 2019 android updates
I/O 2019 android updatesShady Selim
 
Kotlin for android 2019
Kotlin for android 2019Kotlin for android 2019
Kotlin for android 2019Shady Selim
 
What's new in android 2018 (dev fest)
What's new in android 2018 (dev fest)What's new in android 2018 (dev fest)
What's new in android 2018 (dev fest)Shady Selim
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to FlutterShady Selim
 
Intro to kotlin 2018
Intro to kotlin 2018Intro to kotlin 2018
Intro to kotlin 2018Shady Selim
 
Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017Shady Selim
 
Kotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web developmentKotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web developmentShady Selim
 
Kotlin for android
Kotlin for androidKotlin for android
Kotlin for androidShady Selim
 
Android content provider explained
Android content provider explainedAndroid content provider explained
Android content provider explainedShady Selim
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and MobileShady Selim
 
Towards a better higher education system by Shady Selim
Towards a better higher education system by Shady SelimTowards a better higher education system by Shady Selim
Towards a better higher education system by Shady SelimShady Selim
 
Android Programing Course Material Labs
Android Programing Course Material LabsAndroid Programing Course Material Labs
Android Programing Course Material LabsShady Selim
 
Android Programing Course Material
Android Programing Course Material Android Programing Course Material
Android Programing Course Material Shady Selim
 
Mobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. AdaptiveMobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. AdaptiveShady Selim
 

Mehr von Shady Selim (20)

Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using Flutter
 
I/O 2019 android updates
I/O 2019 android updatesI/O 2019 android updates
I/O 2019 android updates
 
Kotlin for android 2019
Kotlin for android 2019Kotlin for android 2019
Kotlin for android 2019
 
What's new in android 2018 (dev fest)
What's new in android 2018 (dev fest)What's new in android 2018 (dev fest)
What's new in android 2018 (dev fest)
 
Intro to Flutter
Intro to FlutterIntro to Flutter
Intro to Flutter
 
Intro to kotlin 2018
Intro to kotlin 2018Intro to kotlin 2018
Intro to kotlin 2018
 
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
 
Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017Intro to Kotlin Minia GDG DevFest 2017
Intro to Kotlin Minia GDG DevFest 2017
 
Kotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web developmentKotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web development
 
Kotlin for android
Kotlin for androidKotlin for android
Kotlin for android
 
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
 
Firebase
FirebaseFirebase
Firebase
 
Android content provider explained
Android content provider explainedAndroid content provider explained
Android content provider explained
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and Mobile
 
Towards a better higher education system by Shady Selim
Towards a better higher education system by Shady SelimTowards a better higher education system by Shady Selim
Towards a better higher education system by Shady Selim
 
Android Programing Course Material Labs
Android Programing Course Material LabsAndroid Programing Course Material Labs
Android Programing Course Material Labs
 
Android Programing Course Material
Android Programing Course Material Android Programing Course Material
Android Programing Course Material
 
Cross mobility
Cross mobilityCross mobility
Cross mobility
 
Mobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. AdaptiveMobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. Adaptive
 

What is Kotlin Multiplaform? Why & How?

  • 1.
  • 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
  • 10.
  • 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
  • 33.
  • 34. Cairo, Egypt Shady Yehia Selim /Shady-Selim /ShadySelim Senior Software Engineer @dr_Shady_Selim