Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Lars Röwekamp on Android4
Search
Enterprise Java User Group Austria
September 17, 2012
Technology
83
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
230
Spring Framework 5.2 - Core Container Revisited
ejug
0
190
Andreas Caternberg on Jenkins Pipelines
ejug
1
830
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
180
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
1
320
Christoph Strobl on Spring Data & Hypermedia
ejug
0
170
Stefan Armbruster on Graph Modelling Antipatterns
ejug
1
150
Stefan Armbruster on Introduction into Neo4J
ejug
1
120
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
170
Other Decks in Technology
See All in Technology
エンタメ企業のM&Aを支えるデータ基盤 ― 統合から店舗のリアルタイム分析まで / Data Engineering Summit 2026
genda
0
170
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
210
WasmをRustにする
sansantech
PRO
0
250
LambdaWebFunctionsを試してみた / exploring-lambda-web-functions
koukihosaka
1
340
AIにシークレットを見せない、WSL2で安全な開発環境
yazm
0
300
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
110
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
How to Design Configuration for Rails Applications
willnet
1
780
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
142
7.8k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
The Pragmatic Product Professional
lauravandoore
37
7.5k
Designing Experiences People Love
moore
143
24k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
260
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Mobile First: as difficult as doing things right
swwweet
225
10k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
380
The Curse of the Amulet
leimatthew05
3
16k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
520
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 ...