We have just released a new version of the iOS client to the app store. The new version is significantly faster than the previous one, more flexible, includes many fixes (thanks to all the testers!) and now supports syncing your address books in addition to the previously supported calendars and reminders. Go ahead and install it now!

Before we go to any more details about the iOS app, we would like to let you know that some of us from the EteSync community will be attending FOSDEM again this year (1st and 2nd of February). Drop by our IRC channel and let us know if you are attending too, would be great to meet more people from the community.

Oh and in case you missed it, we are now also on reddit, come and join the community there!

Here are the highlights of the most recent improvements to the iOS app.

Address book sync and choosing sync accounts

One of the most significant changes in this version is the ability to sync your address books in addition to the previously supported calendars and reminders! This is made possible thanks to a related feature: you can now choose what local account to sync EteSync with.

To understand what the above means exactly, we need to share a bit of background about how sync works on iOS.

Due to iOS limitations, EteSync can't create new accounts on the device and can only sync to existing ones. This means that in order to sync EteSync with your device you need to choose a local account to sync with. This is not that much of an issue with calendars (for which we have a workaround), but it comes with some implications for address book sync. If you would like to know more, you should read about it in the EteSync iOS user guide.

Significant performance boosts and bug fixes

The iOS app now syncs significantly faster than before! The iOS client is mostly written using a technology called React Native which both decreases development time, and the amount of new code we have to write (due to code reuse with the web client). Unfortunately, due to iOS limitations (no JIT for JavaScript), it came with a significant performance impact. We therefore worked hard on reimplementing a lot of the logic in Swift (which doesn't suffer from the same limitations) which provided us with significant performance boost, at the cost of flexibility and code reuse.

In addition, thanks to a lot of useful feedback from everyone who has been testing the app, we fixed many bugs that we weren't able to catch in our internal testing. Thanks a lot everyone!

Limitations and missing features

As mentioned above, the app now supports syncing your contacts, calendars and tasks, though it's still missing some features. These features are a bit more problematic because of more iOS limitations, but we are actively working on them, and we have some good ideas on how to solve them!

  1. Automatic background sync: the sync is still semi-manual. You need to manually open the app and click "sync" in order to push your local changes to the EteSync server.
  2. The contact notes field is not currently supported. This is unfortunately another iOS limitation. We have asked Apple for the required exceptions to be able to do this, and are still waiting for their response.
  3. While complex event recurrence rules are now supported, there's one more niche aspect that isn't, and that's what's called "exception dates". It's when you have a recurring event with some of its instances are different than the rest of the series.

Thank you NLnet and NGI0

We would also like to remind you that the iOS client is made possible with financial support from NLnet Foundation, courtesy of NGI0 Discovery and the European Commission DG CNECT's Next Generation Internet programme. For more information please read the original announcement post.

Feedback, suggestions and contributions

As usual, we would like to remind you that we rely on your feedback to make EteSync better. Do you have any suggestions or are experiencing any issues? Please send patches, report issues or just contact us.

In addition, your contributions are always welcome! Be it testing, design, code or helping us spread the word! Every bit helps in making EteSync better for everyone. If you are interested in contributing and don't  know where to start, don’t hesitate to contact us!

Follow us on Mastodon, Twitter, Facebook, reddit or RSS for the latest updates and privacy-related content!

Until next time!