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
1
68
Lars Röwekamp on Android4
Enterprise Java User Group Austria
September 17, 2012
Tweet
Share
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
120
Spring Framework 5.2 - Core Container Revisited
ejug
0
140
Andreas Caternberg on Jenkins Pipelines
ejug
0
630
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
130
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
1
260
Christoph Strobl on Spring Data & Hypermedia
ejug
0
94
Stefan Armbruster on Graph Modelling Antipatterns
ejug
1
100
Stefan Armbruster on Introduction into Neo4J
ejug
1
81
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
110
Other Decks in Technology
See All in Technology
SRE with AI:実践から学ぶ、運用課題解決と未来への展望
yoshiiryo1
0
340
クラウド開発の舞台裏とSRE文化の醸成 / SRE NEXT 2025 Lunch Session
kazeburo
1
600
Figma Dev Mode MCP Serverを用いたUI開発
zoothezoo
0
230
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
120
ビジネス職が分析も担う事業部制組織でのデータ活用の仕組みづくり / Enabling Data Analytics in Business-Led Divisional Organizations
zaimy
1
400
AI時代にも変わらぬ価値を発揮したい: インフラ・クラウドを切り口にユーザー価値と非機能要件に向き合ってエンジニアとしての地力を培う
netmarkjp
0
130
20250708オープンエンドな探索と知識発見
sakana_ai
PRO
4
1k
〜『世界中の家族のこころのインフラ』を目指して”次の10年”へ〜 SREが導いたグローバルサービスの信頼性向上戦略とその舞台裏 / Towards the Next Decade: Enhancing Global Service Reliability
kohbis
3
1.5k
Maintainer Meetupで「生の声」を聞く ~講演だけじゃないKubeCon
logica0419
0
110
スタックチャン家庭用アシスタントへの道
kanekoh
0
120
低レイヤソフトウェア技術者が YouTuberとして食っていこうとした話
sat
PRO
0
500
全部AI、全員Cursor、ドキュメント駆動開発 〜DevinやGeminiも添えて〜
rinchsan
10
5.1k
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Site-Speed That Sticks
csswizardry
10
700
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Agile that works and the tools we love
rasmusluckow
329
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Scaling GitHub
holman
460
140k
Code Review Best Practice
trishagee
69
19k
Documentation Writing (for coders)
carmenintech
72
4.9k
Thoughts on Productivity
jonyablonski
69
4.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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 ...