SlideShare a Scribd company logo
KOTLIN & SWIFT
THE EVOLUTION OF MOBILE
DEVELOPMENT
ME
CECILIA CASTILLO
XOOM
@ZEZZI
WHAT THIS TALK IS ABOUT?
▸ Languages
▸ Architecture
▸ The Big Picture
▸ Layouts
▸ Why is it interesting?
▸ References
WHAT THIS TALK IS NOT ABOUT ?
▸ Application Lifecycle
▸ Networking
▸ Security
▸ Storage
▸ Continuos Integration
▸ Distribution
▸ Soft Skills
▸ Platform specific Frameworks
▸ IDE’s
ME
JAVA
ANDROID
IOS
SWIFT
KOTLIN
TIME
LEVEL CHECK
YOU?
JAVA
ANDROID
IOS
SWIFT
KOTLIN
TIME
LANGUAGES
THE BASICS
TEXT
KOTLIN &SWIFT
▸ Similar Philosophy:
▸ Pragmatic
▸ Concise
▸ Safety
▸ Interoperability
Swift
Android
Disclaimer: Both platforms have additional ways of defining and initializing a class
Swift
Android
Disclaimer: Both platforms have additional ways of defining and initializing a class
Immutable
Swift
Android
Disclaimer: Both platforms have additional ways of defining and initializing a class
Optionals
Swift
Android
Disclaimer: Both platforms have additional ways of defining and initializing a class
Initializers
Swift
Android
Disclaimer: Both platforms have additional ways of defining and initializing a class
Default Values
Swift
Android
Initialization
Swift
Android
Mutable
Swift
Android
Changing property values
Swift
Android
String Interpolation
Swift
Android
Functions
Swift
Android
Array Definition
Swift
Android
Swift
Android
Type Inference
Swift
Android
Type Inference
Swift
Android
Type Inference
Swift Android
Optionals and Null Safety
Value Type
Reference Type
Swift Android
Optionals and Null Safety
Value Type
Reference Type
Swift Android
Optionals and Null Safety
Value Type
Reference Type
Swift
Android
Extensions
Swift
Android
Extensions
Swift
Android
Interfaces/Protocols and Default Implementation
Swift
Android
Interfaces/Protocols and Default Implementation
Swift
Android
Interfaces/Protocols and Default Implementation
Swift Android
Type Casting/ Type Checks
Swift Android
Type Casting/ Type Checks
Swift Android
Type Casting/ Type Checks
MORE……
ARCHITECTURE
SHARED ARCHITECTURES
▸ Platform agnostic:MVP, MVVM, Clean Architecture, etc….
▸ Protocol Oriented Programming
BIG PICTURE
BIG PICTURE
KOTLIN
▸ Statically Typed
▸ Supports Type Inference
▸ Type Checks when compiling
▸ Null Safety (Billion Dollar
Mistake)
▸ Supports Object Oriented
Programming and some
Functional Programming
▸ Statically Typed
▸ Supports Type Inference
▸ Type Checks when compiling
▸ Null Safety
▸ Supports some Functional
Programming Encourages
Protocol Oriented
Programming
SWIFT
BIG PICTURE
KOTLIN
▸ Higher Order Functions
▸ Any and Any? Is similar to
Object in java
▸ Lambdas as Parameters
and return values
▸ Generics
▸ Higher Order Functions
▸ Any and AnyObject
▸ Closures
▸ Generics
SWIFT
BIG PICTURE
KOTLIN
▸ Immutability is not forces
but strongly encouraged
▸ Extensions to add new
Functionality
▸ Interoperability with java
▸ Semi automatic
conversion Java-> Kotlin
▸ Immutability is not forces
but strongly encouraged.
▸ Extensions to add new
Functionality
▸ Interoperability with
Objective-C
▸ Manual conversion
Obj-c ->swift
SWIFT
▸ This are some commonalities there are more…
LAYOUTS
TEXT
AUTOLAYOUT VS CONSTRAINT LAYOUT
▸ Similarities:
▸ Precise: Adaptive
▸ Design via GUI
▸ Based on Cassowary Algorithm
▸ Differences:
▸ Default Behavior
▸ Fallback Handling
TEXT
UISTACKVIEW VS LINEAR LAYOUT
▸ Similarities:
▸ Maintainable
▸ Orientation Control
▸ Graceful Dynamic behaviors
▸ Differences:
▸ Weighting
CONSTRAINT LAYOUT VS AUTO LAYOUT
CONSTRAINT LAYOUT VS AUTO LAYOUT
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/
debugging_with_xcode/Art/dwx-sw-dvh-1_2x.png
CONSTRAINT LAYOUT VS AUTO LAYOUT
CONSTRAINT LAYOUT VS AUTO LAYOUT
https://www.bignerdranch.com/blog/constraintlayout-vs-auto-layout-how-do-they-compare/
WHY IS INTERESTING?
CHALLENGES OVER TIME
▸ Challenges 1:
• iOS: Obj-C Syntax, Memory Management, Pointers, etc.
• Android: Java a language well known to a lot of people, very stable.
Lifecycle Management (Activities) was the challenge, Eclipse
▸ Challenges 2:
• A new language. Constant changes on the language.
Interoperability with Obj-C.
• Android: Introduced Fragments, Life Cycle Management, Multiple
Device screens. Support for different API’s, Gingerbread.
My Perspective
CHALLENGES OVER TIME
▸ Challenges 3
• iOS: New programming paradigm: Functional Programming, Protocols
and Protocol Oriented Programming, Generics. Constant evolution of the
language. Auto Layout. Automatic Reference Counter.
• Android: Migration from Eclipse to Android Studio. Maven vs Gradle.
More strict patterns to follow in Android. Multiple devices. Gingerbread.
▸ Challenges 4
• iOS: More language changes. Stack Views.
• Android: Compatibility with Java 8. Start to consider a more functional
approach. Constraint Layout. Both Auto Layout and Constraint Layout are
based on Cassowary algorithm.
My Perspective
CHALLENGES OVER TIME
▸ Challenges 5
• iOS: Breaking changes in the language. Keeping code base up to date.
Removing old Obj-C Code
• Android: New Language Supported by Google. Will have similar
problems that what happened when swift was introduced. (Opportunity
to learn from previous experiences.). More opinionated about
architecture.
My Perspective
• Learning Curve in knowing two languages has
declined over time
• Learning curve in platform specific things is reducing
and becoming more opinionated.
• Increased Team Collaboration.
• We still need to learn the specifics about each
platform like lifecycle, best practices, frameworks,
threads, permissions. E.g: Core Data, Room.
• Similar implementation.
• Layouts follow a similar approach.
CONCLUSIONMy Perspective
WANT TO BECOME PLATFORM
BILINGUAL
YOU ARE ANDROID ENGINEER WHO WANT TO BECOME IOS PROFICIENT
• Learn Kotlin
• Then Learn iOS platform specific things. The language
will be easier.
YOU ARE IOS ENGINEER WHO WANT TO BECOME ANDROID PROFICIENT
• First learn the basics of Kotlin.
• Then focus mostly in learning Android Specific things
using Kotlin.
REFERENCES
REFERENCES
▸ https://building.coursera.org/blog/2016/03/16/becoming-
bilingual-coursera/
▸ https://gist.github.com/cbruegg/
d982a4bdc47757633f5355d4f1252d0e#who-is-using-kotlin
▸ https://medium.com/@Pinterest_Engineering/the-case-
against-kotlin-2c574cb87953
▸ http://nilhcem.com/swift-is-like-kotlin/
▸ https://www.youtube.com/watch?v=_DuGaAkQSnM&t=215s

