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
76
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
470
Take your Kotlin to the next step, abandon what you’ve learned (in Java)
dpreussler
0
630
The Power of Types, KotlinConf 2019
dpreussler
7
1.2k
Java vs Kotlin
dpreussler
0
300
Property Delegation with Kotlin for Android
dpreussler
1
100
Java vs Kotlin
dpreussler
2
330
To inject or not to inject: Dependency Injection with Kotlin (Droidcon Nairobi)
dpreussler
4
260
TDD on Android
dpreussler
4
370
To Inject or not inject, Dependency Injection in a Kotlin world (appbuilders.ch 2018)
dpreussler
10
4.6k
Other Decks in Programming
See All in Programming
DevFest - Serverless 101 with Google Cloud Functions
tunmise
0
140
2025.01.17_Sansan × DMM.swift
riofujimon
2
530
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
300
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
functionalなアプローチで動的要素を排除する
ryopeko
1
190
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
return文におけるstd::moveについて
onihusube
1
1.4k
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
8
1.9k
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.3k
ATDDで素早く安定した デリバリを実現しよう!
tonnsama
1
1.8k
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Navigating Team Friction
lara
183
15k
Mobile First: as difficult as doing things right
swwweet
222
9k
Rails Girls Zürich Keynote
gr2m
94
13k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.7k
Designing for Performance
lara
604
68k
Faster Mobile Websites
deanohume
305
30k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
The Cult of Friendly URLs
andyhume
78
6.1k
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