Articles tagged 'systems-programming'
Good command-line tools are a pleasure to work with. A feature I'm always grateful for is when the developer took the time to provide an output that is human readable and an output that is easy to pass to another tool for additional processing. A neat...
Read More...
Apple provides the Launch Services API so we can interact with different applications from our current process. We can define URL schemes for our apps, and when that URL is opened, our app gets launched. We can also specify which application to open...
Read More...
System libraries are typically defined using C, that means we need a way to make them available to Swift. In this post, we are going to explore how to use the Swift Package Manager to give us access to C libraries, be it system or user-defined.
Let...
Read More...
Long gone are the days when single process single thread was the norm. We now take multithreading for granted, we expect all our applications not to lockup when we interact with them. We expect them to handle multiple users at the same time, etcetera...
Read More...
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...
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...
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 (kqueue
s for short).
In the past, before kqueue(2)
1/ kevent(2)
2, when we wanted to track events...
Read More...
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...
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...
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...
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...
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...