Open Tomucha opened 3 years ago
Já jsem uvažoval i o tom, že při každé změně by se automaticky uložilo i to json. Ten hivedb vypadá dobře, ukládat menší kousky - ne všechna data naráz - by taky bylo lepší.
Jak by se to dalo udělat? Přes ChangeNotifier.addListener(saveMe) ?
Spíš jsem uvažoval o tom, že by to byla primo vlastnost StateHolderu. Kazdej state lze serializovat do JSONu a StateHolder vi presne kdy se meni, tak by se ulozil do hive box-u, kterej by dostal v konstruktoru. A taky by to v konstruktoru slo volitelne vypnout / neposkytnout tomu uloziste.
(Cca, mozna to nebude primo box, ale jen nejakej save callback ...)
Vypadá to, že nebude jednoduché zkombinovat built_value a Hive. Zkusil jsem to a neuspěl, Každopádně, zkusil jsem upravit kostlivce tak, aby serializoval to hive. Můžeš mrknout sem:
https://github.com/petrblahos/flutter_kostlivec/blob/hive_db/HIVE.md
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db
Mě je ukládání do hive rozhodně sympatičtější než do json, zároveň se mi líbí ten immutable state co měl kostlivec. Takže zatím nevím, co je lepší. Přemýšlím, jestli mi ten built_value přináší dost výhod na to, abych ho preferoval před tím hivem. Ještě si s tím asi trochu pohraju...
... a proc tam nechces placnout cely ten objekt naraz? IMHO je to nejlepsi cesta - rozebrat to na kousky a pak zase slozit je jen cesta k prusvihu, psat i nacitat en-bloc, rekl bych. Asi se t nehodi na stav kde budes mit 1000 radku neceho, ale v takovejch pripadech by se do toho state holderu mohl plugnou custom "saver" a "loader" ... treba.
On Sat, Feb 13, 2021 at 3:20 PM petrblahos notifications@github.com wrote:
Vypadá to, že nebude jednoduché zkombinovat built_value a Hive. Zkusil jsem to a neuspěl, Každopádně, zkusil jsem upravit kostlivce tak, aby serializoval to hive. Můžeš mrknout sem:
-
https://github.com/petrblahos/flutter_kostlivec/blob/hive_db/HIVE.md
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db
Mě je ukládání do hive rozhodně sympatičtější než do json, zároveň se mi líbí ten immutable state co měl kostlivec. Takže zatím nevím, co je lepší. Přemýšlím, jestli mi ten built_value přináší dost výhod na to, abych ho preferoval před tím hivem. Ještě si s tím asi trochu pohraju...
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-778626093, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIKWG7FOK4PBNXP7UNP7DS62DD3ANCNFSM4VQFWGMA .
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
Asi se nechápeme. Teď tam plácám celej objekt naráz.
Aha, ok. No budu se na to muset podivat teda. Proc ze se ti nedari zkombinovat Hive a built_value? Kazdej built_value se da prece zeserializovat do Map-y a zpet, nebo co to?
On Mon, Feb 15, 2021 at 7:51 AM petrblahos notifications@github.com wrote:
Asi se nechápeme. Teď tam plácám celej objekt naráz.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-778992543, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIKWCH5JZCD6UZGCAZ6KDS7C76LANCNFSM4VQFWGMA .
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
Aha, tak takhle. Využít built_value serializer a nedělat adapter pro ten ukládanej objekt, ale místo toho uložit tu serializovanou hodnotu. Jo?
No jo, nic jinyho snad ani prave nejde, sem myslel :-) A prijde mi to v poradku - ulozeni i nacteni je diky tomu "atomicka" operace a nemuze dojit k nekonzistenci.
On Mon, Feb 15, 2021 at 9:27 AM petrblahos notifications@github.com wrote:
Aha, tak takhle. Využít built_value serializer a nedělat adapter pro ten ukládanej objekt, ale místo toho uložit tu serializovanou hodnotu. Jo?
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779047716, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIKWELJQ57A32G5YO3SDLS7DLGNANCNFSM4VQFWGMA .
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
Tak tohle je opravdu mnohem jednodušší:
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db_serialize_built
No jo. Akorat nevim, jesli opravdu predavat stateholderu jen "jmeno boxu" - tim vznika prodleva, mezi existujici instanci stateholderu a spravnou hodnotou v ni - jestli by nemel dostavat box radeji uz otevrenej a fakt pripravenej. Aby se nikdy nestalo ze na nej sahas a jeste neni uplne "ready".
On Tue, Feb 16, 2021 at 11:24 AM petrblahos notifications@github.com wrote:
Tak tohle je opravdu mnohem jednodušší:
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db_serialize_built
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779739530, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIKWD3I6BYWBTQSF6OZQLS7JBUXANCNFSM4VQFWGMA .
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
Já jsem když tak spíš myslel udělat mechanizmus, abych si na to mohl počkat. Abych řekl pravdu, zatím nevím, jak to nejlíp udělat - konstruktor nemůže být async.
On Tue, Feb 16, 2021 at 11:38 AM Tomáš Zvěřina notifications@github.com wrote:
No jo. Akorat nevim, jesli opravdu predavat stateholderu jen "jmeno boxu" - tim vznika prodleva, mezi existujici instanci stateholderu a spravnou hodnotou v ni - jestli by nemel dostavat box radeji uz otevrenej a fakt pripravenej. Aby se nikdy nestalo ze na nej sahas a jeste neni uplne "ready".
On Tue, Feb 16, 2021 at 11:24 AM petrblahos notifications@github.com wrote:
Tak tohle je opravdu mnohem jednodušší:
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db_serialize_built
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub < https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779739530 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAUIKWD3I6BYWBTQSF6OZQLS7JBUXANCNFSM4VQFWGMA
.
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779749246, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATNXD3UV4H6YVKPOQARTWTS7JDK5ANCNFSM4VQFWGMA .
IMHO v launcher.dart si vsechno asynchronne pripravit a pouzit mirne jinej konstruktor provideru - takovej co mu to das uz hotovy. https://pub.dev/documentation/provider/latest/provider/ChangeNotifierProvider/ChangeNotifierProvider.value.html
Rekl bych nejprimocarejsi.
On Tue, Feb 16, 2021 at 11:49 AM petrblahos notifications@github.com wrote:
Já jsem když tak spíš myslel udělat mechanizmus, abych si na to mohl počkat. Abych řekl pravdu, zatím nevím, jak to nejlíp udělat - konstruktor nemůže být async.
On Tue, Feb 16, 2021 at 11:38 AM Tomáš Zvěřina notifications@github.com wrote:
No jo. Akorat nevim, jesli opravdu predavat stateholderu jen "jmeno boxu" - tim vznika prodleva, mezi existujici instanci stateholderu a spravnou hodnotou v ni - jestli by nemel dostavat box radeji uz otevrenej a fakt pripravenej. Aby se nikdy nestalo ze na nej sahas a jeste neni uplne "ready".
On Tue, Feb 16, 2021 at 11:24 AM petrblahos notifications@github.com wrote:
Tak tohle je opravdu mnohem jednodušší:
https://github.com/petrblahos/flutter_kostlivec/tree/hive_db_serialize_built
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub <
https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779739530
, or unsubscribe <
https://github.com/notifications/unsubscribe-auth/AAUIKWD3I6BYWBTQSF6OZQLS7JBUXANCNFSM4VQFWGMA
.
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub < https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779749246 , or unsubscribe < https://github.com/notifications/unsubscribe-auth/AATNXD3UV4H6YVKPOQARTWTS7JDK5ANCNFSM4VQFWGMA
.
-- https://blahos.com/ https://traceability.cz/
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/fnx-io/flutter_kostlivec/issues/3#issuecomment-779755500, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAUIKWF2OOOYRSOYURVDJOTS7JEUVANCNFSM4VQFWGMA .
-- S pozdravem,
Tomáš Zvěřina
fnx.io | www.m-atelier.cz | backendisti.cz | dartlang.cz
Co kdyby mel kazdy StateHolder prideleny svuj hive box:
https://github.com/hivedb/
A prubezne by se pri zmene ukladal? Volitelne by to slo vypnout ... Prijde mi to jako celkem mocny a zajimavy.
Co myslis, @petrblahos ?