This is a big one for us. We’ll explain why.
It is here and we are quite excited! It took longer than expected, but it’s done. We needed it badly, for multiple reasons. There were some more fields we needed to add and implement picture syncing. Also there were some issues with the sync itself that could cause problems for users. Those issues are now solved!
You can get the new OSX client by going to the download page.
- Group deletion on Soocial
- Changes reverted because of slow sync initiated by OSX
- Groups multiplication owning to the presence of a contact with the same name as its group
Added support for:
- Phonetic names
- Related names
We’ve made quite some progress since our last OSX client, and we would love to get your feedback about our new Soocial for the Mac client. If you run into any problems or have any questions, feel free to shoot us an email at email@example.com
For those interested, here is why it was such a difficult task to pull off:
We had to start from scratch
One of the first things we did when we started Soocial, was making a client to sync contacts between OSX and the Soocial server. With the knowledge we had between our team and the OSX developer we hired to make this, we decided to make a prefpane that would directly be connected to OSX Sync Services. The advantage of this approach was that we could program against the provided Sync Services API. The downside was that we had to tweak our sync server to act as a client, since Sync Services had to be the server.
Bonus points if you really understood the architectural design described in the previous paragraph.
So as it happens in software development, we had made a decision and stuck with it. We kept developing for a while, but it was getting more and more difficult to maintain the existing client. The initial developer, who was a freelancer, had moved on to other stuff and was not interested in further developing the OSX client.
So after a lot of deliberation we decided to bite the bullet and make a new OSX client. We did have to search a bit, but eventually found someone who was interested in programming the client and set a plan to have it done in about three months. After many ups and downs, those three months turned into eight months, but now we have something to show for, a new, functional OSX client.
For those that wonder how we did things differently now. The client basically has two parts:
This time, the client won’t hook into Sync Services and try to act as a server. Also, because we don’t want to confuse Sync Services, the client will be responsible for managing its own local datastore, which will reflect the contacts from the Address Book. By using the pattern of delegation, the client will hook into Sync Services and receive appropriate notifications when contacts have changed locally (e.g. the user has changed, added or deleted contacts in the Address Book).
The client will check often to see if there is any notification like this waiting to be processed. If there is, this will trigger the local sync, which will update the information in the client’s local datastore and then start the external sync.
The external sync represents the synchronization step between the OSX client and the Soocial server. The client will start this sync when a change is made to the local database by the local sync and at a regular interval set by the user. Changes from the server will be first written to the local database.
After that a new local sync will begin, which will synchronize the local datastore with the Sync Services datastore in order for the changes to be propagated into the user’s Address Book.
The Client – Soocial for the Mac 2.0
By using this logic we can now return to the normal order of things, by letting the client BE the client and the server BE the server. We think that we have made a lot of progress since our last client and hope that this new client will prove to be an indispensable tool in your daily workflow. Looking forward to receiving your feedback!