These days, modern mobile application development requires a well thought-out plan for keeping user data in sync across various devices. This is a thorny problem with many gotchas and pitfalls, but users expect the feature, and expect it to work well.
For iOS and macOS, Apple provides a robust toolkit, called CloudKit API, which allows developers targeting Apple platforms to solve this synchronization problem.
In this article, I’ll demonstrate how to use CloudKit to keep a user’s data in sync between multiple clients. It’s intended for experienced iOS developers who are already familiar with Apple’s [...]
BY JOSIP PETRIĆ – FREELANCE SOFTWARE ENGINEER @ TOPTAL#Automated #iOS #Testing #UI #Unit #XCode
As a good developer, you do your best to test all the functionality and every possible code path and outcome in the software that you write. But it is extremely rare and unusual to be able to manually test every possible outcome and every possible path a user might take.
As the application gets bigger and more complex, the likelihood that you are going to miss something through manual testing increases significantly.
Automated testing, both of the UI and the back-end service APIs, will make you more confident that everything works as intended [...]
BY ALEXANDER GAIDUKOV – FREELANCE SOFTWARE ENGINEER @ TOPTAL#API #iOS #REST #Swift
Nowadays most mobile applications rely heavily on client-server interactions. Not only does this mean that can they offload most of their heavy tasks to backend servers, but it also allows these mobile applications to offer all sorts of features and functionality that can only be made available through the Internet.
Backend servers are usually designed to offer their services through RESTful APIs. For simpler applications, we often feel tempted to get by creating spaghetti code; mixing code that invokes the API with rest of the application logic. However as applications [...]
BY DEMIR SELMANOVIC – HEAD OF OPEN SOURCE @ TOPTAL#Android #CSharp #iOS #mac #Microsoft #VisualStudio #vs
Once upon a time, there was a company that had all the best tools, and writing software for their platform was awesome. But slowly, they became indifferent to their own problems. They did not become alarmed when their systems crashed, but rather accepted this state of the universe as a fact of life. They believed that their programs were perfect within themselves, serene and elegant, their purpose self-evident.
Oh boy, if they only knew how wrong they were…
It was well overdue when they realized their mistakes and their CEO cried to bring back [...]