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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
270
Grafana:建立系統全知視角的捷徑
blueswen
0
310
Implementation Patterns
denyspoltorak
0
270
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
550
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
dchart: charts from deck markup
ajstarks
3
970
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
180
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
850
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
110
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
130
SourceGeneratorのススメ
htkym
0
160
Featured
See All Featured
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
420
Making Projects Easy
brettharned
120
6.6k
Become a Pro
speakerdeck
PRO
31
5.8k
Code Reviewing Like a Champion
maltzj
527
40k
4 Signs Your Business is Dying
shpigford
187
22k
HDC tutorial
michielstock
1
330
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Leo the Paperboy
mayatellez
4
1.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
190
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Optimizing for Happiness
mojombo
379
71k
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