Intercepting iOS Network Request Calls with Proxyman
Feb 10, 2021, 6:00 AM
Intercepting iOS Network Request Calls with Proxyman
Working with network APIs can be tricky, especially when debugging. You oftentimes have to ask yourself if your app is sending and receiving the expected information. You also often...
nil-null-mess in Objective-C and Swift
Feb 3, 2021, 6:00 AM
All programmers are familiar with the concept of nullability. Whether something exists or not. Whether something is there or not.
Objective-C is very dynamic when it comes to dealing with nullability. All Objective-C programmers are...
Understanding Basic Data Structures in Swift: Dictionaries in Depth
Jan 27, 2021, 6:00 AM
Whether you are a seasoned developer with a lot of code out in the wild world, or you started learning programming this week, chances are you hace used (and seen) dictionaries being used in many places. Also known as hashmaps or hash...
Understanding Basic Data Structures in Swift: Sets
Jan 20, 2021, 6:00 AM
I’m introducing a short small series in which we will talk about basic data structures in Swift. My goal is not to show how they are implemented internally, but rather to show when they can be useful.
In truth, unless you have...
Being an iOS Developer in Bolivia (and South America)
Jan 13, 2021, 6:00 AM
Happy New Years everyone! To kick off this year, I wanted to write a non-technical article. This time I want to focus on a topic that you won’t find in many other places, and that is what it is like to hunt for iOS jobs in Bolivia,...
Happy 2021! And Short Break Notice
Dec 20, 2020, 2:53 PM
This has been quite a year! Not only did we have the bad stuff happen (COVID-19), it has also been a crazy year for my personal development and for the growth of my blog.
Thanks to the events that happened mid-year, the reach of my blog...
The "ExpressibleBy-" Protocols in Swift
Dec 16, 2020, 6:00 AM
Swift gives us many interesting features to write cleaner and more obvious code. This code is more readable, and it helps both SDK consumers and code maintainers.
One such feature Swift has is the ExpressibleBy- family of protocols. This...
Getting Started with the App Store Connect API
Dec 9, 2020, 6:00 AM
In 2018, Apple introduced the App Store Connect API. We as iOS developers interact with App Store Connect almost daily. We like to see our sales reports, analytics, check how our apps are doing. Occasionally, we may need to register a new...
Understanding the Limited Photo Library in iOS 14
Dec 2, 2020, 6:00 AM
This year, Apple introduced a new feature that gives users even more control over what photos may third party apps see when they see a Photo Picker. The system will first present an alert asking users if they want to give access to their...
Lazy Sequences in Swift
Nov 25, 2020, 6:00 AM
Lazy Sequences in Swift
If you have been writing Swift for a while, you have undoubtedly used high order functions such as .map and filter. These higher order function work on any collection, and they are very useful when we want to...
Quick Tip: Custom Debug Printing with CustomDebugStringConvertible in Swift
Nov 15, 2020, 2:58 PM
Printing stuff to the console is a simple but powerful step we can take when debugging our apps. But there are times when we want to print an object and we actually get something entirely different, often also useless.
For example, this...
Understanding KeyPaths in Swift
Nov 11, 2020, 6:00 AM
KeyPath. It sounds like a very fancy word. And it is a feature you have likely used it, either knowingly or unknowingly. KeyPaths are one of my favorite features in Swift, but they can be a bit tricky to understand. In this article we will...
Quick Tip: Hosting JSON Files on Github for Free
Nov 4, 2020, 6:00 AM
There are times in which you may want to host small JSON (or other small types of files) somewhere because your app needs them. Maybe you want to configure feature flags, or maybe you want to host IAP identifiers somewhere so as to not...
Parsing Tricky JSON With Codable in Swift
Oct 28, 2020, 7:00 AM
If you have been writing Swift in the past couple of years, you have probably been using Codable (which is really just the composition of Decodable and Encodable in the same protocol).
If you have been writing iOS apps for longer, you...
A More Practical Custom Formatter
Oct 21, 2020, 7:00 AM
I had announced that I wouldn’t be able to write an article this week due to it being Elections Day in my country. that said I just can’t leave you guys without article, so this is a short one.
We will write another NSFormatter...
Writing Custom NSFormatters in Swift
Oct 14, 2020, 7:00 AM
Last year we explored some NSFormatters and how to use them. We also explored some formatters introduced in iOS 13. Finally, a few weeks ago we learned about yet more formatters, and how to better use the ones we already had. In short, we...
Benchmarking Your App with MetricKit
Oct 7, 2020, 7:00 AM
Sometimes we may be interested on how well our app is performing out there in the world. After all, our apps may be running in different environments that are hard to test or that Instruments may not catch.
For this purpose, Apple...
Formatting Notes and Gotchas
Sep 30, 2020, 7:00 AM
A year ago, we talked about using NSFormatter for formatting data in a human readable format. WWDC2020 brings some updates and changes to the NSFormatter APIs that we need to be aware of. This article will complement the NSFormatter...
A Short Guide to Localization on Apple Platforms
Sep 23, 2020, 7:00 AM
Translating our apps in different languages helps us reach wider audiences of different cultures. This reach can increase our app usage considerably and offer more monetization properties.
In this short article we will mention the features...
WWDC2020: What's new in CryptoKit
Sep 14, 2020, 7:00 AM
CryptoKit, introduced in WWDC2019, allows us to perform cryptographic operations very easily.
While CryptoKit still doesn’t offer many algorithms and functionality, it’s still growing, and this year CryptoKit and do more.
Logging Messages With the Unified Logging System on Apple Platforms
Sep 9, 2020, 7:00 AM
Last time we talked about the basics of the Unified Logging System, we set the basic concepts and code we need to write logs, along with the different logging levels, and more.
In this article we will talk about actually logging messages,...
Using ASWebAuthenticationSession with SwiftUI
Sep 2, 2020, 7:00 AM
Working with REST APIs you have no control over can be a little monotonous. This is especially for OAuth 2.0 API that need you to do a little bit of setup, get your API keys with the service provider, and then you need to do the setup on...
Introduction to Apple's Unified Logging System on iOS 14 in Swift
Aug 26, 2020, 7:00 AM
It is no surprise that software tend to write logs to a local file as they execute. As events, errors, or exceptional situations occur, a lot of software takes note of them using a local logging solution. This is done because these...
Simpler File Encryption on iOS
Aug 19, 2020, 7:00 AM
It’s not news that iOS has a heavy a focus on privacy and security. Apple provides us with many tools to make encryption easy, like CryptoKit, a high-level Cryptography framework on iOS. When CryptoKit is not enough, we can leverage...
A File Download Queue in Combine for Swift
Aug 12, 2020, 7:00 AM
Combine allows us to create pipelines for a lot of tasks. Thanks to the fact it can do work concurrently without leveraging callbacks, it is very easy to build things that would otherwise be very complex.
In this short article, we will...
Common Reasons for Background Tasks to Fail in iOS
Aug 5, 2020, 7:00 AM
Apple introduced modern background tasks last year on iOS 13. These new APIs have been out for a little over year (counting the beta period). Many developers have tried to adopt them to moderate success. Many of them have found them to be...
Adding Custom SwiftUI Views and Modifiers to the Xcode Library
Jul 29, 2020, 7:00 AM
Xcode 12 introduces the ability for developers to add their own SwiftUI views and modifiers to the Xcode library. This allows people using your code to discover your custom views, makes your codebase easier to learn, and it allows you to...
Wrapping Asynchronous APIs into Combine Futures
Jul 22, 2020, 7:00 AM
Two of the concepts used a lot in Reactive Programming are the Future and Promises. Whether you have been using Combine for a while or are new to Reactive Programming, chances are you have seen these two words. These terms date to years...
Sharing Data Across Apple Devices with the MultipeerConnectivity Framework
Jul 15, 2020, 7:00 AM
There are times when we may want to share data across instances of our app running on different physical devices. You could develop a server or even leverage cloud storage, but did you know Apple provides a framework to share data directly...
New UIDatePicker in iOS 14
Jul 8, 2020, 7:00 AM
WWDC2020 brought many interesting and unexpected updates to many old and well known APIs. In this article, we will explore what’s new with UIDatePicker on iOS, an API that has existed since the dawn of time and hasn’t changed...
UIMenu Improvements in iOS 14
Jun 24, 2020, 3:12 PM
UIMenu is a new set of APIs that were originally introduced in iOS 13. The API allows us to add menus to different parts of our UIs, including binding actions to key combinations when using your iOS or iPadOS device with a keyboard....
The secret entitlements behind Default Apps on iOS
Jun 23, 2020, 10:42 PM
I hate that my first WWDC article is going to be as lazy as this, but I thought I’d write about it anyway so as to at least give an starting point to devs who will want to try creating their own default web browser or e-mail client...