Your SlideShare is downloading. ×
Matúš Jančík: Programuj rýchlejšie, meraj presnejšie
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Matúš Jančík: Programuj rýchlejšie, meraj presnejšie

1,985
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,985
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Programuj rýchlejšie,meraj presnejšieUžitočné Android knižnice www.matj.sk/androidcodeKošice, 8. november 2012 Matúš Jančík
  • 2. Matúš Jančík Originals, s.r.o. web & facebook & android programátorAndroid 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 vreckaApliká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 TrnavaKomplexný informačný systém: mobilná aplikácia, mobilný web, Facebook aplikácie
  • 5. Android knižnice - pridanie do projektuKnižnice pre webové služby (Facebook, Google, ...), reklamné systémy, grafy, ...Knižnica ako projekt *.jar súborvytvorenie:použitie:
  • 6. Android Query - frameworkOpen-source - Apache 2.0 licencia - 80kB http://code.google.com/p/android-query/Knižnica pre prácu s UI prvkamiAsynchrónne požiadavky pre HTTPSťahovanie obrázkov a súborovAutentifikácia Facebook, Twitter, ...
  • 7. Android Query - inštalácia- stiahnutie .jar súboru a skopírovanie do /libsprivate AQuery aq;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test); aq = new AQuery(this); .........}
  • 8. 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);
  • 9. 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}
  • 10. 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(); }}
  • 11. Android Query - záverDownload, Wiki, Docs, Sourcecode.google.com/p/android-querygithub.com/androidquery/androidqueryAndroid aplikáciaAndroidQuery demo snippetshttp://bit.ly/aquery
  • 12. Androrm - ORM vrstva pre databázuOpen-source - MIT licencia - 50kB http://androrm.the-pixelpla.netNa základe definovaných modelov vytvorí priprvom spustení sqlite databázu.Jednoduché čítanie a zapisovanie údajov.
  • 13. Androrm - inštalácia1. stiahnúť *.jar knižnicu zo stránky http://androrm.the- pixelpla.net/downloads/ a vložiť do libs adresára2. vytvorenie modelov3. registrácia modelov v aplikácii
  • 14. Androrm príklad - vytvárame modely 1 DB tabuľka = 1 model = 1 súborsrc/sk.matj.vtipy/Vtip.java názov triedy = názov DB tabuľky _id = autoincrement - automatickypublic 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 modelyKdekoľvek v aplikácii stačí jeden krát zaregistrovať modely (napríklad vspúšť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);
  • 16. 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());
  • 17. Androrm - čítame záznamyVý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 blondFilter 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 - meraniewebová aplikácia - počet aktívnych používateľovhttp://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/21. 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ť IDhttp://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
  • 20. Google Analytics - inštalácia 2/24. 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); //}
  • 21. Google Analytics - inštalácia 2/24. 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); //}
  • 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@Overridepublic 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