Apple‘s design goal is to create holistic and consistent experiences. Apple focuses exclusively on devices and services that they can control. In fact, this control actually has likely increased as Walt Mossbergwrites about WWDC 2014 on re/code.
Customers are being enticed more and more to stay within the Apple ecosystem (ideally with more iDevices down the road). However, TouchID will make this holistic experience even more convenient, stickier if you like.
One of the biggest difficulties developers can have when writing code that talks with an API is dealing with errors and exceptions, and translating those errors into something meaningful for their applications.
photo by Bent Jensen
Because APIs are based on different technologies and libraries, error codes are often inherited and do not make sense to whatever framework the consumer is using. Even worse is when those error codes and messages are simply passed through to the end-user without any manipulation by the application.
So, how can you make sure that all your API consumer understand your error codes and can handle them properly? If you’re offering a REST API, consumers expect your endpoints to behave like any other HTTP endpoint, so a good start is to simply follow the standards.
I have been working as a User Experience designer at CloudWork for the past 6 months and I’ve faced many challenges and opportunities while building an easy to use product that automates business processes and synchronizes cloud-based applications.
The UI and UX of the application was very easy to create compared to the actual UX of the service. The uncertainty and the number of dependencies for creating a successful integration between cloud applications is so high that it seems almost impossible to guarantee the Quality of Service.
The main issue is the lack of standards. Each application has a different API, different logic, different nomenclature. Even applications of the same class, e.g. CRM, are completely different beasts. This makes it really hard to guarantee the same solid integration between CRM A and APP X compared to CRM B and APP X. This can make creating a consistent User Experience very difficult.