• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LWEEKAndroid development
    Diskuse o vývoji aplikací pro platformu Android.
    -----------------
    Tipy, Triky, Postřehy, Začátečnický help, Nápady na nové aplikace.

    Oficiální developerská stránka: http://developer.android.com
    Něco málo v češtině na WiKi android fora: http://wiki.androidforum.cz/index.php/Programov%C3%A1n%C3%AD
    Článek na Zrojáku: http://zdrojak.root.cz/clanky/vyvoj-pro-android-ii/

    Docela zajímavé tutoriály přímo od vývojářů ze Sony Ericsson:

    na tvorbu vlastního View adapteru
    http://blogs.sonyericsson.com/developerworld/2010/05/20/android-tutorial-making-your-own-3d-list-part-1/

    zajímavý nápad na zoomování jedním prstem - aneb vytváření gest
    http://blogs.sonyericsson.com/developerworld/2010/05/18/android-one-finger-zoom-tutorial-part-1/
    rozbalit záhlaví
    DRIZDIK
    DRIZDIK --- ---
    MR_DAN:
    1) co říká DACAN: , 21 je nejpohodlnější pro tebe, plná podpora multidex v ART runtimu, rychlejší vývojovej cyklus a ty drobnosti ala vectory atd, plus od 19 je plná podpora RTL jazyků a UI, pokud cheš dělat něco globálního, tak v tomhle si od 19 ušetříš práci.
    2) Dagger2 je jasnej, ale pokud bys to chtěl používat jako YAZZMAN:, tak doporučím kouknout po nějaký další plugin knihovně, která ti dovolí těm presenterům zachovat jednoduše stav a aynchroní operace při rotacích obrazovky a podobně.
    3) v podstatě se ti to blíží komplet k hezkýmu Java vývoji, můžeš si přidat i nějaký ORM, využít pořádně MVVM databinding, kdy se ti deklarativně napsaný UI obnovuje podle změn na modelu bez zbytečnýho boilerplate kodu, message bus a podobně, všechno na androidu už je, případně pokusy o jiné věci typu unidirect Jedux,
    DACAN
    DACAN --- ---
    MR_DAN:
    1) to je podle typu aplikace, cilovky a procenta lidi, co pouzivaji nejnizsi verze. mame ted v jedne app 16, ale to je hlavne kvuli tomu, ze app by mela vyuzivat jiz odlozene (tudiz neupdatovatelne sracky) telefony v domacnostech. (pro pohodlnej vyvoj 21+, protoze se tam lame spousta apicek, jako camera1 vs camera2, vector drawables atd...)
    2) Dagger 2 od googlu je takovej prumyslovej standard
    YAZZMAN
    YAZZMAN --- ---
    MR_DAN: Hele, jeste loni jsme minSDK meli 16, letos jsme to zvedli u novych projektu na 19...

    Dagger2 pouzivame na injketovani presenteru do views v MVP, ale asi by s tim sly delat i divocejsi veci :)
    MR_DAN
    MR_DAN --- ---
    hola, mate tu zivo, tak ja sem zas hodim nejakej dotaz :-)
    - jak moc resite kompatibilitu? resp. co je nejzdravejsi minSdkVersion pro pomer mnozstvi uzivatelu/programatorska spokojenost? 21-22?
    - co dependency injection? chci toho moc, poblaznenej z vyvoje javy, nebo je to realny tema, kterym se mam zabyvat? nasel jsem nejaky Dagger 2, ale moc jsem to zatim nezkoumal

    jinak ty rady s polohou byly super, vsechno to fakt funguje :-) musel jsem pochopit, ze to neni tak, ze si kazda appka rekne zjisti polohu jen pro me a dej mi vysledek, ale ze je ten lokalizacni modul sdilenej (nebo tak to aspon chapu)
    MR_DAN
    MR_DAN --- ---
    bomba! dik moc obema :-) zena zitra rano odlita na 3 dny na sluzebku, tak vsechny ty rady zkusim zuzitkovat.. (devky a koks jsou pro amatery)
    DRIZDIK
    DRIZDIK --- ---
    MR_DAN: vypni multi-core v advanced nastaveni noveho emulatoru, potom se s tím dá dobře fungovat a u větších appek to je na deploy celého APK i rychlejší, na zrychlení cyklu si projít přednášky z G I/O, které se toho týkají, ale obecně je to v minimalizaci bordelu v projektu, lehké úpravě jeho nastavení (minSdk si pro debug hodit na vyšší verzi než 21 kvůli multidexu a podobně) a používání instant runu s co nejnovějším studiem
    Případně můžeš zkusit JRebel a jejich plugin do studia.
    A taky si appku přizpůsobit tak, ať ti startuje už tamkam chceš a nemusíš při každém redeployi klikat na potřebný stav, případně si raději udělat malinký projekt jen pro otestování komnkrétní funkcionality, tam ji odladit, minimalizovat, případně extrahovat do modulu a přenést do svého projektu. jak vídám lidi, tak tímhle ve výsledku ztratí nejvíce času.
    JOHNY_G
    JOHNY_G --- ---
    Až na výjimky používám výhradně živý telefon na ADB. Alespoň na mém PC je to daleko rychlejší snad ve všech ohledech (boot, instalace, odezva prostředí, atp.). Ale znám i vývojáře, kteří emulátor používají; není na tom nic špatného, jen jsem s ním měl vždycky obludné výkonové problémy.
    MR_DAN
    MR_DAN --- ---
    JOHNY_G: ja to tam nedratuju, to je jen zkratka tady, abych nepsal romany...
    kazdopadne diky za radu, kouknu na to :-)
    btw muceni se s emulatorem v ramci android studio - da se to udelat jinak a lepe? jde mi o co nejrychlejsi cyklus zmenim kod <-> vyzkousim (+debug pokud to nefacha a nevim proc)
    JOHNY_G
    JOHNY_G --- ---
    MR_DAN: V prvé řadě bych tam nedrátoval GPS (pomineme, že bys měl používat místo "gps" konstantu LocationManager.GPS_PROVIDER) a nasadil rovnou FusedLocationProviderClient (jestli se mučíš emulátorem, tak budeš potřebovat ten s Google APIs). Pak si ještě zkontroluj nastavení, jestli nemáš vypnuté polohové služby v systému.
    MR_DAN
    MR_DAN --- ---
    MR_DAN: locationManager.getLastKnownLocation("gps") mi zarputile vraci null a to uz jsem se probojoval pres permissiony a v emulatoru jsem nastavil x=14.4749374&y=50.0950096, ale ten provider o tom nevi
    MR_DAN
    MR_DAN --- ---
    JOHNY_G: jo uz jsem do toho Retrofitu trochu proniknul (vic nez v case psani toho dotazu), vlastne uz mi to komunikuje, pohoda :-) asi to nebude spatna knihovna, s trochou konfigurovani serializace na backendu to slape a ten kod je jednoduchej a prehlednej..
    dalsi zadrhele prijdou az budu resit authentikaci...
    fragmenty jsou pro me zatim neznamej termin (teda v kontextu androidu), jeste mam co studovat...

    MAKROUSEK: ja jsem myslel pouzivani primo classy HttpClient, a parsovani odpovedi ze Stringu, bez pouziti neceho uz hotoveho viz vyse
    po strance architektury je to jasna volba, stejny backend obslouzi vsechny typy klientu


    jeste dotaz, ten bude asi spis na emulator v android studiu - LocationManager donutim vracet mi nejakou polohu asi jen tak, ze zapnu nejaky Listener a v tom emulatoru rucne poslu souradnice az bude bezet, co?
    resp. da se nejak jednoduse ziskat gps poloha synchronne?
    dik!! :-)
    JOHNY_G
    JOHNY_G --- ---
    MR_DAN: Myslím, že většina světa už na REST používá Retrofit, a nic moc ručního v něm nevidím :-). Naopak, jenom nasadíš anotace a ono ti to z toho poleze už zparsované. Jestli je to na tebe overkill, tak na triviální věci stačí třeba Ion, nebo milion jemu podobných asynchronních stahovátek. Na Spring bych se vysral. A já nesouhlasím ani s tím, že co screena to Activity ;-). Dávno tomu. Implementuj rovnou do fragmentů, ať máš možnost používat navbar/taby/drawer/whatever. Content Provider nejspíš potřebovat nebudeš. Alespoň ne do začátku. Je to primárně (i když ne výhradně) k posílání dat ven z appky.
    MAKROUSEK
    MAKROUSEK --- ---
    MR_DAN: Me kdyz delali takovouhle appku, tak to udelali presne tak. Databazi na hostingu a http API.
    MR_DAN
    MR_DAN --- ---
    spring for android? zni to lakave, je to dobry?
    jako kdyz na nejakych navodech vidim komunikaci pomoci HttpClienta, tak mam chut si vzit bederni rousku a jit mlatit jednim kamenem do druhyho ve snaze vykresat jiskru :-)
    MR_DAN
    MR_DAN --- ---
    zdravim vsechny, mam par zacatecnickych dotazu - jednou pulkou mozku procitam navody, druhou vyvijim prototyp a treti (to je ta nejmensi) zjistuju zajimavy detaily co by mi mohly uniknout :-)
    pustil jsem se do vyvoje appky, v androidu jsem jeste nikdy nic netvoril (12 let se zivim vyvojem javy), mam hotovy backend, coz je nejake jednoduche rest api co mi bezi na serveru a ted musim udelat nejake ty obrazovky co mi s nim budou komunikovat...
    nacetl jsem si ze co screena to Activity, ale nenasel jsem nejake jednoznacne doporuceni jak komunikovat s webovymi sluzbami - je na to nejaka super knihovna nebo navrhovy vzor, nebo si udelam proste svuj connector, pouziju treba Retrofit (to jsem vygooglil, neznam) a komunikaci si obstaram takhle "rucne"?
    dalsi vec je pojem Content Provider - mel bych tenhle connector na backend zabalit do takovyho provideru, nebo to je dobre akorat na to, kdyz chci poskytnout svoje data jinym appkam?
    TNC
    TNC --- ---
    RADDINO: tak zalezi jasli to volas na instanci adapteru kterou jsi tomu listviu nastavil... popripade by melo jit listView rici getAdapter na kterem pak zavolas notifyDataSetChanged
    JOHNY_G
    JOHNY_G --- ---
    RADDINO: Jak to čtu, tak děláš nějakou vysloveně systémovou chybu. Jestli je to ještě aktuální, tak zkus napsat PM, ale kdyby to chtělo nějaké zásadnější úpravy, tak jen upozorňuju, že nejsem zrovna nejlevnější :-).
    RADDINO
    RADDINO --- ---
    DRIZDIK: díky, zkusím se na to ještě podívat. hodně jsem projížděl stackoverflow apod, ale nějak se mi nepovedlo to rozchodit, tak jsem volil variantu placené pomoci.
    RADDINO
    RADDINO --- ---
    VIRTUALVOID: tohle jsem si našel, ale nepovedlo se mi to rozchodit.
    VIRTUALVOID
    VIRTUALVOID --- ---
    notifyDataSetChanged nad adapterom ?
    DRIZDIK
    DRIZDIK --- ---
    RADDINO: Najdi si CursorAdapter a jak to nad tou DB udělat, případně notifikuj o změnách po nějakém event busu/ rx busu ten tab(adapter), který se má obnovit
    RADDINO
    RADDINO --- ---
    Sháním někoho, kdo by mi pomohl vyřešit pravděpodobně jednoduchou věc, na kterou já jako samouk a člověk aktivně neprogramující trávím již XY hodin bez řešení. Dělám na osobním projektu, mám SQLite db ze které si tahám data do ListView které mám ve fragmentu TabHost. Nedaří se mi rozchodit, aby se ListView refreshnul při přidání/ubrání záznamu (začal jsem to dělat hrozně prasácky a uvědomuji si, že je to blbost). Počítám s finanční odměnou, můj odhad jsou 3 hodiny práce (zorientovat se v projektu a v mém kód a věc vyřešit). Práci možno zadat mailem, ale nebránil bych si i setkání v Praze(kafe/pivo na mě) a řešení naživo ukázat (kod pošlu předem) a zároveň lehce nakopnout, kde všude mám chyby a co se běžně dělá jinak. Koukal jsem na zmiňované guru.com, upwork, hire apod. ale pro takový one-time task je to myslím zbytečně složité. Pokud by měl někdo zájem, víc infa napíšu do pošty. Díky
    MAKROUSEK
    MAKROUSEK --- ---
    HORST_FUCHS: Zkus www.guru.com. Vazne.
    Kliknutím sem můžete změnit nastavení reklam