• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LWEEKAndroid development
    KKTLEO
    KKTLEO --- ---
    Zdravím, myslíte jsi, že by měl trh (turisti, místní) zájem o aplikaci ukazující výhledy na Prahu?
    DRIZDIK
    DRIZDIK --- ---
    MR_DAN: Není to kočkopes, ale pokud chceš udržovatelnou appku, tak ten vývoj prostě musí směřovat ke stejným(podobným) patternům, abys měl ty věci oddělitelné, testovatelné, mockovatelné, nahraditelné. Appka ti tím nějak nenabude na velikosti, většina zásadních knihoven je celkem malinkých a nebo to mám SDK přímo v sobě (generování databindingu např.) ..
    Než dělat kočkopsa to spíš umožňuje to dělat různě a najít si v tom co potřebuješ a co ti vyhovuje.

    A otáčení obrazovky(znovuvytvoření aktivity), umírání aktivit zatímco ti běží jiná, zabíjení background procesů kvůli dozu a podobně je ta zábava na androidu :-D Ale v reálu je to opět jako na webu, jen ten context tady není session nebo request, ale app nebo activity .. jen je tu velká výhoda, že ti to tu používá jen jeden uživatel :-D
    YAZZMAN
    YAZZMAN --- ---
    MR_DAN: otaceni obrazovky je nejvetsi srani :D
    MR_DAN
    MR_DAN --- ---
    DRIZDIK:
    2) tyjo to mi vubec nerikej, ze s otacenim obrazovky bude nejaky s*ani :D zatim MVP nedelam, ale jak se dostane appka aspon do puberty, tak se to bude vic a vic hodit
    3) no a neni to pak delani kockopsa? ja jak android vyvoj poradne neznam, tak chci od zacatku vyuzivat knihovny a principy ktery jsou pro android vlastni, neohybat si to pro svoji potrebu aby to bylo co nejvic podobny jave, jednak by to mohlo ztracet na efektivite a jednak abych z lehky 4-5obrazovkovy appky neudelal 100mb molocha
    jinak samozrejme message/event bus nebo ui vazany na model, to by se mi libilo :-)
    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,
    MR_DAN
    MR_DAN --- ---
    jasne, s tou cilovkou a strukturou uzivatelu si taky v hlave trochu zahravam - jakoze uzivatel smartphonu, co neni uplne duchodce se dvema ikonama na plose, mimo ktery se boji kamkoliv tuknout (nebo neco na ten zpusob), bude totalne nestastnej s telefonem starsim nez rekneme 3 roky... nejsem uplne marketak, muzu bejt dost mimo :-) ale na tu 21 to asi zaseknu, ikdyz bych chtel pochopitelne pokryt vsechny cilovky
    ..dalsi faktor je, ze prvni stejne pokryju powerusery, mlady lidi, proste tam ty verze budou v prumeru vyssi a nez se to rozsiri na ostatni cilovky, tak to chvilku potrva (s mym tempem tak 10 let :D) a to zastoupeni verzi se zas trochu pohne

    ad Dagger2 - cili pouziva se to, dobre ze jsem se zeptal :-) nebude to asi uplne jak spring v jave, ale lepsi nez dratem do oka
    bal jsem se aby to nebyla nejaka zoufalost ne-android vyvojaru podobna jak kdyz se nekdo zoufale snazi rozfachat outlook a photoshop na linuxu apod :-)
    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?
    Kliknutím sem můžete změnit nastavení reklam