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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Danny Preussler
November 17, 2017
Programming
97
0
Share
Introduction to Android development
Lecture to students of University of Malta
Danny Preussler
November 17, 2017
More Decks by Danny Preussler
See All by Danny Preussler
Testing, how hard can it be? (Droidcon Lisbon 2022)
dpreussler
3
520
Take your Kotlin to the next step, abandon what you’ve learned (in Java)
dpreussler
0
700
The Power of Types, KotlinConf 2019
dpreussler
7
1.4k
Java vs Kotlin
dpreussler
0
590
Property Delegation with Kotlin for Android
dpreussler
1
140
Java vs Kotlin
dpreussler
2
610
To inject or not to inject: Dependency Injection with Kotlin (Droidcon Nairobi)
dpreussler
4
290
TDD on Android
dpreussler
4
400
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
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.7k
Symfony AI in Action - SymfonyLive Berlin 2026
chr_hertel
1
150
「なんか〇〇ライブラリで脆弱性あるみたいなんだけど。。。」から始める脆弱性対応 / First Steps in Vulnerability Response
mackey0225
2
120
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
1.2k
Are We Really Coding 10× Faster with AI?
kohzas
0
170
AI時代になぜ書くのか
mutsumix
0
400
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
770
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
350
継続的な負荷検証を目指して
pyama86
3
1.2k
関係性から理解する"同一性"の型用語たち
pvcresin
1
110
AIと共に生きる技術選定 2026
sgash708
0
140
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
3
930
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
The Language of Interfaces
destraynor
162
26k
Why Our Code Smells
bkeepers
PRO
340
58k
Leo the Paperboy
mayatellez
7
1.8k
Claude Code のすすめ
schroneko
67
220k
Darren the Foodie - Storyboard
khoart
PRO
3
3.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.7k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
570
Exploring anti-patterns in Rails
aemeredith
3
360
Odyssey Design
rkendrick25
PRO
2
620
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
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