our blog

Art+Logic at SXSW Interactive 2017

Art+Logic at SXSW Interactive 2017

Once again, Art & Logic will have representatives from our development, recruiting, and sales/marketing groups attending the South by Southwest Interactive Festival in Austin, Texas from March 10th – 14th. We’d love to meet with anyone there who’s interested in talking about a software development project or opportunities for software developers & designers at A&L.

read more
A Quick Core Data Stack with NSPersistentContainer

A Quick Core Data Stack with NSPersistentContainer

One of the longstanding criticisms of Core Data is how much code it takes to setup the infamous Core Data stack in your iOS or macOS app just so that you can create some instances of entities and save them to a persistent store. The frustration has spawned a number of blog posts outlining the latest, greatest way to setup your stack. Not long after the blog posts came the open source projects aimed at reducing the amount of boilerplate you’ve got to write and helping you avoid common mistakes.
With the release of iOS 10 and macOS 10.12 in many cases you can now forget about the blog posts and third party dependencies thanks to NSPersistentContainer. This one is a no-brainer and it would have been nice if Apple had included it back in the days of iOS 3.0 when they introduced Core Data.

read more
I’m Sorry: Your Software Project Will Never Be Finished.

I’m Sorry: Your Software Project Will Never Be Finished.

No, really. In fact, when you go live, your software shouldn’t be “done.” If it is, you’ve done something wrong. You see, in the history of software, there’s never been such a thing as a piece of software that launched without bugs. Think of your favorite, most used platforms. Gmail. Facebook. Salesforce. All are brimming with bugs. Every day a user writes into their contact forms about a bug they discovered, and while a lot of them are PEBKAC errors, a lot of them are legitimate bugs. And the ticket tracker logs them, someone triages them, and, eventually, most of them will be corrected.

read more
Cloudy with a Chance of VMs: Scaling Up & Out with Azure

Cloudy with a Chance of VMs: Scaling Up & Out with Azure

Many undocumented subtleties figure prominently when designing and scaling the Azure architecture of a new Azure Web App, whether starting from scratch or porting an existing .NET app to the Azure Cloud. It’s always best to determine system compatibilities and custom needs prior to deployment. While Microsoft’s Azure documentation is generally good, navigating the often undocumented details can prevent pitfalls and optimize the scalability of your Azure Cloud-based solution.

read more
Save Time & Energy with libcompression

Save Time & Energy with libcompression

In iOS 9 and macOS 10.11 Apple introduced the libcompression APIs to provide a more standard way of compressing and decompressing data in your apps while offering a selection of algorithms with tradeoffs between compression efficiency, time, and energy requirements. In the past I’ve used third party APIs to compress or decompress ZIP archives given the popularity of the format, but hadn’t considered using other algorithms to either benefit from better compression or energy efficiency. Given that, I decided to take a look at the algorithms offered by libcompression and see how they compare.

read more
Downloading Client-side Generated Content

Downloading Client-side Generated Content

A young developer, new to the Tao of the client-side, comes to a Master of the way, and speaks thusly: “Oh Master, our application nears completion; and lo, cat pics can be drawn upon, and captions fixated thereto, for the creation of humour and the bounteous enjoyment of our users.”
“This is good,” responded the Master.

read more
Searching App Content with Core Spotlight

Searching App Content with Core Spotlight

In the first part of this series of posts about Core Spotlight we looked at how to use the Core Spotlight APIs to index application data, how to search that data using Spotlight, and how to respond when a user selects a search result for your application’s data. In this post we’ll take a look at how easy it can be to search that same index from within your app.

read more
Indexing App Content with Core Spotlight

Indexing App Content with Core Spotlight

Core Spotlight has been available since iOS 9 but Apple has made some updates in iOS 10 that make it worth another look. In this series of posts I’ll look at how you can use Core Spotlight to index your application data and search that data both from within iOS using Spotlight and from within an app using some of the new Core Spotlight APIs such as CSSearchQuery.

read more
A C++ Class Factory for JUCE

A C++ Class Factory for JUCE

So, I’m working on a side project (as one does), and reach the point in development where I need to be able to take a tree of objects that all share a common base class and persist them to and from disk.
I prefer using plain text files to binary for a bunch of different reasons, so the problem really boils down to:
At runtime, I need to be able to convert a string containing the name of a class into a pointer to an object of the corresponding C++ class. Sounds simple, right?

read more
Are You Attending CES 2017?

Are You Attending CES 2017?

Are you going to CES? We’ll be there. We expect to see some exciting breakthroughs in virtual reality (VR), augmented reality (AR) and mixed reality (MR) as well as new innovations in pro-audio equipment, Internet of Things (IoT) devices, and much more. It looks like...

read more
Looking Back at 2016 and Looking Forward to 2017

Looking Back at 2016 and Looking Forward to 2017

As we reach the end of 2016, let’s take a look at some of the stuff we wrote about over the course of the year. We shared our thoughts on custom software development, looking at the such things as: the differences between composing and improvising; the value of refactoring; the nuances of following a lean-startup model; the conflict between Apple and the FBI; what happens when bad projects happen to good people; and a top ten list of the ways in which software development is like parenting.

read more