// archives

Programming

This category contains 68 posts
swift-server-test@2x.jpg

How to Unit Test Network Code in Swift

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

img_0072.jpg

How To Program iOS on iOS

“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 find out how.

spinner-cell@2x.png

How to Maintain Loading State in Cells

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 cell views gets scrolled off and re-used which makes managing animations challenging.

viper-sample-app@2x.jpg

Clean Architecture with VIPER Sample Project for UIKit

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 project for iOS that you can tinker to learn about the principles of clean architecture.

viper-splash@2x.png

How to Implement VIPER Clean Architecture in an iOS App

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 structure your app to be resilient and adaptive to change?

library-bookshelf@2x.jpg

Code Signing Failure due to Symlink Folders

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 notarization). Here is how to share code and resources in frameworks the right way.

swift-ui-design-2@2x.jpg

How Newbies Should Start Learning iOS User Interface Programming

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 programming the platform chart a learning path?

point-golden-shopping-cart@2x.jpg

Modeling In-App Purchases Inventory

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 non-consumable in-app purchase to a subscription type would involve a major rewrite. Learn how […]

disk-exposed.jpg

Notarizing Disk Images for Developer ID Distribution

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 disk images is a rather involved process. Read on to find out more.

borobudur-sunrise@2x.jpg

Architecting a Scalable Web Application

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 startup where there are a billion of other things in your head […]

database@2x.jpg

Future-Proof Your Data Persistence

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.

apple-watch-phone@2x.jpg

Watch App as In-App Purchase?

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.

sparkle-notarization@2x.png

Enabling Hardened Runtime on a Sparkle App

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.

lawyers-notaries-library@2x.jpg

Shared Frameworks in a Hardened Runtime World

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 to take care.

Categories

Archives