More Related Content

PPTX
Coding in kotlin
PPTX
Desarrollo multiplataforma con kotlin | UPV 2018
PDF
Log cat kotlindsl
PDF
Isomorphic Kotlin
PPTX
Why Kotlin?
PPTX
Kotlin - A Programming Language
PPTX
Typescript overview
PDF
Kotlin top features overview
Coding in kotlin
Desarrollo multiplataforma con kotlin | UPV 2018
Log cat kotlindsl
Isomorphic Kotlin
Why Kotlin?
Kotlin - A Programming Language
Typescript overview
Kotlin top features overview

What's hot (20)

PPTX
Direct3D to WPF
KEY
The Architect Way
PPTX
Es build presentation
PDF
Introduction to react native
KEY
Jsx language-notes
PDF
Golang, Future of Programming Language.
PDF
JavaScript for Enterprise Applications
PDF
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
PPTX
Introduction to react native with redux
PDF
Mvvm is like born fraction
PDF
Cucumber in Practice(en)
PDF
Swift: The Basics
PDF
Kotlin & arrow: the functional way
PDF
Getting Started with React Native (and should I use it at all?)
PPTX
React Native
PPTX
What is scala
PDF
React UI Development: Introduction to "UI Component as API"
PPTX
Creating books app with react native
PDF
CeedMath & CeedGL, Let's talk 3D...
PDF
MongoDB World 2018: A Swift Introduction to Swift
Direct3D to WPF
The Architect Way
Es build presentation
Introduction to react native
Jsx language-notes
Golang, Future of Programming Language.
JavaScript for Enterprise Applications
GEF SVG export in JWT: a newcomer’s rocky ride to Eclipse
Introduction to react native with redux
Mvvm is like born fraction
Cucumber in Practice(en)
Swift: The Basics
Kotlin & arrow: the functional way
Getting Started with React Native (and should I use it at all?)
React Native
What is scala
React UI Development: Introduction to "UI Component as API"
Creating books app with react native
CeedMath & CeedGL, Let's talk 3D...
MongoDB World 2018: A Swift Introduction to Swift
Ad

