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
0
52
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
1
57
Spring Framework 5.2 - Core Container Revisited
ejug
0
110
Andreas Caternberg on Jenkins Pipelines
ejug
0
400
Martin Ahrer on Continuous Delivery Infrastructure With Docker
ejug
0
100
Dirk Mahler on Software Analyse mit jQAssistant & Neo4j
ejug
0
170
Christoph Strobl on Spring Data & Hypermedia
ejug
0
71
Stefan Armbruster on Graph Modelling Antipatterns
ejug
0
78
Stefan Armbruster on Introduction into Neo4J
ejug
0
60
Michael Nitschinger on Building a reactive Couchbase driver for the JVM
ejug
0
91
Other Decks in Technology
See All in Technology
Matterport を使ってクラスメソッド各拠点のバーチャルオフィスツアーを作成してみた
wakatsuki
0
160
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
コミュニティサービスに「あなたへ」フィードを リリースするまでの試行錯誤
takapy
1
150
AOAI Dev Day LLMシステム開発 Tips集
hirosatogamo
15
3.8k
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
データ分析基盤を作ってみよう~設計編~
nrinetcom
PRO
1
110
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
CEL(Common Expression Language)で書いた条件にマッチしたIAM Policyを見つける / iam-policy-finder
fujiwara3
0
710
Azure AI ことはじめ
tsubakimoto_s
0
130
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
280
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
Featured
See All Featured
Into the Great Unknown - MozCon
thekraken
20
1.3k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
Git: the NoSQL Database
bkeepers
PRO
423
64k
Rails Girls Zürich Keynote
gr2m
93
13k
What's in a price? How to price your products and services
michaelherold
239
11k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
How GitHub (no longer) Works
holman
305
140k
A Tale of Four Properties
chriscoyier
155
22k
Design by the Numbers
sachag
277
18k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
How to name files
jennybc
67
96k
Unsuck your backbone
ammeep
666
57k
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 ...