Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Android development
Search
Danny Preussler
November 17, 2017
Programming
0
88
Introduction to Android development
Lecture to students of University of Malta
Danny Preussler
November 17, 2017
Tweet
Share
More Decks by Danny Preussler
See All by Danny Preussler
Testing, how hard can it be? (Droidcon Lisbon 2022)
dpreussler
3
500
Take your Kotlin to the next step, abandon what you’ve learned (in Java)
dpreussler
0
690
The Power of Types, KotlinConf 2019
dpreussler
7
1.3k
Java vs Kotlin
dpreussler
0
560
Property Delegation with Kotlin for Android
dpreussler
1
130
Java vs Kotlin
dpreussler
2
600
To inject or not to inject: Dependency Injection with Kotlin (Droidcon Nairobi)
dpreussler
4
280
TDD on Android
dpreussler
4
390
To Inject or not inject, Dependency Injection in a Kotlin world (appbuilders.ch 2018)
dpreussler
10
4.8k
Other Decks in Programming
See All in Programming
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.7k
Patterns of Patterns
denyspoltorak
0
1.3k
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
360
Python札幌 LT資料
t3tra
7
1.1k
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
AtCoder Conference 2025
shindannin
0
1k
今こそ知るべき耐量子計算機暗号(PQC)入門 / PQC: What You Need to Know Now
mackey0225
3
350
大規模Cloud Native環境におけるFalcoの運用
owlinux1000
0
260
SourceGeneratorのススメ
htkym
0
160
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
170
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
130
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
160
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
900
Building an army of robots
kneath
306
46k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
300
Designing for Performance
lara
610
70k
Designing for Timeless Needs
cassininazir
0
120
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
52k
Building Adaptive Systems
keathley
44
2.9k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.2k
The untapped power of vector embeddings
frankvandijk
1
1.5k
Music & Morning Musume
bryan
47
7k
Transcript
WHAT’S UP WITH University Malta Danny Preussler @PreusslerBerlin
WHAT DO I KNOW OF GAMES?
WHO’S THAT GERMAN?
WHAT’S A DEVELOPER EXPERT?
WHAT’S A DEVELOPER EXPERT?
2009 ANDROID
WHATS UNDER THE HOOD?
None
WRITE ANDROID IN
TOOLS FOR NATIVE APPS Powered by
BUILDING BLOCKS •Activities •Services •Broadcasts
SERVICE
ACTIVITY
ACTIVITY Activity Activity Intent View View View
INTENT • startActivity( new Intent(getContext(), MainActivity.class)); • startActivity( new Intent(ACTION_VIEW,
Uri.parse(uri)));
ACTIVITY Activity Activity Activity Activity
VIEWS • Extend the class View • Defined by Code
or XML
VIEWS • Grouped in Layouts/Viewgroups (old)
VIEWS <TextView style="@style/Label10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop=”5dp" android:paddingBottom=”10dp" android:paddingStart=”6dp" android:paddingEnd=”6dp" android:text="show
this" android:textAllCaps="true" />
SOOO 2016 • Material Design • Firebase • ConstraintLayout •
Databinding • RxJava
RESOURCES
RESOURCES png files
None
DRAWABLES • PNG • XML • WEBP • Vector drawables
RESOURCES Layout xml
CONFIGURATIONS •Configuration change can be: •Rotation •Any resize i.e. split
screen •Language change
RESOURCES combinable
RESOURCES <!-- captions, menu, buttons --> <string name="settings">"Einstellungen"</string> <string name="action_overflow_menu">"Mehr"</string>
<string name="action_settings">"Einstellungen"</string> <string name="action_search">"Suche"</string> <string name="action_share">"Teilen"</string>
VIEWS <TextView style="@style/Label10" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="@dimen/settings_page_small_text_padding_top" android:paddingBottom="@dimen/settings_page_small_text_padding_bottom" android:paddingStart="@dimen/settings_page_padding_horizontal" android:paddingEnd="@dimen/settings_page_padding_horizontal" android:text="@string/dev_tve"
android:textAllCaps="true" />
ANIMATIONS myView.animate() .translationX(100) .alpha(1f) .duration(100) .start()
ANIMATIONS <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:fillAfter="true" > <alpha android:duration="1000"
android:fromAlpha="0.0" android:toAlpha="1.0" /> </set>
RESOURCES
ANIMATIONS SpringAnimation FlingAnimation
TRANSITIONS Transition explode = new Explode(); TransitionManager.beginDelayedTransition( recyclerView, explode);
THE WAY OF A NOTIFICATION • Sent • Wakes up
app • App retrieves content • Might load more from backend • Shows notification w/o actions • Actions/clicks trigger intent • Show activity
ANDROID IS MORE THAN PHONE
None
WHAT’S UP WITH University Malta Danny Preussler @PreusslerBerlin