blakelee
10/25/2024, 6:12 PMstore.fresh
and I put in a Key.Read
similar to how the example shows it with a NotesKey
. However in the example it has this line require(key is NotesKey.Write)
but when I call store.fresh
it hits the writer and throws an exception because it's expecting only Key.Write
. I guess what I'm wondering is, is there a case where the example is right? Or should I be expected to handle all sorts of keys in my source of truth for the writer? store.fresh
create a read request which is why I wasn't expecting the write
The example I was referencing aboveMatthew Ramotar
10/28/2024, 6:20 AMMatthew Ramotar
10/28/2024, 6:21 AMMatthew Ramotar
10/28/2024, 3:00 PMStore
and MutableStore
in a Circuit
architecture with other modern Kotlin libs such as SqlDelight
, Ktor
, kotlin-inject
• Quickstart completed
• Fetcher explanation completedblakelee
10/28/2024, 5:08 PMValidator
, I haven't really found a use for it yet. Should we be making server calls with this if we're trying to keep client/server in sync?
• It was a bit unclear what store.clear
does and realized that it only clears for the SoT doesn't do anything with the fetcher. So if you want to sync client and server you'd still need a write request.
• Understanding error handling. Where should try/catches be implemented? I think the assumption is that any failures are handled upstream by store and you'll get a nice StoreReadResponse.Error
• Adding Input
, Output
, Local
, Network
and Response
docs wherever those are used. I tend to get them jumbled up so look to other areas where they are documented to properly use them. Just having a blanket Local
is your SoT object everywhere the Local
type is used would be helpful -- for each type.
• When to use bookkeeper. It seems helpful for pulling data from the client, but not if we want to keep client/server in sync. So the usecase seems more for a feed rather than sync.
So far with the Trails and Howl examples along with the droidcon videos and documentation I was able to piece it together.
Another piece of feedback is that the name of it is very generic which makes searching for help on Google more difficult so I have to specify mobilenativefoundation with my search in order to get relevant information.
Overall though, thanks for creating and open sourcing this library. I'm not trying to dog all of your efforts, this is a cool library and I'm happy I'm able to use it to solve some of my issues.Jeffrey Dawes
10/29/2024, 4:04 PMStoreResponse
as their returns types and others where they use their own types. In this case, I'm specifically curious about Flow
return types. What is the guidance on this topic, if any?
I was planning to map the StoreResponse
to my Result
type class to simplify since it only has a loading, success, and error state. But then I would lose the nice things like the response origin. What has been other people's experience with this? Do you commit to exposing Store
classes from your repositories or do you map to a similar or identical local class?Jeffrey Dawes
11/01/2024, 4:03 PMinterface Fetcher<Key : Any, Network : Any>
Because Network
is non-null how do we represent a value that does not exist or is not found? Do you wrap the response in a result type? Do you return a Fetcher.Error
of some kind?Matthew Ramotar
11/05/2024, 5:33 PMMatthew Ramotar
11/13/2024, 8:32 PMMatthew Ramotar
11/24/2024, 7:30 PMrocketraman
11/26/2024, 2:43 PMamitkma
01/11/2025, 4:56 PMSimone
02/19/2025, 7:47 PMblakelee
02/21/2025, 5:54 PMAndré Thiele
02/27/2025, 8:55 AMAndré Thiele
02/27/2025, 8:55 AMMatthew Ramotar
02/27/2025, 2:17 PMMatthew Ramotar
02/27/2025, 2:18 PMMatthew Ramotar
02/27/2025, 2:20 PMF
03/16/2025, 12:13 PMblakelee
03/21/2025, 11:54 PMStoreReadRequest.cached(key, refresh = true)
? I figured it would hit my SoT first then try to refresh. However without a network connection it fails to return any data — even the SoT dataAndré Thiele
04/01/2025, 6:12 AMStew Boling
04/14/2025, 7:26 PMvovkab
04/29/2025, 7:00 PMCaused by: java.lang.NoSuchMethodError: No virtual method hours-UwyO8pc(I)J in class Lkotlin/time/Duration$Companion;
at com.dropbox.android.external.store4.StoreDefaults.<clinit>(StoreDefaults.kt:14)
at com.dropbox.android.external.store4.RealStoreBuilder.<init>(StoreBuilder.kt:86)
We are trying to stay on store4 so we don't have to retest everything at the same time. Is it possible to do a quick hot fix release for store4?
I've created a change to switch to a stable api and remove experimental time:
https://github.com/vovkab/Store/commit/1af730553be7133e71736758dc8c67e2922b3fc3
But I'm not sure against which branch should I created a PR? As I can see there is release/4.0.0
branch, but it's missing everything all the way up to 4.0.7?
Thanks.Pranathi
05/08/2025, 4:06 AMJan-Patrick
07/03/2025, 6:35 AMsvt ttytth
07/05/2025, 10:57 PMTepes Lucian Victor
07/07/2025, 7:20 PMManuel Lorenzo
07/09/2025, 1:36 PMMatthew Ramotar
07/20/2025, 11:10 PM