SlideShare a Scribd company logo
Intro to Kotlin
Prepared by Shady Selim
For GDG Minia DevFest
On 9/10/2017
GDG
Minia +
@Kotlin.Cairo #Kotlin #DevFestMENA
Speaker Bio
• Official Google Speaker
• GDG Helwan Founder & Leader
• Kotlin Cairo User Group Founder
• Mentor in Udacity Nanodegree
• Mobile & Web Evangelist
• Technology savvy
• Think tank
• UI/UX freak
www.linkedin.com/in/shadyselim/
@dr_Shady_Selim
2
+
Who created Kotlin?
• IntelliJ IDEA
• PhpStorm
• ReSharper
• PyCharm
• RubyMine
• … others
3
+
What is Kotlin?
4
+
Why Kotlin Now?
5
+
6
+
Is Kotlin Really new?
7
+
Why Should I care!!?
• Statically typed programming language targeting the JVM
• Support for functional and OO paradigms
• Pragmatic, safe, concise, great Java interop
• Free and open-source
• Drastically reduce the amount of boilerplate code
• Lambda expression
• Avoid entire classes of errors such as null pointer exceptions
• Java 9 is …
8
+
The Strengths of Kotlin
• 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
9
+
Java Model Example
10
+
Java Model Example, cont.
11
+
Java Model Example, cont.
12
+
Java Model Example, cont.
13
+
Kotlin Model Example, cont.
14
+
The Strength Points
15
+
• In addition to all what was mentioned
• Extensions
• Anko (Commons, Layouts, SQLite, & Coroutines)
• No new
• No semi colon
• Smart casting
• Great IDE and tooling supports
• Variables (val vs. var)
• functions
Do you like reactive programming?
16
+
You will not miss your frameworks or libraries
17
+
You will not miss your frameworks or libraries
18
+
You will not miss your frameworks or libraries
19
+
You will not miss your frameworks or libraries
20
+
kotlin.link
21
+
Resources
• https://kotlinlang.org/
• https://m.signalvnoise.com/kotlin-its-the-little-things-8c0f501bc6ea
• https://www.jetbrains.com/
• https://www.slideshare.net/intelliyole/kotlin-why-do-you-care
• https://github.com/ReactiveX/RxKotlin
• https://spring.io/blog/2016/02/15/developing-spring-boot-applications-
with-kotlin
• https://www.slideshare.net/makingx/spring-kotlin
• https://kotlin.link/
• http://www.overrideandroid.info/2017/04/kotlin-do-more-with-less-
code.html
22
+
Questions!?
23
+

More Related Content

What's hot

