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
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
Clean Code Revisited in Age of AI (Droidcon USA)
dpreussler
2
47
Testing, how hard can it be? (Droidcon Lisbon 2022)
dpreussler
3
540
Take your Kotlin to the next step, abandon what you’ve learned (in Java)
dpreussler
0
720
The Power of Types, KotlinConf 2019
dpreussler
7
1.5k
Java vs Kotlin
dpreussler
0
610
Property Delegation with Kotlin for Android
dpreussler
1
150
Java vs Kotlin
dpreussler
2
620
To inject or not to inject: Dependency Injection with Kotlin (Droidcon Nairobi)
dpreussler
4
320
TDD on Android
dpreussler
4
420
Other Decks in Programming
See All in Programming
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
170
My Marp Sample
sinoue0108
0
110
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
360
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
19k
プロポーザルを書いてもらう
pvcresin
0
570
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
140
進化を続けるGo toolsの現在地 / The Current State of Ever-Evolving Go Tools
hond0413
0
250
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
240
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
まずはプロンプトガイドを読もう、話はそれからだ
kiakiraki
1
200
Go 1.27からのGODEBUG / Go 1.27 リリースパーティ #go127party
mazrean
0
150
ここ半年くらいでAIに作らせたR用ツール
eitsupi
0
400
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Scaling GitHub
holman
464
140k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
800
New Earth Scene 8
popppiees
3
2.5k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Making the Leap to Tech Lead
cromwellryan
135
10k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
240
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
640
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