(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

Reply via email to