How to Parse Notarization Tool Output
Jun 2, 2021, 9:27 PM
“I want a REST API for notarization since it’s impossible to parse text coming from the notarization tool reliably.” What if I say that the command line API is the best method for integration with build pipelines? Read on to find out more.
Back to the Mac: How to Notarize Disk Images for Distribution Outside the Mac App Store
Nov 10, 2020, 8:03 PM
Distributing macOS apps as ZIP archives has been quaint since Sierra. Today’s macOS packaging requirements mandates notarization, otherwise it would say that your app is suspicious. This often means distributing apps within disk images...
How to Compile OpenSSL 1.1.1 for Apple Silicon
Aug 9, 2020, 9:35 PM
The long-rumored ARM Mac is on the horizon. With this comes the big work of porting and re-compiling current applications. But many Mac App Store apps are dependent on OpenSSL, which doesn’t yet support ARM on the Mac. Here is how you can...
How to Unit Test Network Code in Swift
Jul 15, 2020, 9:14 PM
Testing network I/O code without accessing the backend is not easy. Here is how you can mock the backend by injecting code into the URL Loading System
How to Program iOS on iOS
Jun 17, 2020, 9:28 PM
“Do I need a Mac to program iOS?” – for a long time there is only one answer: “Yes”. But this is no longer true, as there are many ways to program iOS – including on itself. Yes, you can make apps on the device itself. Read this article to...
How to Maintain Loading State in Cells
May 20, 2020, 9:41 PM
When a table view asks for a cell, often images in the cell isn’t yet available and needs to be fetched from a server – thus the cell gets a placeholder image. But static placeholders doesn’t look as good as animated ones. Unfortunately...
Clean Architecture with VIPER Sample Project for UIKit
Apr 29, 2020, 9:21 PM
Architecting applications to meet today’s challenges and be ready for tomorrow’s problem is not an easy feat. The principles of clean architecture may be sound, but separating the signal from the noise is tough. Here is a sample VIPER...
How to Implement VIPER Clean Architecture in an iOS App
Apr 8, 2020, 9:18 PM
Compartmentalizing functionalities within an app to improve its maintainability is difficult. More so when you’re not well versed with software architectures and other software engineering principles. What if you can confidently...
Code Signing Failure due to Symlink Folders
Dec 11, 2019, 7:59 PM
You try to reduce the application’s size by sharing resources in framework bundles and creating symbolic links so that other frameworks can find and use those resources. However this fell at odds with code signing (and probably...
How Newbies Should Start Learning iOS User Interface Programming
Nov 27, 2019, 8:30 PM
When you’re just starting out in iOS development, there are so many options in which to place a button. There’s storyboard, auto layout, and even SwiftUI — that’s just scratching the surface. How should someone new to...
Modeling In-App Purchases Inventory
Nov 13, 2019, 8:06 PM
There are four types of in-app purchases in Apple’s App Store, with their own unique ways to manage it. The challenge is how to isolate the intricacies of these product types from the rest of the application. Otherwise a move from...
Notarizing Disk Images for Developer ID Distribution
Oct 9, 2019, 9:12 PM
Do you distribute your macOS apps as .zip files? That has been quaint since Sierra. You should package your apps as signed and notarized disk images instead. Otherwise Catalina would say that your package is suspicious. However creating...
Architecting a Scalable Web Application
Sep 18, 2019, 10:00 PM
Writing a web app is one thing. Deploying it on the global Internet for millions of users is another thing. Keeping it secure from prying eyes, competitors, and general baddies is yet another challenge. How can you do all of this in a...
Future-Proof Your Data Persistence
Aug 21, 2019, 9:25 PM
The data persistence stack that is an appropriate decision today may not be an optimal solution when your app has grown. You would need to design your app to withstand the test of time and be extensible for as it grows. Read more to learn...
How to Sell watchOS Applications as an In-App Purchase
Aug 7, 2019, 9:13 PM
How do you sell a watchOS app? Through in-app purchase of course, like these fine apps have done. However there’s a caveat condition that you need to guard for, otherwise you risk having angry customers.
Enabling Hardened Runtime on a Sparkle App
Jul 25, 2019, 9:00 PM
Notarization requirements is just around the corner in the coming release of macOS. But the Sparkle updater framework is not yet ready for it. Here’s how you can fix that.
Shared Frameworks in a Hardened Runtime World
Jul 18, 2019, 10:00 PM
macOS Catalina is just around the corner and with it comes mandatory notarization and hardened runtime. If your mac app accepts plugins or otherwise loads 3rd party frameworks and libraries, there are a few caveats that you’ll need...
Which Database to Use for My iOS App?
Jun 19, 2019, 1:23 AM
Choosing a database to use for your iOS app is no simple feat. But what if you have the tools to make an informed decision for your app? What if you can decide for today and design for tomorrow?
Eleven Books and Resources for iOS Developers to Get Started on UI/UX.
May 12, 2019, 3:37 AM
Were you passed on a job opportunity because you were blind on user experience topics? Do you feel challenged in educating clients, colleagues, or even managers on user interface topics? Here is a list of references that can help you.
How to Get Core ML Produce Images as Output
Mar 10, 2019, 9:33 AM
Core ML’s tools to convert other framework’s machine learning models is a pretty awesome feat in itself. However it is by no means complete. I found some issues in converting models which outputs images. Issues which took me a...
First Dabbling in Machine Learning
Feb 19, 2019, 3:30 AM
I’ve been toying around with retraining machine learning models — one for generating prose and the other for processing photos and separate objects from its background. Here are some of the challenges I encounter as a total newbie...
Swift Snowflake ID Generator
Jan 20, 2019, 7:51 AM
Lighting talk on creating unique random identifiers yet stay within 63 bits of a long integer.