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
Lars Röwekamp on Android4
Search
Enterprise Java User Group Austria
September 17, 2012
Technology
76
1
Share
Lars Röwekamp on Android4
Enterprise Java User Group Austria
September 17, 2012
More Decks by Enterprise Java User Group Austria
See All by Enterprise Java User Group Austria
Gerrit Grunwald on What the CRaC... SUPERFAST JVM STARTUP
ejug
2
180
Spring Framework 5.2 - Core Container Revisited
ejug
0
170
Andreas Caternberg on Jenkins Pipelines
ejug
0
770
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
160
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
1
300
Christoph Strobl on Spring Data & Hypermedia
ejug
0
150
Stefan Armbruster on Graph Modelling Antipatterns
ejug
1
130
Stefan Armbruster on Introduction into Neo4J
ejug
1
91
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
150
Other Decks in Technology
See All in Technology
Fabric MCPの紹介と使い分け
ryomaru0825
1
110
独断と偏見で試してみる、 シングル or マルチエージェント どっちがいいの?
shichijoyuhi
1
220
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
160
FessのAI検索モード:検索システムとLLMへの取り組み
marevol
0
150
アクセシビリティはすべての人のもの
tomokusaba
0
190
変化の激しい時代をゴキゲンに生き抜くために 〜ストレスマネジメントのススメ〜
kakehashi
PRO
1
240
運用システムにおけるデータ活用とPlatform
sansantech
PRO
0
150
Keeping Ruby Running on Cygwin
fd0
0
190
Good Enough Types: Heuristic Type Inference for Ruby
riseshia
1
400
ServiceNow Knowledge 26 の歩き方
manarobot
0
260
ファインディの事業拡大を支える 拡張可能なデータ基盤へのリアーキテクチャ
hiracky16
0
670
M5Stack CoreS3とZephyr(RTOS)で Edge AIっぽいことしてみた
iotengineer22
0
400
Featured
See All Featured
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
230
From π to Pie charts
rasagy
0
180
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.4k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
280
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Visualization
eitanlees
150
17k
Site-Speed That Sticks
csswizardry
13
1.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.6k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
190
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Transcript
@mobileLarson @_openKnowledge Lars Röwekamp | CIO New Technologies ANDROID 4
How to ...
What‘s the talk about? Architecture Building Blocks UI Principles Development
What‘s the talk about? Architecture Building Blocks UI Principles Development
Keep in mind, it‘s a mobile!
Why Android?
Smartphones
Smartphones 0 Mio 20 Mio 40 Mio 60 Mio 80
Mio Q1/11 Q2/11 Q3/11 Q4/11 Android Apple Blackberry Windows 7
Fragmentation 22,1 % 57,5 % 14,0 % 3,7 % 1.5
1.6 2.1 2.2 2.3.x 3.1 3.2 4+ September `12
Fragmentation 1.5 1.6 2.1 2.2 2.3.x 3.1 3.2 4+ September
`12 93,6%
Architecture
Architecture
Demo APP
Demo APP Splash Overview Share Preferences
Demo APP
Building Blocks
Building Blocks Activity Service Content Provider Broadcast Receiver
Building Blocks Activity Service Content Provider Broadcast Receiver > UI
logic > layout reference > lifecycle callbacks > started by own/other app > loosely coupled > Activity
Building Blocks Activity Service Content Provider Broadcast Receiver
Building Blocks Activity Service Content Provider Broadcast Receiver > background
processing > long running operation(s) > remote processes > lifecycle callbacks > started by any „component“ > Service
Building Blocks Activity Service Content Provider Broadcast Receiver
Building Blocks Activity Service Content Provider Broadcast Receiver > app‘s
data exporter > CRUD for any kind of data > REST alike access methods > ready-to-go CPs available > accessable by any app > ContentProvider
Building Blocks Activity Service Content Provider Broadcast Receiver
Building Blocks Activity Service Content Provider Broadcast Receiver > listener
for broadcast intent* > low-battery, screen-off, ... > app can initiate own BIs* > status bar notifications > selection via intent filter > BroadcastReceiver * system wide events
Building Blocks Activity Service Content Provider Broadcast Receiver
Building Blocks
Building Blocks > intention to do something > activation of
component > what to do? > which data needed? > return value expected? > Intent Intent
Building Blocks public class MainActivity extends Activity { .... @Override
public void onCreate(Bundle savedInstanceState) { ! super.onCreate(savedInstanceState); ! setContentView(R.layout.main); } public void onClickMap(View btn) { ! Intent mapViewIntent = new Intent(this, MapViewActivity.class); ! startActivity(mapViewIntent); ! } .... } ... View Event View
Building Blocks Intent Aufruf Intent mapViewIntent = new Intent(this, MapViewActivity.class);
startActivity(mapViewIntent); ! via Activity Class (MapViewActivity)
Building Blocks Intent intent = new Intent(this, Intent.ACTION_SEND); intent.putExtra(EXTRA_EMAIL, emailAddress);
intent.putExtra(EXTRA_SUBJECT, emailSubject); intent.putExtra(EXTRA_TEXT, emailText); startActivity(intent); ! via Intent Action (ACTION_SEND) Intent Aufruf
Building Blocks startActivityForResult(myIntent)
Demo APP Splash Overview Share Preferences
Demo APP
UI Principles
Unified UI
Action Bar App Icon View Control Action Btn Action Overflow
„Where am I?“ „What can I see?“ „What can I do?“
Action Bar „BTW: I need more space.“ Main Action Bar
Top Bar Bottom Bar
Action Bar
Multi-Pane
Multi-Pane „more to come ...“
Resources
Resources Szenario A Szenario B
Resources Szenario A Szenario B
Resources Resolution
Resources Orientation
Resources Sizes
Resources public class MainActivity extends Activity { .... @Override public
void onCreate(Bundle savedInstanceState) { ! super.onCreate(savedInstanceState); ! setContentView(R.layout.main); } .... } ... smallest width 600 device independent pixel? res/layout res/layout-sw600dp
Multi-Pane „more to come ... now“
Multi-Pane
Development
What do I need?
Android SDK > Application Framework > Dalvik Virtual Machine >
Integrated Browser > SQLite Database > Telephony, Bluetooth, EDGE, 3G & Wifi > Camera, Compass, GPS, Accelerometer > UI Controls, Widgets, Map
Android Tooling > Eclipse/Idea + PlugIn > Virtual Device Manager
> Emulator(s) > UI Designer > Debugger, also on device > Test Frameworks > Deployment Support (Emulator & Device) > Publishing & Signing
Shut up, we wanna see some code!
Demo APP
Coding Time
Keep in Mind
Keep in Mind Yes, size matters Expect the unexpected Do
not reinvent the wheel Less is more User Experience counts
Keep in Mind Yes, size matters Expect the unexpected Do
not reinvent the wheel Less is more User Experience counts
@mobileLarson @_openKnowledge Lars Röwekamp | CIO New Technologies ANDROID 4
How to ...