• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    LUCIENFyx pro iOS a Android - neoficiální lehký mobilní NYX klient
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    LUCIEN: PR je vytvoren - obsahuje upgrade flutteru a Fix na issue #300.

    Ovsem narazil jsem na 2 problemy a bohuzel netusim jestli souvisi s tim upgradem. To bych rad kdybyste mohli pripadne testnout na verzi flutteru ktery pouzivate aktualne, pokud se nepletu tak 2.5.3. Ja si zprovoznim fvm a snad budu schopen lepe switchovat mezi verzemi.

    1. Problem c.1 je kdyz nahodim appku do simulatoru a prepnu se mezi tabem "Sledovane" a "Historie", tak mi to vyblije exception viz nize. Nicmene opravdu se to deje jen pri tom prvnim prokliku mezi taby. Nasledne uz je to ok.
    Vliv na aplikaci zrejme nema, protoze funguje pak bez problemu.
    Jelikoz nejsem jeste tak zdatnej v kodu fyxu a zaroven flutter/dartu, tak uplne neni pro me easy to prodebugovat/identifikovat problem. Nicmene zkusim hledat a pripadne dat vedet.

    flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
    flutter: The following assertion was thrown while finalizing the widget tree:
    flutter: A ScrollController was used after being disposed.
    flutter: Once you have called dispose() on a ScrollController, it can no longer be used.
    flutter:
    flutter: When the exception was thrown, this was the stack:
    flutter: #0 ChangeNotifier._debugAssertNotDisposed.
    flutter: #1 ChangeNotifier._debugAssertNotDisposed
    flutter: #2 ChangeNotifier.dispose
    flutter: #3 ScrollController.dispose
    flutter: #4 _PullToRefreshListState.dispose
    flutter: #5 StatefulElement.unmount
    flutter: #6 _InactiveElements._unmount
    flutter: #7 _InactiveElements._unmount.
    flutter: #8 SingleChildRenderObjectElement.visitChildren
    flutter: #9 _InactiveElements._unmount
    flutter: #10 _InactiveElements._unmount.
    flutter: #11 SingleChildRenderObjectElement.visitChildren
    flutter: #12 _InactiveElements._unmount
    flutter: #13 _InactiveElements._unmount.
    flutter: #14 ComponentElement.visitChildren
    flutter: #15 _InactiveElements._unmount
    flutter: #16 _InactiveElements._unmount.
    flutter: #17 ComponentElement.visitChildren
    flutter: #18 _InactiveElements._unmount
    flutter: #19 _InactiveElements._unmount.
    flutter: #20 ComponentElement.visitChildren
    flutter: #21 _InactiveElements._unmount
    flutter: #22 _InactiveElements._unmount.
    flutter: #23 ComponentElement.visitChildren
    flutter: #24 _InactiveElements._unmount
    flutter: #25 ListIterable.forEach (dart:_internal/iterable.dart:39:13)
    flutter: #26 _InactiveElements._unmountAll
    flutter: #27 BuildOwner.lockState
    flutter: #28 BuildOwner.finalizeTree
    flutter: #29 WidgetsBinding.drawFrame
    flutter: #30 RendererBinding._handlePersistentFrameCallback
    flutter: #31 SchedulerBinding._invokeFrameCallback
    flutter: #32 SchedulerBinding.handleDrawFrame
    flutter: #33 SchedulerBinding._handleDrawFrame
    flutter: #37 _invoke (dart:ui/hooks.dart:151:10)
    flutter: #38 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:308:5)
    flutter: #39 _drawFrame (dart:ui/hooks.dart:115:31)
    flutter: (elided 3 frames from dart:async)
    flutter: ════════════════════════════════════════════════════════════════════════════════════════════════════

    2. Problem c.2 je pouze u Androidu a jedna se o prvni inicializaci tokenu. Kdyz na slidu 2, kde se zobrazuje token, kliknu/double-kliknu na token, zobrazi skoro BSD I kdyz spise je to cervena obrazovka :)
    Imgur: The magic of the Internet
    https://imgur.com/a/pfkNitM
    Zkusil jsem zbuildene apk hodit na muj zalozni android phone, tam sice neni ta red screena, ale i tak to zbledne/zbela a vypada to mrtve.
    LUCIEN
    LUCIEN --- ---
    TRAGIKOMIX: Rovnou priznam, ze na nejaky sofistikovany testy jsem nikdy nemel moc casu. Neco malo sice je, ale zadna slava to neni. Obecne to delam tak, ze nez vyjde beta, testuju app u sebe na telefonu. Kdyz vse funguje jak ma, vydam betu. Jinymi slovy - udelej PR, Travis spusti testy, kdyz bude vse ok, otestuju, mergnu do developu a pak se uvidi :)
    KEJML
    KEJML --- ---
    LUCIEN: Jo už chápu, jak prochází ten release bez multiDexu a pro Android SDK 19. Ono totiž ten flutter build pouští (logicky) gradle task bundleRelease, zatímco když tu appku pouštím v Android Studio, abych ji dostal do emulátoru, tak se pouští task assembleDebug.. A zřejme s těma debug informace je ten výslednej balík moc velkej, i když bez nich se vejde do limitu.

    Čili pro release to funguje bez multidexu a jen pro AndroidSDK 19, ale pro lokální vývoj je potřeba si buď zapnout ten multidex, nebo zvednout minSdkVersion na 21
    KEJML
    KEJML --- ---
    TRAGIKOMIX: Testu je tam par. Pusti se automaticky, kdyz udelas PR, nebo lokalne se daj pustit pres "flutter test". Mne teda lokalne jeden pada, vypada to na nejakej problem s timezonama, ale Travis s tim problem nema, tak jsem v tom nevrtal, jen jsem si ho lokalne zaignoroval
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    LUCIEN:
    Issue #300 mam taky fixed. Udelam PR s tim upgradem ale rad bych tam asi prvne sjel nejak ty testy nebo pripadne udelal hlubis regresi.
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    LUCIEN: Draft toho upgrade mam hotovy. Zatim jsem to otestoval pouze spustenim na Android a Iphone simulatoru. Vypada to cajk. Jak mam spustit ty testy co tam mas? Nebo co jeste by sis predstavoval v ramci nake regrese?
    LUCIEN
    LUCIEN --- ---
    TRAGIKOMIX: Simulator si credentials pamatuje, i napric ruznejma strojema a restartama... Nicmene je to samozrejme mozne pres env, podivej se na tohle https://pub.dev/packages/flutter_dotenv
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    LUCIEN: Da se to nejak zadefinovat do environmentu at to nemusim pokazde kdyz restartnu simulator zadavat?
    LUCIEN
    LUCIEN --- ---
    TRAGIKOMIX: 1/ Mam uzivatele pro testovani, kterym se prihlasuju pres token, ktery vygeneruju v osobni -> nastaveni -> autorizace. 2/ Ano, fake data.
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    KEJML:
    LUCIEN:
    Jak pracujete v tom simulatoru s ohledem na credentials/autorizaci? Resp kde se definuje token a potvrzovaci kod?
    Zaroven jsem koukal do "test" adresare a tam jsou nejake udaje hardkodovane. To jsou nejake fake data?
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    LUCIEN: PR ti klidně udělám v následujících dnech. Přidám tam i tu verzi Flutter do pubspec. Ovšem nevím co u tebe znamená "vše funguje". Zatím jsem nekoukal jestli tam máš nějaké testy nebo jak sjíždís regresi. Zároveň bych si chtěl určitě vyzkoušet to nahodit na ten ios simulátor, když už mám ten Mac :-)
    TOOMIX
    TOOMIX --- ---
    KEJML: zkušený zas tolik ne, ale pár android aplikací jsem dělal, jen teda v Xamarinu
    KEJML
    KEJML --- ---
    LUCIEN: Jako já taky sbírám informace po střípkách, ideální by bylo, kdyby se ozval nějaký zkušený Android vývojář.

    Ale při nějakém volném večeru si zkusím lokálně pustit ten tvůj build skript, protože defaultní gradle assemble (nebo co to Android studio pouští) mi v aktuálním developu failuje a očividně nejsem sám
    LUCIEN
    LUCIEN --- ---
    KEJML: upřímně, android jde dost mimo mne, takže tady si nechám rád poradit... Ohledně buildu zde
    KEJML
    KEJML --- ---
    LUCIEN: Tan on ten multidex snad ničemu nevadí a zachová to současnou podporu zařízení, ne? Nebo má multidex nějaký nevýhody?

    A teda jak teď děláš release? Jak dyž to zkusim zbuildovat bez něj, tak mě to vyřve, že právě potřebuju multidex
    LUCIEN
    LUCIEN --- ---
    TRAGIKOMIX: Asi by stálo za to uvést podporovanou verzi Flutteru v Pubspec.yaml. Pokud jsi rozjel novou verzi Flutteru a vše funguje, tak ideálně udělej PR. Měl jsem to v plánu, takhle mi ušetříš práci :)

    Ohledně multidexu a starších Androidů - pojďme udělat anketu...
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    KEJML: Na rychlo jsem zkusil zvednout min verzi na 21 + zakomentovat ten multiDexEnabled a opravdu to pomohlo. Ovsem jak rikas, jestli tu jsou uzivatele se starsimi telefony tak bych to asi taky nemenil.
    KEJML
    KEJML --- ---
    TRAGIKOMIX: Jako ať už zvedneš verzi nebo nebo přidáš ten multidex, tak je to změna, kterou jsem necommitoval (protože Lucien to očividně nepotřebuje. Navic pokud něco commitovat, tak asi spíš ten multidex, než zvedat minimální požadovanou verzi Androidu, kdysi se tu ozvalo par uživetelů s poměrně historickými telefony :) ), takže v principu je to asi jedno.

    Ticket ti těda nechám, nemyslím si, že by to bylo něco, co hoří. Ale pokud to máš teda rozběhaný s tím posledním Flutterem, tak bych se nestyděl udělat PR z toho, nemyslím, že by se Lucien zlobil :)
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    KEJML: Zkusím zvednout tu min verzi a uvidím jestli ta property nebude už třeba. Dík.
    TRAGIKOMIX
    TRAGIKOMIX --- ---
    KEJML: Ano opravdu mám poslední verzi Flutter. Netrklo mě že by to nebylo kompatibilní :-)

    Okie podívám se na ten issue 300 když budu mít více volna doma či v práci.
    Kliknutím sem můžete změnit nastavení reklam