• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Android nálevna (Czech / Android for beginners)

on

  • 8,380 views

 

Statistics

Views

Total Views
8,380
Views on SlideShare
4,474
Embed Views
3,906

Actions

Likes
1
Downloads
0
Comments
0

4 Embeds 3,906

http://blog.adevcamp.cz 3896
http://www.linkedin.com 7
http://posterous.com 2
http://translate.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Android nálevna (Czech / Android for beginners) Android nálevna (Czech / Android for beginners) Presentation Transcript

    • Android Nálevna – začínáme s Androidem Pavel Petřek CTO Praha, 8. listopadu 2010
    • Android Nálevna 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 2 z 34
    • Android Nálevna aDevCamp Co: Android konference Kdy: Jaro 2011 Kde: v Praze sledujte: twitter.com/aDevCamp 3 z 34
    • Android Nálevna 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 4 z 34
    • Android Nálevna Jak na vývoj JDK 5 / 6 Stáhnout „Android SDK“ z http://developer.android.com/ → Eclipse 3.4+ SDK → Download ADT plugin PATH=%PATH%;C:ASDKtools http://developer.android.com/ 'SDK Manager.exe' (stáhnout → SDK → Installing balíčky) Vytvořit virtual device 5 z 34
    • Android Nálevna <Demo /> Hello, Android 6 z 34
    • Android Nálevna 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 7 z 34
    • Android Nálevna Čím se budeme zabývat 8 z 34
    • Android Nálevna Čím se budeme zabývat 9 z 34
    • Android Nálevna 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á 10 z 34
    • Android Nálevna 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 11 z 34
    • Android Nálevna 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); 12 z 34
    • Android Nálevna 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 13 z 34
    • Android Nálevna Ž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 } } 14 z 34
    • Android Nálevna 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); } } 15 z 34
    • Android Nálevna 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; } }); } } 16 z 34
    • Android Nálevna 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(); } } 17 z 34
    • Android Nálevna 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 z 34
    • Android Nálevna 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 19 z 34
    • Android Nálevna 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 20 z 34
    • Android Nálevna Views - komplexní komponenty 21 z 34
    • Android Nálevna 9-patch – roztahování povoleno demo.9.png 22 z 34
    • Android Nálevna Návrh UI aplikace 23 z 34
    • Android Nálevna 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); } } 24 z 34
    • Android Nálevna Různé konfigurace pro různé pohledy 25 z 34
    • Android Nálevna 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 26 z 34
    • Android Nálevna 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) 27 z 34
    • Android Nálevna 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; 28 z 34 }
    • Android Nálevna 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 29 z 34
    • Android Nálevna <Demo /> „Hello, Android“ nestačí? 30 z 34
    • Android Nálevna 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/ 31 z 34
    • Android Nálevna 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 32 z 34
    • Android Nálevna 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! 33 z 34
    • Android Nálevna amp vC 11 aDe 20 Děkuji za Váš čas m ž t eň na e: jaře mp a po ji Ca ez raze ev anvP /aD c om itt er. Pavel Petřek tw pavel@inmite.eu http://www.inmite.eu/ http://twitter.com/pavelpetrek 34 z 34