• ú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í
    DATEL
    DATEL --- ---
    Díky, nakonec jsem to udělal tak, že v base aktivitě / fragementu inicializuju potřebné věci ke GA a pak jen v konkrétních aktivitách / fragmentech zavolám hit. Nechceme totiž sledovat úplně všechno.

    Ještě bych se vrátil k mému předchozímu dotazu (DATEL, DRIZDIK) - proč se vlastně používá pro vytvoeřní fragmentu ten vzor přes statickou getInstance() metodu, kdy se jí předávají v parametrech vstupní data, metoda vytvoří instanci a přes argumenty předá do fragmentu? To samé přece můžu udělat přímým voláním konstruktoru s těmi samými parametry...
    Jediné, co mě teda napadá, je nějaká možnost ukládání stavu fragmentu a jeho obnovy automaticky systémem, kdy ukládá vše co je v Bundle objektu (přes getArguments()) - ale jestli to tak skutečně je, to netuším. Ale tohle asi nebude ono, fragment může být zrušen i během práce, tj. data na základě vstupních parametrů už můžou být změněna, tj. ono uchování stavu je podle mě stejně třeba dělat ručně přes onSaveInstaceState() a pak v onCreate() (apod.) obnovit.
    Takže mi stejně u použití getArguments() a getInstance() není jasné, v čem je přínos... Proč tedy?
    DATEL
    DATEL --- ---
    DRIZDIK: díky za tip... Vzhledem k tomu, že na vývoj je málo času, tak asi zatím použiju tu variantu, kdy aktivita má k dispozici metodu "getEntity()", kterou si fragment zavolá a získá tak stejnou instanci objektu + po všech změnách v entitě pak fragment zavolá v aktivitě metodu pro oznámení změny.
    DRIZDIK
    DRIZDIK --- ---
    DATEL: Já tohle řeším v případě kontextu aktivity EventBusem, například OTTO nebo RoboGuice ho má v sobě. Udržuješ si jen jeden datový objekt a posíláš si události o jeho změnách.
    O jeho instanci se mi stará DI kontejner.
    Pomocí parcelable se ti opravdu vytvoří dvě rozdílní instance.
    Co se týká implementování rozhraní na aktovitě, přináší to pro mě hroznej bordel do kódu a hlavně střešněj tight-coupling
    Ty události ti umožní i jednoduchý testování, přenesení fragmentu jinam, jeho oddělené zobrazování atd.
    DATEL
    DATEL --- ---
    Ahoj, řeším tu teoretický problém ohledně komunikace mezi aktivitou a fragmentem. Jde mi o to, že potřebuju pracovat s datovým objektem jak v aktivitě, tak ve fragmentu (respektive více fragmentech). Jde mi o obousměrnou komunikaci, tedy přesněji řečeno úpravu dat toho předávaného objektu.

    Všude na netu jsou dva oddělené postupy:

    1. předání dat z aktivity do fragmentu, pomocí newInstance() fragmentu, parcelování daných dat a předání do nově vytvořené instance argumentem.

    2. předání dat (lépe řečeno komunikace) z fragmentu do aktivity pomocí rozhraní, které implementuje aktivita, pak fragment volá metody této aktivity.

    A teď, je mi poněkud proti srsti používat to parcelování objektu, jestli to dobře chápu, tak vlatně ve fragmentech pak dochází k vytvoření kopie dle předaných dat, tj. je to jiná instance datového objektu. Správnější mi přijde pracovat pouze s jednou instancí datového objektu, který by šel předat teoreticky v konstruktoru fragmentu, ale protože se doporučuje užití vzoru s tím newInstance(), tak bych to spíš viděl tak, že interface pro aktivitu bude mít metodu getEntityData(), kterou si fragment zavolá při vytvoření (třeba v onCreateView), tím získá odkaz na instanci objektu z aktivity. Do ní může přímo ukládat upravené data (a taky je načíst).

    Tohle bude podle mě hezky fungovat v případě, že mám zobraz jen jeden fragment. V případě layoutu pro tablety, kde je zobrazeno více fragmentů najednou, by už došlo k nekonzistenci, ale to se dá vyřešit zavoláním nějaké refresh metody.

    Když pominu tento problém, mohl by být ještě nějaký další? Nejde mi prostě do hlavy, proč se pracuje takhle krkolomně s kopiemi objektů (a všude je to takhle doporučováno) - je to přece i režie navíc, objekt se musí rozložit, poslat data fragmentu, tam vytvoři nový objekt z daných dat...
    P19
    P19 --- ---
    MRAKY: Aha! Docela dobrá informace! Díky, kouknu na to!
    MRAKY
    MRAKY --- ---
    P19:
    P19:
    spustil sis spatny emulator. To co jsi tu pastul je weareable emulator ... takhle podle google budou vypadat hodinky...
    naklikej si 4.4 emulator pro telefon.
    P19
    P19 --- ---
    MAKROUSEK: Mám BlackBerry :D
    REDGUY: Genymotion vyzkouším, vypadá to dobře. Díky
    REDGUY
    REDGUY --- ---
    P19: Dovolim si nesouhlasit s Makrouskem. Standardni emulator sice saje, ale Genymotion je dost dobrej.
    MAKROUSEK
    MAKROUSEK --- ---
    P19: Emulatory jsou peklo, pouzivej spis svuj telefon napojenej pres USB. A zkousel jsi napodobit mysi finger fling? Obvykle se android odemyka takovym tim prejetim prstu po displeji, takze neklikat, draggovat.
    P19
    P19 --- ---
    Zdravím,
    snažím se proniknout do vývoje pro Android a už třetí den tu zápasím s emulátorem (v Android Studio pod Ubuntu).
    Už se mi ho sice podařilo spustit, ale nevidím v něm domovskou obrazovku bez jakýchkoliv ovládacích prvků, a když kliknu na hodiny, zobrazí se mi nějaké menu (asi položky nastavení ohladně času), ale v dost divném layoutu (položky jsou strašně veliké). Svoji aplikaci (obyčejný Hello World) tam nejsem nikde schopne spustit.
    Díky za rady, už nevím, co bych měl googlit.



    ROTTWEILER
    ROTTWEILER --- ---
    Hledáme vývojáře do reality.cz pro správu naší Android aplikace, kterou jsem vyvinul a je potřeba předat někomu její údržba a občasné nové funkce. Nejedná se ani o full-time ani part-time, ale občasný přivýdělek. Pro dohodnutí práce je nutno být v Praze (stačí tedy přijet do Prahy), ale samostatné provedení práce může být kdekoliv.

    Kdyžtak do pošty.
    OLTSKUL
    OLTSKUL --- ---
    tak dve hodky hrani bez F1 a referenci :)

    pouzil jsem nakonec ten MIT applet

    https://dl.dropboxusercontent.com/u/17434859/Magic_Pocitadlo-v3.apk
    OLTSKUL
    OLTSKUL --- ---
    DRIZDIK: To od MIT jsem vcera zbezne prohledl :) asi jo, jen se bojim, ze to pak z toho blockoveho editoru nedostanu uz nikam :) ale zkusim to...

    Como je presne priklad toho weboveho patlatka, kde jsou jen funkce pro busyness... ale tohle tam neudelam :/

    treti moznost je v pohode, ale chci si to otestovat :)

    zacnu s HelloWorld a tlacitkem a nejak se k tomu propracuju :)


    VIRTUALVOID: si radsi koupim deset flasek bechera, necham si to petkrat naprogramovat a tri roztriskam a dve nejak spotrebuju :D
    VIRTUALVOID
    VIRTUALVOID --- ---
    OLTSKUL: ked mi das prachy na predobjednavku na BF:Hardline tak ti to spravim ;)
    DRIZDIK
    DRIZDIK --- ---
    OLTSKUL: MIT provozují AppBuilde, kde si blokové poskladas appku, další moznost se jmenuje myslím Como, která umí nějak generovat appky.
    Třetí možnost je koupit flasku nekomu, kdo ti to za večer spichne, pokud je to opravdu jednoduchá appka
    OLTSKUL
    OLTSKUL --- ---
    Ahojte,

    mam takovy dotaz. Shanim nejake rozhrani/editor/builder atd. na vyrobu nejake zakladni aplikace.. Co nejvice begginer, newbie friendly. :)

    Preferoval bych nejaky WYSIWYG editor, kde se muzu prepnout na node based rozhrani... (klidne pro me muze kod byt jen nejaky blackbox a mishmash)

    Pripadně jen wysiwyg a nejakym minimem skriptovani..

    pod postem je ukazka "Wireframe-u" co bych od te apps-ky potreboval. (Neni to zadny axure a v PS se mi to taky nechtelo delat)

    Diky za rady. Teda jestli neco takoveho je ubec mozne :) nevim jestli jsem blbe hledal, ale na googlu byly jen nejake webove patlatka s pripravenymi komponenty..

    STEFJACK
    STEFJACK --- ---
    ahoj mam dotay, treba tu najdu nekoho kdo vi...mam HTC one x kde je nainstalovany rom viperx 3.2.4 s androidem 4.1.1, rad bych to cele upgradoval na vbud vyssi veryi viperx nebo to nejak ymenit na puvodni rom co byl original..nevim zcela presne jak na to...je potreba delat bootlog znovu, jak vymayat spravne wipe a hlavne ktery rom je spravny a jak to poznam..stahnul jsem asi 4 aktualizace a nefungovalo nic...jen jsem tim dostal telefon do stavu, ye kdyz ho pustim tak zamrzne na uvdnim logu HTC, diky za jakoukoliv radu..
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    VIRTUALVOID: super. diky moc:)
    ANDY_WARHOL
    ANDY_WARHOL --- ---
    mam dotaz, delam nejakou integraci s androidima platbama v nasem systemu a protoze do programovani pro android zas tolik nevidim, tak bych se potreboval zeptat na jednu vec. mozna muj dotaz bude znit hloupe, ale snad mi to odpustite
    pri deploy apk se musi ta apk podepsat nejakym klicem z keystore, na konci podepisovani je videt sh1 toho klice.
    da se toto sh1 ziskat nejak v kodu aplikace pri jejim behu, pokud ne, lze ziskat nejaky jiny identifikator, ktery nepujde podvrhnout jinou aplikaci ? samozrejme je package name, ale to nepokreje tu variantu, ze nekdo udela apku se stejnym package name a nainstaluje si ji rovnou ze souboru,
    ZACK
    ZACK --- ---
    VIRTUALVOID: Bylo to tak vzdycky :)
    Kliknutím sem můžete změnit nastavení reklam