In my opinion one of the most overlooked features of the Xcode SDK is the ability to test UI input using XCTestCases. Testing UI input throughout the lifecycle of your application can be beneficial for a multitude of reasons. First, UI testing allows a developer to validate that given a specific set of input, the output is that the user interface will exist in a specific state. Testing user interface output provides value because this allows a developer to test such states as loading data over the network or possib
Have you ever found yourself in a situation where you needed to test the networking functionality on your iOS or macOS app over a period of time to see how it reacts? Have you ever found yourself questioning whether or not network conditions during a specific time of day would play an impact on your application's performance or whether it was all just a coincidence? Well, I recently have, and these are real questions that I found myself trying to test and answer with measurable consistent results. Measurable results that will allow me to make the most informed decisions possible on my ne
Recently I was in a situation where I needed to convert hexadecimal data into ASCII text data and I had to pause because I needed to remember how this was done in a low level environment and it was escaping me off the top of my head. I was working close to the metal in a Darwin environment so I had C at my disposal, but I could not for the life of me remember the conversion from hexadecimal to ASCII for a stream of data like 0x6a, 0xdc. So that is the goal for this post, to describe my thought process on how I worked this conversion out and to validate this conversion was correct by writi
When Swift was announced back in 2014 I can remember thinking that I needed to make a pivot in my development approach and take all of my Objective-C knowledge and apply it towards developing in the Swift programming language going forward. At first, I thought Swift would be a one-for-one replacement of Objective-C and there would not be much of a difference in the development process other than the syntax.
Since the announcement of CoreML at WWDC this year I have been very excited to get in and start researching all the capabilities of Apple's new machine learning framework. One of the ideas I had to test the capabilities of CoreML was to build a recommendation engine to provide users of an application with musical recommendations based upon a library of known selections. CoreML would be used in this recommendation engine to fit musical selections to a machine learning model called a linear regression model.