SlideShare una empresa de Scribd logo
1 de 34
Android Nálevna – začínáme s Androidem
Praha, 8. listopadu 2010
Pavel Petřek
CTO
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
Android Nálevna
3 z 34
aDevCamp
Co: Android konference
Kdy: Jaro 2011
Kde: v Praze
sledujte: twitter.com/aDevCamp
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
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
Android Nálevna
6 z 34
<Demo />
Hello, Android
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
Android Nálevna
8 z 34
Čím se budeme zabývat
Android Nálevna
9 z 34
Čím se budeme zabývat
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á
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
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);
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
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
}
}
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);
}
}
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;
}
});
}
}
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();
}
}
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();
}
}
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
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
Android Nálevna
21 z 34
Views - komplexní komponenty
Android Nálevna
22 z 34
9-patch – roztahování povoleno
demo.9.png
Android Nálevna
23 z 34
Návrh UI aplikace
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);
}
}
Android Nálevna
25 z 34
Různé konfigurace pro různé pohledy
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
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)
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;
}
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
Android Nálevna
30 z 34
<Demo />
„Hello, Android“
nestačí?
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/
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
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!
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

Más contenido relacionado

Similar a Android nálevna (Czech / Android for beginners)

Jan Kaštánek - Od webových aplikací k Androidu
Jan Kaštánek - Od webových aplikací k AndroiduJan Kaštánek - Od webových aplikací k Androidu
Jan Kaštánek - Od webových aplikací k AndroiduCtvrtkoncz
 
Android Development for Phone and Tablet
Android Development for Phone and TabletAndroid Development for Phone and Tablet
Android Development for Phone and TabletTomáš Kypta
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíRené Stein
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPIJan Vyhnánek
 
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)Martin Zeman
 
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)Péhápkaři
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitněJiří Mareš
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiDevelcz
 
Adam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerViewAdam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerViewmdevtalk
 
Dependency injection v .Net Frameworku
Dependency injection v .Net FrameworkuDependency injection v .Net Frameworku
Dependency injection v .Net FrameworkuRené Stein
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware HoudinyCESNET
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketTomáš Páral
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdanielkolman
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPIbendis90
 
Open Source projekty a INSPIRE
Open Source projekty a INSPIREOpen Source projekty a INSPIRE
Open Source projekty a INSPIREJachym Cepicky
 
Czechitas - školení PHP/Symfony MicroKernel
Czechitas - školení PHP/Symfony MicroKernelCzechitas - školení PHP/Symfony MicroKernel
Czechitas - školení PHP/Symfony MicroKernelDennis Fridrich
 

Similar a Android nálevna (Czech / Android for beginners) (20)

Jan Kaštánek - Od webových aplikací k Androidu
Jan Kaštánek - Od webových aplikací k AndroiduJan Kaštánek - Od webových aplikací k Androidu
Jan Kaštánek - Od webových aplikací k Androidu
 
Android Development for Phone and Tablet
Android Development for Phone and TabletAndroid Development for Phone and Tablet
Android Development for Phone and Tablet
 
201502.ReinIT.Dev
201502.ReinIT.Dev201502.ReinIT.Dev
201502.ReinIT.Dev
 
Strasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikacíStrasti a slasti vývoje wp7 aplikací
Strasti a slasti vývoje wp7 aplikací
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
 
Zaverecny ukol
Zaverecny ukolZaverecny ukol
Zaverecny ukol
 
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
MicroKernel - aneb špatný název pro Helper (5. sraz přátel Symfony v Praze)
 
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
MicroKernel aneb spatny nazev pro Helper (5. sraz pratel Symfony)
 
IoC and .NET
IoC and .NETIoC and .NET
IoC and .NET
 
20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně20110511 Vývoj software - produktivně, efektivně, kvalitně
20110511 Vývoj software - produktivně, efektivně, kvalitně
 
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve WikidiLex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
Lex Vjatkin + Ondřej procházka: Jak to děláme ve Wikidi
 
Adam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerViewAdam Šimek: Optimalizace skrolování, RecyclerView
Adam Šimek: Optimalizace skrolování, RecyclerView
 
Dependency injection v .Net Frameworku
Dependency injection v .Net FrameworkuDependency injection v .Net Frameworku
Dependency injection v .Net Frameworku
 
Malware Houdiny
Malware HoudinyMalware Houdiny
Malware Houdiny
 
2011 Unit Testy
2011 Unit Testy2011 Unit Testy
2011 Unit Testy
 
MoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache WicketMoroSystems na ostravském CZJUGu o Apache Wicket
MoroSystems na ostravském CZJUGu o Apache Wicket
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Závěrečný úkol KPI
Závěrečný úkol KPIZávěrečný úkol KPI
Závěrečný úkol KPI
 
Open Source projekty a INSPIRE
Open Source projekty a INSPIREOpen Source projekty a INSPIRE
Open Source projekty a INSPIRE
 
Czechitas - školení PHP/Symfony MicroKernel
Czechitas - školení PHP/Symfony MicroKernelCzechitas - školení PHP/Symfony MicroKernel
Czechitas - školení PHP/Symfony MicroKernel
 

Android nálevna (Czech / Android for beginners)

  • 1. Android Nálevna – začínáme s Androidem Praha, 8. listopadu 2010 Pavel Petřek CTO
  • 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. Android Nálevna 3 z 34 aDevCamp Co: Android konference Kdy: Jaro 2011 Kde: v Praze sledujte: twitter.com/aDevCamp
  • 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. 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. Android Nálevna 6 z 34 <Demo /> Hello, Android
  • 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. Android Nálevna 8 z 34 Čím se budeme zabývat
  • 9. Android Nálevna 9 z 34 Čím se budeme zabývat
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Android Nálevna 21 z 34 Views - komplexní komponenty
  • 22. Android Nálevna 22 z 34 9-patch – roztahování povoleno demo.9.png
  • 23. Android Nálevna 23 z 34 Návrh UI aplikace
  • 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. Android Nálevna 25 z 34 Různé konfigurace pro různé pohledy
  • 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. 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. 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. 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. Android Nálevna 30 z 34 <Demo /> „Hello, Android“ nestačí?
  • 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. 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. 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. 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