Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Kotlin presentation
1.
2. Who am I?
Corneliu Balaban
Mobile Engineering Manager @ Avira Romania
Android aficionado with BI background
Catching up on the “Kotlin for iOS” – Swift
Passionate about BioMedical and AgriTech
3. What is this …
Kotlin?
It is a Russian Island close
to St. Petersburg
Initially belong to Sweden
but after Russia annexed it
and …
Inspired the name for a new
programming language
running in the JVM
Created by JetBrains,
creators of PhpStorm,
WebStorm, PyCharm etc
Ads small overhead to the
Android dev env and dex
method count increase by
~6k methods
4. What have we
been missing
inJava?
No need for functional interfaces in order to implement own
higher functions and lambda’s
Embedded lists iterators and mapping functions
Class extensions (well… Swift has them)
Strongly typed with inferred data types
No elegant ways of avoiding NPE’s
5. Basic Kotlin
syntax
fun sayHello(name: String): Unit {
print("Hello ${name}!" + "Welcome to Bucharest Mobile Meetup");
}
OR
fun sayHello(name: String): Unit = print("Hello ${name}!" + "Welcome to Bucharest
Mobile Meetup");
OR
fun sayHello(name: String) = print("Hello ${name}!" + "Welcome to Bucharest
Mobile Meetup");
6. OOP concepts
Kotlin classes
Inherit from Java’s equivalent of Object Any
By default are final
Inheritance is enabled by prefixing the class with "open"
Primary constructor is embedded in the class signature . It cannot
contain any code
Secondary constructors are available. Need to delegate to primary
constructor
init() methods come to the rescue
Immutable variables are represented by the prefix "val" and can have
inferred data type
7. OOP concepts
Good ol' "bean"
Easily accessible via "data classes"
Makes a good separation of code if you want some objects that just
need to hold data
Can make use of companion objects to hold “static” values
8. MoreOOP …
Java developers love to be "static"
Bad luck, there are no class level methods
"Companion objects" are the new black
Used to replicate "statics" behavior in Kotlin
Can be one per class
Static variables are not available other than via " companion
objects
9. var, val … do I
need to know
them?
Immutable objects/ variables are prefixed with "val"
Can be initialized at declaration time. No data type needed as
inference works as a charm
If they cannot be initialized at declaration time then data type is
mandatory
Are there other kinds of immutable objects?
var toDoList1: List<ToDoModel> = listOf(ToDoModel(name="Buy
Milk"),ToDoModel(name="Buy Weed"));
• var toDoList: MutableList<ToDoModel> = mutableListOf()
10. If val reffers to
immutable, do
I have project
level constants
Compile time constants are defined using
the prefix "const”
Cannot have a custom getter
Can be used in annotations
Can only be of type String or another
primitive
Can or cannot be part of a class/ object
Immutable and mutable properties have intrinsic get and set methods
You can customize the visibility of the setter and or getter as well as their
behavior
Since properties need to be assigned values at compile time, the only
way to define properties that can receive runtime values is by using the
prefix "lateinit"
11. Optionals &
null safe
accessors
Swift has them so why not Kotlin as well
They are some weird implementation of Schroedingers cat
Optional properties can contain a value or can be null
Methods can return optionals as well
• To access potentially null variables/ objects you
can use ?.
• In chaining if at least one of the conditions
is null then the entire chained expression is
null
12. Loops,
operator
overloading
and string
interpolation
Iterating collections is easier with " for – in " loops . No more of the
Java " for – each" nightmare
Range loops are introduces to help us run code for exact number
of times " for i in 1 .. 27"
Operator overloading has been made available yet by another
language running on top on the JVM ( as did Groovy)
String templates and interpolations are yet another valuable
13. Lambdas and
higher order
functions
Introduced in Java 8 but cumbersome to use.Why?
Cumbersome to introduce as functional interfaces are needed
Not backwards compatible
Not really useful for Android developers as we are still stuck on Java
7
Lambdas are natively supported by Kotlin
Kotlin allows methods that can receive other functions as
parameters
Also it allows the existence of functions outside classes which is
perfect for utils
14. Extensions
Imagine that "String" would have an … ”getGreetingById" method
Extensions can be used to add custom methods to existing objects
They can be called as : Object. getGreetingById(1)
Very similar to Swift extensions
15. Useful
resources
Must try the "anko" library: https://github.com/Kotlin/anko
Get dirty with Kotlin Koans here:
http://try.kotlinlang.org/#/Kotlin%20Koans/Introduction/Strings/T
ask.kt
Try reading Antonio Leiva's Kotlin book:
https://leanpub.com/kotlin-for-android-developers
16. Oh, and one
more thing …
adding Kotlin
to your project
Not going through all the steps ;)
Check them here:
https://blog.jetbrains.com/kotlin/2013/08/working-with-kotlin-in-
android-studio/