-
Notifications
You must be signed in to change notification settings - Fork 249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RFC: Support Datastore for Web and Desktop #3180
Comments
Are you kidding, are you just going to start the project? |
Hi @jamontesg - We have created this feature request to make sure we capture all feedback on Datastore specifically, since our other categories have shipped for Web and Desktop support. |
Why we think Datastore + Web would be great for our (music collaboration) app? Here are a couple of more points to add to the bullet points at the top of this issue (which are also all benefits that we see):
|
Thank you @dorontal for this feedback! |
On device storage is important for all above use cases mentioned. In context of a cross-platform application, if all platforms cannot support a unified offline storage system it will become a challenge to remotely sync data to AWS from desktop or web devices. Offline first also ensures that in areas with limited bandwidth, data sync is scheduled at off-peak or user defined times to ensure user experience stays positive. |
@abdallahshaban557 |
My notes:
As for the uses cases: it is, and always has been, offline support. This is the only reason we are using AWS. We built three version of our app so far and have had to completely removed datastore, which breaks the only advantage amplify has over the competition. I will update my message as new ideas comes in from the team. |
I think that offline first capabilities is best when it comes to querying and syncing data to the cloud. I'm using DataStore extensively and I must say, it's great but, at the same time, lacking in some areas like starting time, ability to handle a lot of models and data effectively, the differences with GraphQL API like multi owner.... My use case is a reservations application and offline first is the way to go since it offers a better user experience while everything is syncing to the cloud in the background. Sadly I can't have my app in the Web since DataStore is not implemented there. For the past week I've been testing the possibility to migrate everything to GraphQL API and most probably I will, but I saw that DataStore makes everything easier, especially If the support of Web and Desktop means that DataStore will be rewritten in Dart, and, as result, will become more effective in iOS and Android, then Amplify Flutter would be the best out there. |
I have high expectations for DataStore to operate on the Web. The characteristic of building apps with Flutter is its operation across all platforms. While it's possible to implement with the GraphQL API, the usability of DataStore, which can be used on iOS and Android, is exceptionally excellent. I am considering creating an app with Amplify Flutter, but the fact that it doesn't support the Web is causing significant issues for my business plans. I can't propose whether to go online first or not, but having it implemented and executable before any discussion of cost and search efficiency is the most significant benefit for me. It would also be good news for many others who have given up on implementing Amplify Flutter. By supporting the web, DataStore will undoubtedly make AmplifyFlutter the best solution in the world. |
We need amplify_datastore on macOS/Windows very much. please implement them officially. thanks in advance! |
@abdallahshaban557, is this being worked on? |
@abdallahshaban557 any dates ? |
Would be good, to get an approximate timeline for the feature. |
Hi @CaptainDario - to be fully transparent, it is at a stage or two beyond a proposal right now, and are experimenting on how to consistently achieve the required feature-set across all the platforms we support. @jamontesg and @thomasklaush We do not have an exact timelines yet, since we have not aligned on the best implementation path yet. We will continue to provide updates here when we have a clearer path forward. |
Any update on this? |
From a Flutter perspective, the specific features are less relevant and the actual support as soon as possible for Web and Desktop is way more important. Whatever gets this to production fastest I think is the answer. If DataStore becomes supported for remaining platforms, Flutter developers can confidently build cross-platform solely relying on Amplify's APIs. I have faced roadblock after roadblock due to lack of platform support although it seems web support overall has increased drastically since inception. I would also like to hear an update. ex-Amazonian |
👍👍👍 Allow users to browse the app even if their network disconnects by using the latest retrieved data. It would be great for my "Travel Roadbook App" to have datastore support for web. Indeed, when the connection is lost (often during a trip), the users need to get all information about there travel and day by day schedule. So, do you plan any release of this feature soon or do we have to forget it and build a custom code for web support ? ... It's so frustrating ! Thanks. PS : More and more users don't want to install one more native app... |
Hi @fabriquetonvoyage - I am no longer part of the Amplify Flutter team, but @haverchuck can help provide more insights into the future of the library! |
@haverchuck please some information. |
Hi @haverchuck , any future for this project? |
Hello, everyone. I have an app in which Amplify has been working extremely well. However, I need to develop the web version and I just wanted to port the existing app to the web, but the datastore is not supported yet. Is there any way to use it nonetheless? If not, is there a timeline for adding this support to the datastore library? app: www.budgi.it |
@BrandowBuenos I used for web the API library. |
Thanks @thomasklaush! |
Our app is running on the boat with weak internet connectiong. Offline ability is necessary for us. Our data is on cloud firestore now and we are planning to integrate aws iot. Datastore can make our framework simple. We are using web app for product, Macos for development would help. |
Still no timeline? An Easy way would be, to make the field version and deleted accessible for APIGraphQL. Currently, I have this workflow: This breaks GraphQL API, since I cannot read and write version field and cannot read deleted field. If I want to use a custom Conflict Resolution via Lambda, amplify push reports an error on the backend update, so this unfortunately does not work. Additionally, I take the risk for Data corruption. I will get in Production in April, and hopefully I can find a robust solution until this date. |
This request is abandoned, the person who started it no longer works on the team and the person in charge shows no signs of life. Regards |
It's just crazy that AWS give up this feature in Amplify ... |
It would be a great help to provide support without the offline caching part. Perhaps even using secure storage for simplified storage. |
datastore without offline data storage is not datastore, it's appsync. I am pretty sure you can use appsync already on web. |
@dgagnon you can do it, but you cannot use Datastore on Mobile and AppSync on Web combined. |
Hi @haverchuck , any news or insights about this feature ? Thanks. |
Hey everyone, I wanted to provide an update on recent changes made to our app and web platform. Specifically, I've completely removed the datastore and implemented a custom synchronization system from scratch. Previously, we relied on the datastore for data storage and synchronization, but it often proved to be unstable, failing to sync data reliably. In response to this issue, I've developed a new approach that offers more robust synchronization capabilities and compatibility with web. Here's a breakdown of what I've implemented: Datastore Removal: The existing datastore functionality has been entirely removed from both the app and web platforms.
|
Really nice Brandow ... It could be great if Amplify team could add this feature to the framework... |
Thanks for the news @BrandowBuenos , we are very excited about this functionality. Regards |
I assume since Datastore will not be available in Gen2, this feature will be deprecated. |
Is there anyway we can support offline case with Gen2? |
Hi @BrandowBuenos , any news for web platform ? |
Hey everyone! Unfortunately, I had to remove the Amplify Datastore due to all the errors and the lack of support for the web version. So, I created my own implementation. I'm now using SecureStorage to store data locally. For synchronization, I compare the _version fields of each item and always keep the one with the latest version. Additionally, I set up a listener that checks every 15 seconds for any unsynchronized items and syncs them automatically. |
You right in amplify docs that "you'll offer a migration guide soon" for Datastore. Could someone from Amplify dev team respond us ? @abdallahshaban557 @haverchuck |
Hi @fabriquetonvoyage , any idea about to get some web functionality without wait aws-flutter team for ever ? |
Hi @jamontesg, I think we need to abandon the Datastore and switch to GraphQL API ... That's why I'm waiting for migration guide ... |
@Jordan-Nelson can you give any insight, if there is a timeline for this migration guide? |
Hey @fabriquetonvoyage! Sorry for the delay. I was improving and adding support for IndexedDB on the web for handling large volumes of data. I wanted to share the solution I developed as an alternative to DataStore. You can find it at the following link: https://gist.github.com/BrandowBuenos/934db9e4be683561d9285af7803c4863 |
Hi @BrandowBuenos your code don't works for me. You can adjust this code for seems more to datastore , for use 'models/ModelProvider.dart' and How to use model1Controller.model1List ?? Sorry ,sorry. and Kind Regards |
+1 |
I made my own solution with sembast. |
Hi @thomasklaush, could you share with us your approach ? |
Hi @jamontesg sure can I, but it is a quite simple solution with own classes and files for each type. |
Basiscally I Seperated my Repos in two different ones. I added a last changed timestamp which I use in the Remote Repo, to fetch only new events. I Use Bloc, so the Logic is done in the Cubit. Would be really cool to make it generic and more dense, but currently I have no time for it. DB Setup:
Example Data Class:
Sync Manager Class:
Cubit:
|
@thomasklaush my friend thanks |
@jamontesg if you transform it to a generic approach, I would be happy if you can share it. |
We are creating this issue to get insights and feedback into our plans for supporting offline first and caching experiences with our API offerings when targeting Web and Desktop. We want to use this issue to collect feedback from you on the use cases you want to use Offline first and caching for, so that we can validate the path forward for us as we explore it further.
Please help us with providing us with the exact use cases you want to use Datastore for on Web and Desktop, and how it would benefit your users. For example:
The text was updated successfully, but these errors were encountered: