Android nálevna (Czech / Android for beginners)

8,247 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,247
On SlideShare
0
From Embeds
0
Number of Embeds
3,900
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Android nálevna (Czech / Android for beginners)

  1. 1. Android Nálevna – začínáme s Androidem Praha, 8. listopadu 2010 Pavel Petřek CTO
  2. 2. Android Nálevna 2 z 34 Kdo je kdo Pavel Petřek Vývojář, entusiasta přes chytré telefony, přednášející Inmite Vývoj pro chytré telefony (Android: Corkbin, OnTheRoad, SMS jízdenka, DMS a další) Chytré webové aplikace na Google APIs Android Full-stack
  3. 3. Android Nálevna 3 z 34 aDevCamp Co: Android konference Kdy: Jaro 2011 Kde: v Praze sledujte: twitter.com/aDevCamp
  4. 4. Android Nálevna 4 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k Integraci DEMO Otázky
  5. 5. Android Nálevna 5 z 34 Jak na vývoj JDK 5 / 6 Eclipse 3.4+ ADT plugin http://developer.android.com/ → →SDK Installing Stáhnout„Android SDK“ z http://developer.android.com/ → →SDK Download PATH=%PATH%;C:ASDKtools 'SDK Manager.exe' (stáhnout balíčky) Vytvořit virtual device
  6. 6. Android Nálevna 6 z 34 <Demo /> Hello, Android
  7. 7. Android Nálevna 7 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  8. 8. Android Nálevna 8 z 34 Čím se budeme zabývat
  9. 9. Android Nálevna 9 z 34 Čím se budeme zabývat
  10. 10. Android Nálevna 10 z 34 Stavební kameny vývoje Android aplikací APK – jar s pevnou podstrukturou s AndroidManifest.xml Komponenty – sdílejí zdroje, databáze, procesy, ... Activities - komponenty UI odpovídající jednomu formuláři / obrazovce Services - služba bez interakce (UI) běžící na pozadí Content providers - cesta jak sdílet data ven z aplikace Broadcast Intent Receivers - naslouchadlo vzkazů z vnějšku (i zevnitř) Každá komponenta má systémem řízený životní cyklus (managed lifecycle) Slovní spojení„ukončení aplikace“ vývojáře v základu nezajímá
  11. 11. Android Nálevna 11 z 34 Stavební kameny vývoje Android aplikací 2 Intent (komunikační balíček) + Intent filtry Intent intent = new Intent(Intent.ACTION_VIEW, "http://www.youtube.com/"); startActivity(intent); Přehrát Sdílet
  12. 12. Android Nálevna 12 z 34 API – co a jak Android API nepokrývá zcela Java SE 5.0 API Volitelné fičury Location-Based Services Media APIs 3D Graphics s OpenGL ES a další Manažery pro přístup k fičurám activity, window, content, resource, location, notification, telephone, ... LocationManager lm = (LocationManager) Context.getSystemService(Context.LOCATION_SERVICE);
  13. 13. Android Nálevna 13 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  14. 14. Android Nálevna 14 z 34 Životní cyklus aktivity public class MyTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } @Override protected void onResume() { super.onStart(); // Napr. pust naslouchani GPS } @Override protected void onPause() { super.onPause(); // Napr. zastav GPS } }
  15. 15. Android Nálevna 15 z 34 Uživatelské menu Klávesa MENU na každém zařízení s Androidem public class MyTestActivity extends Activity { public static final int MENU_BROWSER = 1; // ... more stuff ... @Override public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_BROWSER, 0, "Browser"); return super.onCreateOptionsMenu(menu); } @Override public boolean onMenuItemSelected(int featureId, MenuItem item) { if (item.getItemId() == MENU_BROWSER) { // Do something.... } return super.onMenuItemSelected(featureId, item); } }
  16. 16. Android Nálevna 16 z 34 Dlouhý dotyk Pro vyvolání extra menu na položkách použijete dlouhý dotyk public class MyTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // init view Button button = (Button) findViewById( R.id.btn_button1); button.setLongClickable(true); button.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { // Do something return true; } }); } }
  17. 17. Android Nálevna 17 z 34 Neobtěžujte uživatele dialogy Pro jednoduché sdělení používejte Toasty public class ContactActivity extends Activity { // a lot of stuff here public void saveDone() { Toast.makeText(this, "Contact created", Toast.LENGTH_SHORT).show(); } }
  18. 18. Android Nálevna 18 z 34 Neobtěžujte uživatele dialogy Pro jednoduché sdělení používejte Toasty public class ContactActivity extends Activity { // a lot of stuff here public void saveDone() { Toast.makeText(this, "Contact created", Toast.LENGTH_SHORT).show(); } }
  19. 19. Android Nálevna 19 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  20. 20. Android Nálevna 20 z 34 Views – co máme v základu? Layouty RelativeLayout, LinearLayout, ... UI komponenty TextView, CheckBox, Spinner, Date/Time picker, Button, RadioButton, ListView, ... Themes styles-set pro aplikaci 9-patch image resource
  21. 21. Android Nálevna 21 z 34 Views - komplexní komponenty
  22. 22. Android Nálevna 22 z 34 9-patch – roztahování povoleno demo.9.png
  23. 23. Android Nálevna 23 z 34 Návrh UI aplikace
  24. 24. Android Nálevna 24 z 34 Návrh UI aplikace public class MyTestActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initUI(); } private void initUI() { LinearLayout ll = new LinearLayout(this); ll.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT)); TextView tv = new TextView(this); tv.setLayoutParams(new ViewGroup.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); tv.setText("Toto je muj text"); tv.setTextColor(Color.YELLOW); ll.addView(tv); setContentView(ll); } }
  25. 25. Android Nálevna 25 z 34 Různé konfigurace pro různé pohledy
  26. 26. Android Nálevna 26 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  27. 27. Android Nálevna 27 z 34 Jeden balíček pro všechny telefony Konfigurace podoby, chování, jazyka, adres serverů, defaultních míst na mapě, aj. v aplikaci ? Odpověď je suffix v názvu adresáře konfigurace Skládá se layout-vlastnost1-vlastnost2 (např. layout-lang-cs- 320x480)
  28. 28. Android Nálevna 28 z 34 Dobrá rada na závěr - používejte již hotové aplikace Intenty + hotové dostupné aplikace = mocná zbraň Dvě oblasti využití Interní aplikace – vždy dostupné Externí aplikace – nutno testovat dostupnost, případně nabídnout instalaci if (isIntentAvailable("com.google.SCAN")) { Intent intent = new Intent("com.google.SCAN"); intent.putExtra("SCAN_MODE", "QR_CODE_MODE"); startActivityForResult(intent, 0); } else { Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:com.google.scan")); startActivity(intent); } } // more stuff public static boolean isIntentAvailable(String action) { List list = context.getPackageManager() .queryIntentActivities(new Intent(action), PackageManager.MATCH_DEFAULT_ONLY); return list.size() > 0; }
  29. 29. Android Nálevna 29 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  30. 30. Android Nálevna 30 z 34 <Demo /> „Hello, Android“ nestačí?
  31. 31. Android Nálevna 31 z 34 Zdroje http://www.android.com/ http://groups.google.com/ http://www.androidsnippets.org/ http://www.stackoverflow.com/ http://www.svetandroida.cz/ http://www.google.com/
  32. 32. Android Nálevna 32 z 34 Agenda Úvod Nástroje vývoje aneb jak na„Hello Android“ Stavební kameny aplikací na Androidu Ovládání aplikace Jak si složit UI Pár poznámek k integraci DEMO Otázky
  33. 33. Android Nálevna 33 z 34 Otázky? Inzerce: Jste nadšený(-á) programátor(-ka) s nohama na zemi? Vyvíjíte pro chytré telefony (Android, iPhone, ...) a chce se naučit ještě více? Ozvěte se nám na chci.job@inmite.eu, hledáme schopné mozky!
  34. 34. Android Nálevna 34 z 34 Děkuji za Váš čas Pavel Petřek pavel@inmite.eu http://www.inmite.eu/ http://twitter.com/pavelpetrek a nezapomeňte: aDevCamp v Praze již na jaře 2011 twitter.com/aDevCamp

×