Top Banner
Design android aplikací z pohledu programátora Tomáš Vondráček Bratislava, 21.10.2011
69

Design android-aplikaci-z-pohledu-programatora

Dec 18, 2014

Download

Documents

Jesenne stretnutie GTUG Bratislava 21.10.2011
Welcome message from author
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