Similar to Kotlin & Swift (20)

PPTX
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
PDF
Gradle 101
PPTX
Java training in bangalore
PDF
Apcera Case Study: The selection of the Go language
PDF
MvvmCross Seminar
PDF
MvvmCross Introduction
PPT
Java for C++ programers
PDF
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
PDF
A Brief Overview of Kotlin
PDF
Enterprise DevOps Series: Using VS Code & Zowe
PDF
Cluster management with Kubernetes
PDF
Be DevOps Ready
PDF
Kotlin vs Java | Edureka
PPTX
.NET vs Java- Which is best for Custom Software Development.pptx
PDF
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
PDF
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
PDF
Angular mobile angular_u
PDF
Starting from scratch in 2017
PDF
Build, run, and scale your Java applications end to end
PDF
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Continues Integration and Continuous Delivery with Azure DevOps - Deploy Anyt...
Gradle 101
Java training in bangalore
Apcera Case Study: The selection of the Go language
MvvmCross Seminar
MvvmCross Introduction
Java for C++ programers
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
A Brief Overview of Kotlin
Enterprise DevOps Series: Using VS Code & Zowe
Cluster management with Kubernetes
Be DevOps Ready
Kotlin vs Java | Edureka
.NET vs Java- Which is best for Custom Software Development.pptx
"Building Cross-platform Without Sacrificing Performance" by Simon Sturmer (K...
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Angular mobile angular_u
Starting from scratch in 2017
Build, run, and scale your Java applications end to end
Cross platform engineering - Lessons Learned (Michael Asimakopoulos, Valadis ...
Ad

More from zezzi Castillo (9)

PDF
Volley Android
PDF
Android introduccion2
PDF
Prototype
PDF
Observation Lab
PPTX
Photosort VentureLab2012
PDF
Parse Heroku for Mobiles
PDF
Manejo de la Camara Android vs Phonegap
PPTX
Drupal goes Mobile
Volley Android
Android introduccion2
Prototype
Observation Lab
Photosort VentureLab2012
Parse Heroku for Mobiles
Manejo de la Camara Android vs Phonegap
Drupal goes Mobile

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
cuic standard and advanced reporting.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Encapsulation theory and applications.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
KodekX | Application Modernization Development
PDF
Machine learning based COVID-19 study performance prediction
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Approach and Philosophy of On baking technology
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
cuic standard and advanced reporting.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Encapsulation theory and applications.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
KodekX | Application Modernization Development
Machine learning based COVID-19 study performance prediction
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Network Security Unit 5.pdf for BCA BBA.
Dropbox Q2 2025 Financial Results & Investor Presentation
Approach and Philosophy of On baking technology
Advanced methodologies resolving dimensionality complications for autism neur...
sap open course for s4hana steps from ECC to s4
Chapter 3 Spatial Domain Image Processing.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Understanding_Digital_Forensics_Presentation.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Kotlin & Swift