This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1. Design android aplikac z pohleduprogramtoraTom
VondrekBratislava, 21.10.2011
2. Design android aplikace z pohledu programtoraPedstaven Tom
Vondrek Android Developer Inmite Vvoj pro chytr telefony (Android:
Mobiln Banka, YouRadio, Radio Tycoon, T24, Corkbin, SMS jzdenka a
dal) 2
3. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 3
4. Design android aplikace z pohledu programtoraCle pednky skl
pi vytven UI pro android a jejich een Jak udlat na aplikaci hez
navenek i v kdu 4
5. Design android aplikace z pohledu programtoraNe zaneme s
vvojem Koncov zazen Verze androida 5
6. Design android aplikace z pohledu programtoraKoncov zazen
6
7. Design android aplikace z pohledu programtoraKoncov zazen
7
8. Design android aplikace z pohledu programtoraKoncov zazen
Rzn hustoty pixel - ldpi, mdpi, hdpi, xhdpi Rzn velikosti - small,
normal, large, xlarge Vbava 8
9. Design android aplikace z pohledu programtora Koncov
zazennormal-hdpi small-mdpi xlarge(large)- mdpi 9
10. Design android aplikace z pohledu programtoraKoncov zazen
hustota pixel hdpi ldpi 10
11. Design android aplikace z pohledu programtoraKoncov zazen
hustota pixel 11
12. Design android aplikace z pohledu programtoraKoncov zazen
velikost 12
13. Design android aplikace z pohledu programtoraKoncov zazen
Jednotky nezvisl na hustot - dip Resources podle dpi ldpi 0.75x /
mdpi 1.0x / hdpi 1.5x /xhdpi 2.0x Layout podle velikosti, orientace
13
14. Design android aplikace z pohledu programtoraKoncov zazen
14
15. Design android aplikace z pohledu programtoraKoncov zazen
verze androida
http://developer.android.com/resources/dashboard/platform-versions.html
15
16. Design android aplikace z pohledu programtoraKoncov zazen
verze androida - pklady rozdl 2.1 - Sync adapters, nov API pro
kontakty 2.2 - Androida Cloud to Device Messaging, nov API pro
audio focus, APP2SD 2.3 - Nov gra ck tma 3.0 - Tablety Hardwarov
vbava - senzory 16
17. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 17
18. Design android aplikace z pohledu programtoraUI aplikace
18
19. Design android aplikace z pohledu programtora UI
aplikaceNotifikan lita Menu 19
20. Design android aplikace z pohledu programtoraUI aplikace -
layout ViewGroup - Linear Layout, Relative, Layout,... View -
TextView, ImageView, ListView, Button ... 20
21. Design android aplikace z pohledu programtoraUI aplikace -
layout 21
22. Design android aplikace z pohledu programtoraUI aplikace -
patterny TabBar ActionBar Dashboard Multi pane layout 22
23. Design android aplikace z pohledu programtoraUI aplikace -
TabBar 23
24. Design android aplikace z pohledu programtoraUI aplikace -
ActionBar 24
25. Design android aplikace z pohledu programtoraUI aplikace -
Dashboard 25
26. Design android aplikace z pohledu programtoraUI aplikace -
Multi pane 26
27. Design android aplikace z pohledu programtoraUI aplikace -
Multi pane 27
28. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 28
29. Design android aplikace z pohledu programtoraTudy ano dip
podporujte ob orientace d-pad ukate obsah hned jak ho mte pstup do
st, databze, kartu, dlouh operace - background thread, neblokovat
UI 29
30. Design android aplikace z pohledu programtoraTudy ne
backstack absolute layout, px portrait only modln dialog 30
31. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 31
32. Design android aplikace z pohledu programtoraDrawables
drawable je obecn koncept pro gra ku, kter me bt nakreslena na
obrazovku Bitmapy (png) 9-patche Xml Drawables 32
33. Design android aplikace z pohledu programtoraPNG v aplikaci
Ikonka aplikace Ikonky akc Pozad okna Pozad pro view (Button,
EditText) 33
34. Design android aplikace z pohledu programtoraPNG v aplikaci
Ikonka aplikace Ikonky akc Pozad okna Pozad pro view (Button,
EditText)Jedna obrazovka - 2 layouty x 3 dpi -> spousta png
34
35. Design android aplikace z pohledu programtoraShapes 35
36. Design android aplikace z pohledu programtoraShapes
Rectangle Oval Line Ring 36
37. Design android aplikace z pohledu programtora9-patch
37
38. Design android aplikace z pohledu programtora9-patch
38
39. Design android aplikace z pohledu programtoraShape vs
9-patch Shape 9-patch zakulacen rohy zakulacen rohy gradienty
gradienty nenron na pamt a padding CPU obecn roztahovateln padding
regiony 1 shape pro vechny dpi dithering 39
40. Design android aplikace z pohledu programtoraShape vs
9-patch Shape 9-patch zakulacen rohy zakulacen rohy gradienty
gradienty nenron na pamt a padding CPU obecn roztahovateln padding
regiony 1 shape pro vechny dpi dithering 40
41. Design android aplikace z pohledu programtoraXML drawables
Selector Xml Bitmap Layer list a dal 41
42. Design android aplikace z pohledu programtoraSelector
Umouje jednodue odliit rzn stavy UI normal vs focused vs pressed
42
43. Design android aplikace z pohledu programtoraSelector
43
44. Design android aplikace z pohledu programtoraXML bitmap
alias pro skutenou bitmapu dladice vez 44
45. Design android aplikace z pohledu programtoraXML bitmap
45
46. Design android aplikace z pohledu programtoraXML bitmap
46
47. Design android aplikace z pohledu programtoraLayer List
47
48. Design android aplikace z pohledu programtoraLayer List
48
49. Design android aplikace z pohledu programtoraLayer list
49
50. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 50
51. Design android aplikace z pohledu programtoraStyly a tmata
Style sada vlastnost kter uruj vzhled a formt okna nebo konkrtnho
view Theme styl aplikovan na celou aplikaci 51
52. Design android aplikace z pohledu programtoraInline vs
Style vs Theme Level 0 - inline layout.xml Level 1 - style Level 2
- theme 52
53. Design android aplikace z pohledu programtoraInline vs
Style vs Theme Level 0 - inline Level 1 - style layout.xml
Styles.xml Level 2 - theme 53
54. Design android aplikace z pohledu programtoraInline vs
Style vs Theme Level 0 - inline Level 1 - style Level 2 - theme
layout.xml themes.xml 54
55. Design android aplikace z pohledu programtoraVhody et as
Neopakuje se stle stejn kd Oddlen vzhledu od struktury UI je
vymniteln 55
56. Design android aplikace z pohledu programtoraPepnn tmat Pln
vyuit themes jak jsme si ukzali Navc: Vlastn view Ikonky Rzn styly
pro text 56
57. Design android aplikace z pohledu programtoraAttribute V
layout.xml nepiadme pmo style, ale attribute Hodnotu attributu
nastavme v theme Attribute se vyhodnot v runtimu podle aktulnho
tmatu 57
58. Design android aplikace z pohledu programtoraAttribute
nejdve deklarace co chceme mt tmovateln attrs.xml 58
59. Design android aplikace z pohledu programtoraAttribute
Nastaven hodnot pro theme 59
60. Design android aplikace z pohledu programtoraAttribute
60
61. Design android aplikace z pohledu programtora Pepnn
tmatpublic abstract class BaseActivity extends Activity { private
SkinManager mManager; private int mCurrentThemeId; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); ... final int themeId =
this.mManager.getSelectedThemeId(); this.mCurrentThemeId = themeId;
this.setTheme(themeId); } ...} 61
62. Design android aplikace z pohledu programtoraPepnn tmat
@Override protected void onResume() { if (this.mCurrentThemeId !=
this.mManager.getSelectedThemeId()) { Log.d(Utils.TAG, "new theme
selected, restarting activity"); Intent starterIntent =
this.getIntent(); starterIntent.setAction(null);
startActivity(starterIntent); finish(); super.onResume(); return; }
} 62
63. Design android aplikace z pohledu programtoraPepnn tmat
63
64. Design android aplikace z pohledu programtoraAgenda Cle
pednky Ne zaneme programovat Z eho se skld UI aplikace Co dlat a
emu se vyhnout Mme rdi XML Od inline kdu po dynamick pepnn tmat
Tipy na zvr, Q & A 64
65. Design android aplikace z pohledu programtoraAsyncTask
zpracovn na pozad synchronizace s UI AsyncTask vs Service 65
66. Design android aplikace z pohledu programtoraCompatibility
package novinky z android 3.0 dostupn i na telefonech a po 1.6
Fragmenty Loader ViewPager 66
67. Design android aplikace z pohledu programtoraBitmapy
vyvarovat se velkm bitmapm 2.3 a star - bitmapy nejsou v heapu
aplikace lep je shape, 9-patch, dladice pouvat palety 67
68. Design android aplikace z pohledu programtoraVkon
Nealokovat pamt pokud to nen poteba Zjednoduit architekturu enum
-> public static nal String.format(...) Static je lep ne Virtual
je lep ne interface 68
69. Design android aplikace z pohledu programtora Dky za
pozornost! Otzky? 69