Post on 26-Jun-2015
transcript
Programuj rýchlejšie,meraj presnejšie
Košice, 8. november 2012 Matúš Jančík
Užitočné Android knižnice www.matj.sk/androidcode
web & facebook & android programátor
Android aplikácie programujem od jesene 2011
Matúš Jančík Originals, s.r.o.
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 2011Grafika: Peter Bartoš
@hrochodyl
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
Android knižnice - pridanie do projektu
Knižnica ako projektvytvorenie:
použitie:
Knižnice pre webové služby (Facebook, Google, ...), reklamné systémy, grafy, ...
*.jar súbor
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 HTTPSťahovanie obrázkov a súborovAutentifikácia Facebook, Twitter, ...
Android Query - inštalácia
- stiahnutie .jar súboru a skopírovanie do /libs
private AQuery aq; @Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test);
aq = new AQuery(this);
......... }
Android Query - práca s UIbez AQueryTextView text = (TextView) view.findViewById(R.id.text); if(text != null){ text.setText(vtip.getText()); text.setVisibility(View.VISIBLE);}
s AQueryaq.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);
Android Query - udalostiPred AndroidQueryImageView button = (ImageView) view.findViewById(R.id.button); if(button != null){ button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //stlacene tlacidlo } });}
S AndroidQueryprotected 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}
Android Query - asyncMetóda:ajax(java.lang.String url, java.lang.Class<K> type, AjaxCallback<K> callback)
AndroidManifest.xml<uses-permission android:name="android.permission.INTERNET" />
ActivityString url = "http://api.vtipko.eu/vtipy"; aq.ajax(url, JSONObject.class, this, "jsonCallback");
public void jsonCallback(String url, JSONObject json, AjaxStatus status){ if(json != null){ //uspesny request }else{ //chyba //status.getCode(); //status.getMessage(); }}
Android Query - záver
Download, Wiki, Docs, Sourcecode.google.com/p/android-querygithub.com/androidquery/androidquery
Android aplikáciaAndroidQuery demo snippetshttp://bit.ly/aquery
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.
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
Androrm príklad - vytvárame modelysrc/sk.matj.vtipy/Vtip.java
public class Vtip extends com.orm.androrm.Model { // premenná bude stĺpec v databáze protected CharField text; // konštruktor public Vtip() { super(); // definovanie textovej premennej text = new CharField(); } // setter public void setText(String text) { text.set(text); } //getter public String getText() { return text.get(); }}
1 DB tabuľka = 1 model = 1 súbornázov triedy = názov DB tabuľky_id = autoincrement - automaticky
Data fieldsBooleanField ()
CharField (int)
DateField ()
DoubleField ()
IntegerField (int)
LocationField ()
Relational FieldsForeignKeyField
ManyToManyField
OneToManyField
Androrm - registrujeme modelyKdekoľ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 databazyDatabaseAdapter.setDatabaseName("DatabazaVtipov");
//registracia modelovList<Class<? extends Model>> models = new ArrayList<Class<? extends Model>>();models.add(Vtip.class); DatabaseAdapter adapter = new DatabaseAdapter(getApplicationContext());adapter.setModels(models);
Androrm - vytvárame záznamsrc/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());
Androrm - čítame záznamy
Výber jedného záznamu DetailActivity.java// výber vtipu s id = 1Vtip 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
Google Analytics - meranie
webová aplikáciahttp://www.google.com/analytics
Google Analytics SDK for Android v2 (Beta)- október / 2012
- počet aktívnych používateľov- lokalita návštevníkov- používanie jednotlivých funkcií- počet a typ pádov aplikácie- realtime počet a pohyb v aplikácii
Google Analytics - inštalácia 1/2
1. stiahnúť *.jar knižnicu a nahrať do /libshttps://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/analyticsAdmin=>Account list=>New Account => Vyber možnosť "App" a vyplň všetky údaje. Nakoniec získaš ID kód v tvare UA-XXXX-YY
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@Overridepublic void onStart(){ super.onStart(); EasyTracker.getInstance().activityStart(this);}
@Overridepublic void onStop() { super.onStop(); EasyTracker.getInstance().activityStop(this); //}
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@Overridepublic void onStart(){ super.onStart(); EasyTracker.getInstance().activityStart(this);}
@Overridepublic void onStop() { super.onStop(); EasyTracker.getInstance().activityStop(this); //}
- 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)
Google Analytics - štatistiky
- počet aktívnych používateľov, pomer noví / starí- aktuálne zobrazené obrazovky- verzie - lokalita
Google Analytics - realtime
Google Analytics - sledovanie udalostí
Použitie@Overridepublic void onClick(View v) { Tracker myExistingTracker = EasyTracker.getInstance().getTracker(); myTracker.trackEvent("kategoria", "akcia", "menovka", [hodnota]); ... }
Štatistika (Obsah/Udalosti)
Priestor pre otázky
www.matj.sk/androidcode
Matúš Jančík@matusjancik fb.com/matj.sk
Ďakujem za pozornosť