[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
Kenichi Kambara
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
Thoughtworks
 
Kotlin tlv
Kotlin tlvKotlin tlv
Kotlin tlv
Boris Farber
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
nluaces
 
Kotlin - A Programming Language
Kotlin - A Programming Language Kotlin - A Programming Language
Kotlin - A Programming Language
Mobio Solutions
 
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
Shady Selim
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspective
Sveta Bozhko
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
Modern Programming Languages - An overview
Modern Programming Languages - An overviewModern Programming Languages - An overview
Modern Programming Languages - An overview
Ayman Mahfouz
 
Kotlin from-scratch
Kotlin from-scratchKotlin from-scratch
Kotlin from-scratch
Franco Lombardo
 
Golang
GolangGolang
Using kotlin for server side development
Using kotlin for server side developmentUsing kotlin for server side development
Using kotlin for server side development
선옥 장
 
Kshitij
KshitijKshitij
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
Technology Parser
 
Golang #5: To Go or not to Go
Golang #5: To Go or not to GoGolang #5: To Go or not to Go
Golang #5: To Go or not to Go
Oliver N
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
Ganesh Samarthyam
 
Agile Tools for PHP
Agile Tools for PHPAgile Tools for PHP
Agile Tools for PHP
philipjting
 
Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens 2018 - Why Kotlin?Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens
 
Log cat kotlindsl
Log cat kotlindslLog cat kotlindsl
Log cat kotlindsl
sanaebadi1
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
John Potocny
 

What's hot (20)

[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
[Kotlin勉強会] Hello Kotlinの次におさえたいKotlinの勘所
 
Kotlin & Arrow the functional way
Kotlin & Arrow the functional wayKotlin & Arrow the functional way
Kotlin & Arrow the functional way
 
Kotlin tlv
Kotlin tlvKotlin tlv
Kotlin tlv
 
Kotlin & arrow: the functional way
Kotlin & arrow:  the functional wayKotlin & arrow:  the functional way
Kotlin & arrow: the functional way
 
Kotlin - A Programming Language
Kotlin - A Programming Language Kotlin - A Programming Language
Kotlin - A Programming Language
 
Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
 
Golang from Scala developer’s perspective
Golang from Scala developer’s perspectiveGolang from Scala developer’s perspective
Golang from Scala developer’s perspective
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno [INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
 
Modern Programming Languages - An overview
Modern Programming Languages - An overviewModern Programming Languages - An overview
Modern Programming Languages - An overview
 
Kotlin from-scratch
Kotlin from-scratchKotlin from-scratch
Kotlin from-scratch
 
Golang
GolangGolang
Golang
 
Using kotlin for server side development
Using kotlin for server side developmentUsing kotlin for server side development
Using kotlin for server side development
 
Kshitij
KshitijKshitij
Kshitij
 
An introduction to go programming language
An introduction to go programming languageAn introduction to go programming language
An introduction to go programming language
 
Golang #5: To Go or not to Go
Golang #5: To Go or not to GoGolang #5: To Go or not to Go
Golang #5: To Go or not to Go
 
A First Look at Google's Go Programming Language
A First Look at Google's Go Programming LanguageA First Look at Google's Go Programming Language
A First Look at Google's Go Programming Language
 
Agile Tools for PHP
Agile Tools for PHPAgile Tools for PHP
Agile Tools for PHP
 
Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens 2018 - Why Kotlin?Voxxed Athens 2018 - Why Kotlin?
Voxxed Athens 2018 - Why Kotlin?
 
Log cat kotlindsl
Log cat kotlindslLog cat kotlindsl
Log cat kotlindsl
 
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming LanguageATO 2014 - So You Think You Know 'Go'? The Go Programming Language
ATO 2014 - So You Think You Know 'Go'? The Go Programming Language
 

Similar to Intro to Kotlin Minia GDG DevFest 2017

Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
Shady Selim
 
I/O 2019 android updates
I/O 2019 android updatesI/O 2019 android updates
I/O 2019 android updates
Shady Selim
 
Grokking TechTalk #26: Kotlin, Understand the Magic
Grokking TechTalk #26: Kotlin, Understand the MagicGrokking TechTalk #26: Kotlin, Understand the Magic
Grokking TechTalk #26: Kotlin, Understand the Magic
Grokking VN
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android development
Jalpesh Vasa
 
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdfLearn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Bcoder Dev
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
GoogleDevelopersLeba
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
HARSHITJAIN068
 
DevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick SpaceDevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick Space
Jedsada Tiwongvokul
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
Robert MacLean
 
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
Kenichi Kambara
 
6 Development Tools we Love for Mac
6 Development Tools we Love for Mac6 Development Tools we Love for Mac
6 Development Tools we Love for Mac
CopperEgg
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
ICF CIRCUIT
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
Ekta Raj
 
Kotlin – Alternative oder Ergänzung zu Java?
Kotlin – Alternative oder Ergänzung zu Java?Kotlin – Alternative oder Ergänzung zu Java?
Kotlin – Alternative oder Ergänzung zu Java?
gedoplan
 
Introduction to Kotlin
Introduction to KotlinIntroduction to Kotlin
Introduction to Kotlin
T.M. Ishrak Hussain
 
Kotlin for Web Development Possibilities and Challenges.pptx
Kotlin for Web Development Possibilities and Challenges.pptxKotlin for Web Development Possibilities and Challenges.pptx
Kotlin for Web Development Possibilities and Challenges.pptx
Ellocent Labs
 
The Pros and Cons of Kotlin Language for Android App Development
The Pros and Cons of Kotlin Language for Android App DevelopmentThe Pros and Cons of Kotlin Language for Android App Development
The Pros and Cons of Kotlin Language for Android App Development
Prakash Software
 
Kotlin - A Beginner’s Guide__________________
Kotlin - A Beginner’s Guide__________________Kotlin - A Beginner’s Guide__________________
Kotlin - A Beginner’s Guide__________________
Mars Devs
 
Craft Beer & Clojure
Craft Beer & ClojureCraft Beer & Clojure
Craft Beer & Clojure
Metosin Oy
 
Introduction to Android with Kotlin: Дончо Минков (Telerik Academy)
Introduction to Android with Kotlin:  Дончо Минков (Telerik Academy)Introduction to Android with Kotlin:  Дончо Минков (Telerik Academy)
Introduction to Android with Kotlin: Дончо Минков (Telerik Academy)
PlovDev Conference
 

Similar to Intro to Kotlin Minia GDG DevFest 2017 (20)

Intro to Kotlin
Intro to KotlinIntro to Kotlin
Intro to Kotlin
 
I/O 2019 android updates
I/O 2019 android updatesI/O 2019 android updates
I/O 2019 android updates
 
Grokking TechTalk #26: Kotlin, Understand the Magic
Grokking TechTalk #26: Kotlin, Understand the MagicGrokking TechTalk #26: Kotlin, Understand the Magic
Grokking TechTalk #26: Kotlin, Understand the Magic
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android development
 
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdfLearn Kotlin and Build Robust Android Apps with Bcoder.pdf
Learn Kotlin and Build Robust Android Apps with Bcoder.pdf
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
 
DevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick SpaceDevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick Space
 
Building a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCPBuilding a µservice with Kotlin, Micronaut & GCP
Building a µservice with Kotlin, Micronaut & GCP
 
AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例AndroidアプリのKotlin移行時に遭遇した問題と対処例
AndroidアプリのKotlin移行時に遭遇した問題と対処例
 
6 Development Tools we Love for Mac
6 Development Tools we Love for Mac6 Development Tools we Love for Mac
6 Development Tools we Love for Mac
 
Circuit 2015 Keynote - Carsten Ziegeler
Circuit 2015 Keynote -  Carsten ZiegelerCircuit 2015 Keynote -  Carsten Ziegeler
Circuit 2015 Keynote - Carsten Ziegeler
 
Kotlin Overview
Kotlin OverviewKotlin Overview
Kotlin Overview
 
Kotlin – Alternative oder Ergänzung zu Java?
Kotlin – Alternative oder Ergänzung zu Java?Kotlin – Alternative oder Ergänzung zu Java?
Kotlin – Alternative oder Ergänzung zu Java?
 
Introduction to Kotlin
Introduction to KotlinIntroduction to Kotlin
Introduction to Kotlin
 
Kotlin for Web Development Possibilities and Challenges.pptx
Kotlin for Web Development Possibilities and Challenges.pptxKotlin for Web Development Possibilities and Challenges.pptx
Kotlin for Web Development Possibilities and Challenges.pptx
 
The Pros and Cons of Kotlin Language for Android App Development
The Pros and Cons of Kotlin Language for Android App DevelopmentThe Pros and Cons of Kotlin Language for Android App Development
The Pros and Cons of Kotlin Language for Android App Development
 
Kotlin - A Beginner’s Guide__________________
Kotlin - A Beginner’s Guide__________________Kotlin - A Beginner’s Guide__________________
Kotlin - A Beginner’s Guide__________________
 
Craft Beer & Clojure
Craft Beer & ClojureCraft Beer & Clojure
Craft Beer & Clojure
 
Introduction to Android with Kotlin: Дончо Минков (Telerik Academy)
Introduction to Android with Kotlin:  Дончо Минков (Telerik Academy)Introduction to Android with Kotlin:  Дончо Минков (Telerik Academy)
Introduction to Android with Kotlin: Дончо Минков (Telerik Academy)
 

More from Shady Selim

What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How?
Shady Selim
 
Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and Android
Shady Selim
 
Introduction on Mobile development
Introduction on Mobile developmentIntroduction on Mobile development
Introduction on Mobile development
Shady Selim
 
Game development using Flutter
Game development using FlutterGame development using Flutter
Game development using Flutter
Shady Selim
 
Kotlin for android 2019
Kotlin for android 2019Kotlin for android 2019
Kotlin for android 2019
Shady 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 Flutter
Shady Selim
 
Intro to kotlin 2018
Intro to kotlin 2018Intro to kotlin 2018
Intro to kotlin 2018
Shady Selim
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
Shady Selim
 
Kotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web developmentKotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web development
Shady Selim
 
Firebase
FirebaseFirebase
Firebase
Shady Selim
 
Android content provider explained
Android content provider explainedAndroid content provider explained
Android content provider explained
Shady Selim
 
Design for Web and Mobile
Design for Web and MobileDesign for Web and Mobile
Design for Web and Mobile
Shady 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 Selim
Shady Selim
 
Android Programing Course Material Labs
Android Programing Course Material LabsAndroid Programing Course Material Labs
Android Programing Course Material Labs
Shady Selim
 
Android Programing Course Material
Android Programing Course Material Android Programing Course Material
Android Programing Course Material
Shady Selim
 
Cross mobility
Cross mobilityCross mobility
Cross mobility
Shady Selim
 
Mobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. AdaptiveMobile apps types + Responsice Vs. Adaptive
Mobile apps types + Responsice Vs. Adaptive
Shady Selim
 
Grow your business with player analytics ben frenkel & Shady Selim
Grow your business with player analytics   ben frenkel & Shady SelimGrow your business with player analytics   ben frenkel & Shady Selim
Grow your business with player analytics ben frenkel & Shady Selim
Shady Selim
 
Shady's CV 2014
Shady's CV 2014Shady's CV 2014
Shady's CV 2014
Shady Selim
 

More from Shady Selim (20)

What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
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 Android
 
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
 
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
 
The magic of flutter
The magic of flutterThe magic of flutter
The magic of flutter
 
Kotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web developmentKotlin for Frontend & Backend Web development
Kotlin for Frontend & Backend Web development
 
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
 
Grow your business with player analytics ben frenkel & Shady Selim
Grow your business with player analytics   ben frenkel & Shady SelimGrow your business with player analytics   ben frenkel & Shady Selim
Grow your business with player analytics ben frenkel & Shady Selim
 
Shady's CV 2014
Shady's CV 2014Shady's CV 2014
Shady's CV 2014
 

Recently uploaded

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
Hironori Washizaki
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
Green Software Development
 

Recently uploaded (20)

Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024SWEBOK and Education at FUSE Okinawa 2024
SWEBOK and Education at FUSE Okinawa 2024
 
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, FactsALGIT - Assembly Line for Green IT - Numbers, Data, Facts
ALGIT - Assembly Line for Green IT - Numbers, Data, Facts
 

Intro to Kotlin Minia GDG DevFest 2017

  • 1. Intro to Kotlin Prepared by Shady Selim For GDG Minia DevFest On 9/10/2017 GDG Minia + @Kotlin.Cairo #Kotlin #DevFestMENA
  • 2. Speaker Bio • Official Google Speaker • GDG Helwan Founder & Leader • Kotlin Cairo User Group Founder • Mentor in Udacity Nanodegree • Mobile & Web Evangelist • Technology savvy • Think tank • UI/UX freak www.linkedin.com/in/shadyselim/ @dr_Shady_Selim 2 +
  • 3. Who created Kotlin? • IntelliJ IDEA • PhpStorm • ReSharper • PyCharm • RubyMine • … others 3 +
  • 6. 6 +
  • 7. Is Kotlin Really new? 7 +
  • 8. Why Should I care!!? • Statically typed programming language targeting the JVM • Support for functional and OO paradigms • Pragmatic, safe, concise, great Java interop • Free and open-source • Drastically reduce the amount of boilerplate code • Lambda expression • Avoid entire classes of errors such as null pointer exceptions • Java 9 is … 8 +
  • 9. The Strengths of Kotlin • 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 9 +
  • 11. Java Model Example, cont. 11 +
  • 12. Java Model Example, cont. 12 +
  • 13. Java Model Example, cont. 13 +
  • 14. Kotlin Model Example, cont. 14 +
  • 15. The Strength Points 15 + • In addition to all what was mentioned • Extensions • Anko (Commons, Layouts, SQLite, & Coroutines) • No new • No semi colon • Smart casting • Great IDE and tooling supports • Variables (val vs. var) • functions
  • 16. Do you like reactive programming? 16 +
  • 17. You will not miss your frameworks or libraries 17 +
  • 18. You will not miss your frameworks or libraries 18 +
  • 19. You will not miss your frameworks or libraries 19 +
  • 20. You will not miss your frameworks or libraries 20 +
  • 22. Resources • https://kotlinlang.org/ • https://m.signalvnoise.com/kotlin-its-the-little-things-8c0f501bc6ea • https://www.jetbrains.com/ • https://www.slideshare.net/intelliyole/kotlin-why-do-you-care • https://github.com/ReactiveX/RxKotlin • https://spring.io/blog/2016/02/15/developing-spring-boot-applications- with-kotlin • https://www.slideshare.net/makingx/spring-kotlin • https://kotlin.link/ • http://www.overrideandroid.info/2017/04/kotlin-do-more-with-less- code.html 22 +