Gaia/Contacts/Data Refactor: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
No edit summary
mNo edit summary
Line 1: Line 1:
== Current situation ==
== Current situation ==
Current contacts app have been growing with time around the [https://wiki.mozilla.org/WebAPI/ContactsAPI mozContact API], started like a simple application but has been adding more and more requirements.
The current Contacts app has been growing with time around the [https://wiki.mozilla.org/WebAPI/ContactsAPI mozContacts API], started like a simple application but has been adding more and more requirements.


It was not just the only FirefoxOS app using this api, so mozContacts end up trying to support several requirements from different applications, and at the end of the day what we have is a store for vcard objects, which limited search capabilities.
It was not just the only FirefoxOS app using this API, so mozContacts end up trying to support several requirements from different applications, and at the end of the day what we have is a store for vCard objects, which limited search capabilities.


With the inclusion of external contacts sources like Facebook, Gmail, Hotmail, vcard from sdcard, bluethoot and so on, we have been extending the use of the API via hacks and dark techniques.
With the inclusion of external contacts sources like Facebook, Gmail, Hotmail, vCard from SDCard, bluetooth and so on, we have been extending the use of the API via hacks and dark techniques.


Also we added a great feature like contacts merging, everything working under the same mozContacts API.
Also we added a great feature like contacts merging, everything working under the same mozContacts API.
Line 13: Line 13:


* Contacts list performance:
* Contacts list performance:
** Due to the design of contacts app, we should be able to jump to letters and scroll super fast with the letter shor cuts. It wasn't right to add application specific requirements to mozContacts API so we have been doing black magic to keep the performance at 60fps when loading huge amount of contacts ( > 2000).
** Due to the design of contacts app, we should be able to jump to letters and scroll super fast with the letter shortcuts. It wasn't right to add application specific requirements to mozContacts API so we have been doing black magic to keep the performance at 60fps when loading huge amount of contacts (> 2000).


* Search restrictions:
* Search restrictions:
** Again, adding more and more indexes just cause specific app requirements wasn't a good idea so we had to implement our search based on DOM, which is extremly slow and affects as well to the contacts list rendering time.
** Again, adding more and more indexes just cause specific app requirements wasn't a good idea so we had to implement our search based on DOM, which is extremely slow and affects as well to the contacts list rendering time.


* Impossible to unmerge contacts:
* Impossible to unmerge contacts:
** During the process of merging contacts we end up losing the information as we just have a mozContacts API, we lose data when we merge.
** During the process of merging contacts we end up loosing the information of the original contacts as we only have a mozContacts API.


* Dependency with Facebook integration:
* Dependency with Facebook integration:
**When we started to create the FB integration we needed to somehow make the contacts live in mozContacts but as well apply some legal restrictions to how data was shared. We didn't have the same technology that we have right now for doing that and this made our code being dependant of one partner.
** When we started creating the FB integration we needed to somehow make the contacts live in mozContacts but as well apply some legal restrictions to how data was shared. We didn't have the same technology that we have right now for doing that and this made our code being dependant of one partner.


* Hard to integrate with 3rd party contacts providers:
* Hard to integrate with 3rd party contacts providers:
**We added extra support for Gmail and Hotmail contacts but this is embeded in the Contacts application itself, which is not scalable. We want to make any app capable of provide contacts to have a seamless integration with the Contacts APP.
** We added extra support for Gmail and Hotmail contacts but this is embedded in the Contacts application itself, which is not scalable. We want to make any app capable of providing contacts to have a seamless integration with the Contacts APP.


== Architecture ==
== Architecture ==
Confirmed users
483

edits

Navigation menu