Network Requests and REST APIs in iOS with Swift: a protocol-oriented approach (URLSession, JSON parsing, Networking libraries, generics and architectural principles)

Calling REST APIs in iOS apps with Swift a protocol-oriented approach

Networking nowadays is a requirement for most modern iOS apps.

This often takes the form of interfacing with a remote web service that provides data for an app.

And this web service is often a REST API that returns data in the JSON format.

But writing network code in Swift is not a simple task.

Making asynchronous network calls to get data from a remote API requires the interaction of many complex parts in an iOS app.

Continue reading

Books That Will Improve Your Career, Freelancing and Business making Swift Apps for iOS

The business of making Swift apps for iOS

When I started freelancing a few years ago, things did not go well at the beginning.

I started freelancing at a moment in which I was not happy with my employer and I was looking for another job. Back then a friend told me that there was a lot of work freelancing as an iOS developer.

That was what convinced me to make the sudden jump. But it turned out to be quite different.

Continue reading

How to Persist Data in iOS Apps Using Property Lists and the Correct Architecture for Handling Persistent Storage


Many iOS developers seem to go for very complex storage solutions when iOS offers very quick and easy ones that are much better for many tasks.

I myself made such mistake in the past. When the iOS SDK first came out I decided to make a little game for the iPhone. It was a little card game and as such it had to store the values for each card as well as information about the deck and cards the player collected. And I used the worst solution possible.

Continue reading

Which storage technologies are available in iOS and which ones you should use


Sometimes it is hard to know which technology to use in iOS for a specific task.

Storing data is indeed one of these cases. When I wrote my first app, a diet app for the Mac when the iPhone did not exist yet, I used Core Data to store its data (macOS and iOS share the same technologies and frameworks). Looking back, I think that was probably the right choice at the time, given the kind of data the app handled. But back then I had no idea and no way to tell. I picked Core Data just because I heard other developers talking about it and I didn’t know any other way. When it came to store static data in the app, though, I definitely made the wrong choice.
Continue reading