(Cross-posting to services-dev and sync-dev for maximum coverage; replies to dev-gaia please)
Thanks for starting this thread Dale. I don't have much time now, but here are some quick responses inline. > On Apr 14, 2015, at 7:24 PM, Dale Harvey <[email protected]> wrote: > > Between all the user requests and in person conversations + email chains I > wanted to have a bit of a wider discussion about what Firefox OS syncing > capabilities may be and how they may be implemented. > > There has been a lot of thought put into sync by a bunch of people so this > isnt a proposal or a 'this is how it should be', these are just my initial > thoughts and an invitation for others to share theirs > > I think the first thing is to state use cases, these are the ones off the top > of my head Use cases are definitely the way to start. Thanks. Not sure if you already read this, but we wrote some of these use cases at [1] along with the three main principles that we wanted for data sync and that we discussed during the ideation process. Note that this wiki mostly contains a summary of the conversations I've participated in and it has not been validated by the product team. [1] https://wiki.mozilla.org/Firefox_Cloud <https://wiki.mozilla.org/Firefox_Cloud> > > 0. Calendar + Email > > * Including to remind us that we have some implementations of sync that are > working great, some improvements can be made and likely being actively worked > on (background sync / push notifications seem like they can be improved, some > performance issues particularly with email have been discussed on the list > recently) Calendar and Email are indeed an example of apps that are implementing data synchronization and they are working great. They use 3rd party services to sync their data though and we currently lack of a way to sync locally generated content, like email accounts configuration or offline calendars. > 1. Browser (History and Bookmarks, Saved form data/passwords) > > * Desktop and Android Firefox already have history and bookmark sync, it > seems like communicating with existing (or with any proposed new > implementations) should be a priority > > * Bookmarks are tricky since we removed the concept of bookmarks in Firefox > OS and our alternative (homescreen icons) may not translate well to existing > usage ('users with large bookmark trees') I also tend to think that the current Firefox Sync solution could be the way to go for this kind of data, at least initially. We can start working on making Firefox OS use the existing Firefox Sync platform for browser related data like history, bookmarks, form autocomplete data, requestAutocomplete data, passwords, etc. We can expose a system only API to content to allow Gaia to use the existing infrastructure. > 2. Contacts Sync > > * This is possibly my biggest wish for sync, I can live with losing SMS's > but losing contacts has been really irritating when I have had to wipe my > device > > * I want my contacts sync to work with my existing contacts provider (mine > is currently Google) Just like Calendar and Email, we can use 3rd party services to sync data with (i.e. Google, Outlook, Facebook (maybe not anymore)), but we still need a solution for locally generated content like new contacts or merged contacts. There has been some previous efforts to do this for contacts in the past [2]. [2] https://bugzilla.mozilla.org/show_bug.cgi?id=976837 <https://bugzilla.mozilla.org/show_bug.cgi?id=976837> > 3. SMS Sync > > * I am mostly including this as an example of where sync will often be > conflated with backup, I dont think its a particular common case that people > want consistent access to messages across devices, but they want to not lose > their messages when they switch devices. One of the ideas that came from the v3 ideation process was task continuation. Specifically, the example of an instant messaging app that users could use from any device (desktop, mobile) to send and receive messages (including SMS or MMS if a phone number or a RIL enabled device is "connected"). I can start a conversation on my phone and finish it on my laptop (like Whatsapp does now). This idea is even more attractive if you add WebRTC to the equation. > 4. Photos / Files > > * Very highly requested > > * When I did my dogfooding survey, a dropbox application that synced files / > photos was one of the highest requested items > > Other use cases > > * Apps / Settings sync - If I reflash my device, login and my homescreens + > settings are restored I would say that installed apps synchronization should also be part of the browser related data that I believe that could be initially managed by Firefox Sync. I would love to be able to have the FxOS Music app running on my desktop via WebRT just by enabling Firefox Sync on my browser or the Telegram app being installed on my laptop when I install it on my FxOS device, for example. > * Arbitrary data - Handle data syncing for arbitrary web content This is where things are more interesting. IMHO the hardest part here is to create the more generic possible solution that could enable 3rd party developers to use our sync platform. > I know a lot of thought has gone into Contacts sync and someone speaking to > the plans or thoughts for that would be great. > > My initial thoughts based on those use cases is that > > 1. At Mozilla we are in the unique position to focus on providing the user > with the choices that they want over attempting to leverage features to get > users locked in to our platform, and I think we should focus on that. Sync > contacts with Google, Photos with Dropbox, SMS's with our own storage > services etc. Yes! User choice is key. > 2. The characteristics of those sync uses cases (that were not exhaustive) > are very different, I dont think we will have a 'data sync solution', some of > the use cases may converge (App sync and SMS), however syncing files with > drop box looks and acts hugely different from syncing history in the browser > and I dont think we can try to force a single solution for both cases. I won't argue about how hard a fit them all solution for syncing arbitrary data is, but I would just like to mention that the Cloud Services team has been working on this idea and they came up with a potential solution for documents synchronization [3]. [3] https://github.com/mozilla-services/kinto Cheers, / Fernando
_______________________________________________ Sync-dev mailing list [email protected] https://mail.mozilla.org/listinfo/sync-dev

