2. Matúš Jančík Originals, s.r.o.
web & facebook & android programátor
Android aplikácie programujem od jesene 2011
3. Vtipko - najlepšie vtipy
● zbierka vtipov v rôznych
kategóriách
● hodnotenie, obľubené
● synchornizácia + offline
Publikované 2. novembra 2011
● 20000 stiahnutí
● 7500 aktívnych použ.
● 300 UV denne
+ Symbian, Facebook, iPhone
Súťaž Android Code 2011
Grafika: Peter Bartoš
@hrochodyl
4. Max do vrecka
Aplikácia pre všetkých návštevníkov Zábavno obchodných centier MAX.
400 prevádzok v ZOC MAX Nitra, ZOC MAX Poprad, ZOC MAX Trenčín a ZOC MAX Trnava
Komplexný informačný systém: mobilná aplikácia, mobilný web, Facebook aplikácie
5. Android knižnice - pridanie do projektu
Knižnice pre webové služby (Facebook, Google, ...), reklamné systémy, grafy, ...
Knižnica ako projekt *.jar súbor
vytvorenie:
použitie:
6. Android Query - framework
Open-source - Apache 2.0 licencia - 80kB http:
//code.google.com/p/android-query/
Knižnica pre prácu s UI prvkami
Asynchrónne požiadavky pre HTTP
Sťahovanie obrázkov a súborov
Autentifikácia Facebook, Twitter, ...
7. Android Query - inštalácia
- stiahnutie .jar súboru a skopírovanie do /libs
private AQuery aq;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
aq = new AQuery(this);
.........
}
8. Android Query - práca s UI
bez AQuery
TextView text = (TextView) view.findViewById(R.id.text);
if(text != null){
text.setText(vtip.getText());
text.setVisibility(View.VISIBLE);
}
s AQuery
aq.id(R.id.text).text(vtip.getText()).visible();
aq.id(R.id.image1).image("http://www.vtipko.eu/test.jpg");
aq.id(R.id.text).hidden().gone().visible();
aq.id(R.id.text).background(R.color.red).textColor(R.color.black);
9. Android Query - udalosti
Pred AndroidQuery
ImageView button = (ImageView) view.findViewById(R.id.button);
if(button != null){
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//stlacene tlacidlo
}
});
}
S AndroidQuery
protected void onCreate(Bundle savedInstanceState){
//setContentView ...
AQuery aq = new AQuery(this);
aq.id(R.id.button).clicked(this, "buttonClicked");
aq.id(R.id.list).itemClicked(this, "itemClicked")
}
public void buttonClicked(View view){
//stlacene tlacidlo
}
public void itemClicked(AdapterView<?> parent, View v, int pos, long id) {
//stlacena polozka v zozname
}
12. Androrm - ORM vrstva pre databázu
Open-source - MIT licencia - 50kB http:
//androrm.the-pixelpla.net
Na základe definovaných modelov vytvorí pri
prvom spustení sqlite databázu.
Jednoduché čítanie a zapisovanie údajov.
13. Androrm - inštalácia
1. stiahnúť *.jar knižnicu zo stránky http://androrm.the-
pixelpla.net/downloads/ a vložiť do libs adresára
2. vytvorenie modelov
3. registrácia modelov v aplikácii
14. Androrm príklad - vytvárame modely
1 DB tabuľka = 1 model = 1 súbor
src/sk.matj.vtipy/Vtip.java
názov triedy = názov DB tabuľky
_id = autoincrement - automaticky
public class Vtip extends com.orm.androrm.Model {
// premenná bude stĺpec v databáze
protected CharField text; Data fields
// konštruktor BooleanField ()
public Vtip() {
super(); CharField (int)
// definovanie textovej premennej DateField ()
text = new CharField();
} DoubleField ()
// setter IntegerField (int)
public void setText(String text) {
text.set(text); LocationField ()
}
//getter
public String getText() { Relational Fields
return text.get(); ForeignKeyField
}
} ManyToManyField
OneToManyField
15. Androrm - registrujeme modely
Kdekoľvek v aplikácii stačí jeden krát zaregistrovať modely (napríklad v
spúšťacej aktivite). Pri prvom spustení sa vytvorí databáza.
src/sk.matj.vtipy/MainActivity.java
//nazov databazy
DatabaseAdapter.setDatabaseName("DatabazaVtipov");
//registracia modelov
List<Class<? extends Model>> models = new ArrayList<Class<? extends Model>>();
models.add(Vtip.class);
DatabaseAdapter adapter = new DatabaseAdapter(getApplicationContext());
adapter.setModels(models);
16. Androrm - vytvárame záznam
src/sk.matj.vtipy/PridajvtipActivity.java
//po kliknutí na tlačidlo uložiť
EditText textInput = (EditText) findViewById(R.id.text);
String value = textInput.getText().toString();
Vtip vtip = new Vtip();
vtip.setText(value);
vtip.save(getApplicationContext());
17. Androrm - čítame záznamy
Výber jedného záznamu DetailActivity.java
// výber vtipu s id = 1
Vtip vtip = Vtip.objects(getApplicationContext()).get(1);
//vtip.getText();
Výber viacerých záznamov ZoznamActivity.java
//filter - iba vtipy so slovom blond
Filter filter = new Filter();
filter.contains("text", "blond");
QuerySet<Vtip> vtipy = Vtip.objects(getApplicationContext()).filter(filter);
for(Vtip vtip : vtipy) {
//vtip.getText();
}
http://androrm.the-pixelpla.net/documentation
18. Google Analytics - meranie
webová aplikácia - počet aktívnych používateľov
http://www.google.com/analytics - lokalita návštevníkov
- používanie jednotlivých funkcií
Google Analytics SDK for Android v2 (Beta) - počet a typ pádov aplikácie
- október / 2012 - realtime počet a pohyb v aplikácii
19. Google Analytics - inštalácia 1/2
1. stiahnúť *.jar knižnicu a nahrať do /libs
https://developers.google.com/analytics/
2. práva aplikácie v AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
3. vytvoriť profil v GA a získať ID
http://www.google.com/analytics
Admin=>Account list=>New Account => Vyber možnosť "App" a vyplň všetky
údaje. Nakoniec získaš ID kód v tvare UA-XXXX-YY
20. Google Analytics - inštalácia 2/2
4. vytvoriť súbor /res/values/analytics.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="ga_trackingId">UA-XXXX-YY</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
5. upraviť jednotlivé Activity
@Override
public void onStart(){
super.onStart();
EasyTracker.getInstance().activityStart(this);
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this); //
}
21. Google Analytics - inštalácia 2/2
4. vytvoriť súbor /res/values/analytics.xml
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<string name="ga_trackingId">UA-XXXX-YY</string>
<bool name="ga_autoActivityTracking">true</bool>
<bool name="ga_reportUncaughtExceptions">true</bool>
</resources>
5. upraviť jednotlivé Activity
@Override
public void onStart(){
super.onStart();
EasyTracker.getInstance().activityStart(this);
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this); //
}
22. Google Analytics - štatistiky
- ktoré obrazovky sú najviac zobrazované (pohyb po aplikácii)
- lokalita a jazyk používateľov
- mobilné zariadenia, rozlíšenia, operátori (chýba Android verzia)
- verzie aplikácie (v2)
- sledovanie cieľov a sledovanie ecommerce (In-App payment)
- vlastné udalosti
- sledovanie časov (v2)
23. Google Analytics - realtime
- počet aktívnych používateľov, pomer noví / starí
- aktuálne zobrazené obrazovky
- verzie
- lokalita
24. Google Analytics - sledovanie udalostí
Použitie
@Override
public void onClick(View v) {
Tracker myExistingTracker = EasyTracker.getInstance().getTracker();
myTracker.trackEvent("kategoria", "akcia", "menovka", [hodnota]);
...
}
Štatistika (Obsah/Udalosti)
25. Ďakujem za pozornosť
Priestor pre otázky
www.matj.sk/androidcode
Matúš Jančík
@matusjancik fb.com/matj.sk