O U R S P O N S O R S
October 10th, 2023
Kotlin Beginners Night
- What is Kotlin?
- Igniting your Android Journey
VIE
Sponsors
2
VIE
Housekeeping
3
VIE
News
4
VIE
Community Interview
VIE
1 Volunteer
7 easy Questions
Your favourite topic
In German or English
6
VIE
Community Interview
Who are you in one sentence?
How long have you been working with Kotlin?
What are you working on (in Kotlin)?
How is Kotlin used in this project?
Tell us about a Kotlin win.
Tell us about a Kotlin fail.
Any problems/wins using Java Libraries?
Kotlin Frameworks / Features:
7
VIE
otlin
Introduction for Programmers
Rohini Wani & Rainer Kern 2023
Covered Topics
Brief History and language Evolution
Kotlin Syntax and features:
Variables, Type Inference and Control Flow
Nullability
Class Declaration and Data classes
Object Declaration
Functions (Top level, Extension, Higher Order, Default arguments)
Functional (Single Abstract Method) Interface
Smart Casts
Destructuring Declaration
Kotlin X Serialization
9
“Hello World”
Statically typed, hybrid programming language
Runs on the JVM with full bidirectional interoperability
Runs natively on Android (generates 1.6 Bytecode)
Possibility to compile to Javascript using LLVM
Kotlin Native for iOS, MacOs and Windows
Developed by Jetbrains
Open source compiler and tools
10
YAJL - Yet another JVM Language!
Jetbrains is a well known company with good tooling support
Nothing really new - just the best of all of them
It’s about the Java ecosystem not the language
It’s (1..6).forEach{ println("very") } easy to learn
Feels like Java 2.0 (Java on steroids)
11
log -pretty --date=short
2010 Start of Development by JetBrains
2012 Open Source under Apache 2
2016 Release of v 1.0 in Feb
2017 Android Native
2019 v. 1.3.52
2022 v. 1.7.10
2023 v. 1.9.10
12
Introduction to Kotlin
14
// Java
public final String foo = "bar";
// Kotlin
val foo = "bar"
// Java
System.out.println("bar");
// Kotlin
println("bar")
package com.systemkern.demo
fun main(args: Array<String>) {
val name = if (args.length > 0) args[0] else ”Kotlin”
println("Hello $name")
}
Syntax
Defining Variables
16
17
Language Features
Type Inference
19
20
Nullability
21
Nullability (2)
22
Class declaration
23
Object Declarations
24
Pojos
25
Pojos (2)
26
Explicit Properties
27
Idiomatic Properties
28
Data Classes
29
Data Classes (2)
30
Multiple Classes per File
31
Simple Application
32
Top Level Functions (like in JS)
33
Default Arguments
34
Infix functions
35
Higher Order Functions
36
Extension properties
37
Extension Properties (2)
38
Extension Properties (3)
In the object oriented world, these extension functions and properties are insanely powerful
but ...
39
More Smart Casts
40
More Smart Casts (2)
41
More Smart Casts (3)
42
Deconstructing Data Classes
43
44
Collection Api
45
46
Igniting Your Android Journey:
Exploring the Realm of Mobile Development.
Jeremiah Polo
Android Developer
Covered Topics
Introduction to android
Why Android
Why Android
Setup development space
Android Studio
Android Basics
Android Developer tools
UI | Logic | Build Config |
Kotlin | Kotlin | Kotlin Scripts (Kts.) |
Java | Java | Groovy |
xml | | |
Android Project Directory
Android Project Directory
Tools and Language
Components of Android Application
Demo on Compose + Kotlin
Android App Development lifecycle
Planning/ �Inception
Design
Development &�Testing
Deployment
Planning / Inception
Design
Development and Testing
UI
Composables
Layout
Events
Data
Repositories
ViewModels
Testing
Logic
UI
Deployment & Monitoring
- Manually or using use of automation tools
- Fastlane, Github Action, �- Monitoring how the app performs. � - Crashlytics
Future of Mobile development
Kotlin Multi Platform
Kotlin Multi Platform
Demo on KMM
Next Steps
Keep building
Keep building
Engage in the community
Keep learning
Seeking help and resources
Source: Google Developer Relations
https://developer.android.com/courses/jetpack-compose/course)
https://developer.android.com/jetpack/compose/samples)
Community
Blogs
Courses
Q.A
Sources
Sources
Upcoming Schedule 2023
Oct: DevFest Vienna 14th October
Oct: Java Vienna: "distributed workload 23rd October� scheduler with Kafka" & TBA
Nov: Androidheads Vienna: Meet up 2nd November
Nov: Java Vienna: "Keycloak.X & quarkus" & 13th November� "Java containerization deep dive"
Nov: Domain Drive with Kotlin @ openDEVS 14th November
Dec: Weihnachtspunsch powered by APSA 12th December
86
VIE
Contact us
If you have any questions or want to get in touch with us, you are more than welcome to do so!
Our contact information:
meetup@kotlin.wien
87
VIE