Page 1 of 6

Creating a Launch Agent that provides an XPC service on macOS using Swift Oct 21 2019

Last week we discussed how to build XPC Services(the .xpc bundles) inside your macOS applications. This week we are going to explore how to provide XPC services that can be used from other applications or tools.

To make the XPC service available to...

Read More...

XPC Services on macOS apps using Swift Oct 17 2019

We have access to many Inter-Process-Communication(IPC) mechanisms in macOS. One of the newest is XPC1. Before XPC a common way to use IPC, and provide services between processes, was through Sockets or Mach Messages (Using Mach Ports).

Nowadays...

Read More...

Using Kernel Queues (kqueue) notifications in Swift Oct 9 2019

Many components of macOS trace their roots back to BSD. One key aspect inherited from BSD is the Kernel Event Notification mechanism know as Kernel Queues (kqueues for short).

In the past, before kqueue(2)1/ kevent(2)2, when we wanted to track events...

Read More...

Understanding the RunLoop model by creating a basic shell Oct 1 2019

When we find ourselves listening for events, reacting to those events, and then going back to listening for more events, we have ourselves an Event-Loop. Having an event-loop is a common scenario. So common that Apple decided to provide us with a model...

Read More...

Using BSD Sockets in Swift Sep 24 2019

Apple provides many useful network frameworks. Network.framework (you can check my previous article on Network.framework if you want to see an example) is the latest. But sometimes we need to go deeper, and the abstractions might get in the way. In...

Read More...

Understanding Objective-C and Swift interoperability Sep 16 2019

There are many reasons to use more than one programming language in a project. In some cases, a lot of work has gone into building a framework (years maybe). Rewriting the whole framework to have the codebase in the same programming language, might...

Read More...

Building a server-client application using Apple's Network Framework Sep 10 2019

Apple’s network APIs are many, the older APIs are well documented, and you’ll find lots of examples. Not so much about the new Network framework. One factor might be that the name is not that search-friendly. In this post, I’ll explain how to use the...

Read More...

Understanding a few concepts of macOS applications by building an agent-based (menu bar) app Sep 3 2019

With advances in the frameworks and tools we use to develop software, creating a new app seems like magic. We just click a few buttons, and everything is created for us. I enjoy magic, but I think that sometimes we end up being Framework “users” without...

Read More...

Using Xcode's visual debugger and Instruments' modules to prevent memory overuse Aug 27 2019

An essential step before you deliver your application to your users is to make sure that your app is not overusing your user’s resources. In this post, I’ll show how to use Xcode’s visual debugger and the command-line counterparts to check for common...

Read More...

Understanding XCUITest screenshots and how to access them Aug 20 2019

Getting the screenshots of your app doesn’t need to be complicated, and it shouldn’t require you to install additional applications to do it. Sure you can use any other third-party library, but sometimes simple is better. Also, it is always fun to...

Read More...