March 31, 2026
It's hard to believe, but after 10 years at Amazon AWS and even more at Heroku, I've moved the entire hawkimedia.com infrastructure to Cloudflare: website, blog, everything!
It all happened in less than five days, and it wouldn't have happened without AI.
Read more
September 15, 2019
If you opened an old Xcode project in Xcode 11 and wondered where all your simulator versions before iOS 13 went, you may need to tweak the deployment target of your target. Exp...
Read more
June 27, 2019
Since upgrading my iMac to macOS Mojave 10.14.4 several months ago, I have found the system frozen every morning, with no smoking guns. After weeks (months?) of this, trying man...
Read more
October 7, 2016
As Apple promised in September, it started sending out emails to developers warning that their apps would be removed from sale on the App Store unless updated. I received two su...
Read more
July 15, 2016
We've got an update in the works to our popular app OuttaMyWay! - Personal Lights & Siren which includes some bug fixes, a couple new sirens, and some Siren Board improvements....
Read more
April 2, 2016
Recently a user's email password was cracked. Not long after, she started receiving hundreds of bounce messages. My first thought was that these messages were back scatter, prod...
Read more
March 25, 2016
I am at a loss to explain it, but I suppose it was inevitable. I have been observing a very long and slowly declining revenue tail for my best app for some time. My most popular...
Read more
February 12, 2016
Lockbox v3 is now available, sporting a vastly more robust yet less complex API for storing data into and retrieving data from the iOS keychain. The basic premise of Lockbox has...
Read more
February 12, 2016
An update is available (as of yesterday) for FilterFresh , our filter maintenance and reminder app for iOS.This update has the usual minor bug fixes and improvements, of course....
Read more
January 7, 2016
If you subscribe to this blog, you received notice of a new post, cleverly titled "test post". Oops. Sorry. We were making sure we could still create content because we've moved...
Read more
December 11, 2015
Nearly two years in the making, OuttaMyWay v3 is finally available today ! It's a complete re-write, but the app retains all the familiar features users have come to love, plus...
Read more
November 19, 2015
Nearly 2 years in the making, OuttaMyWay! v3 is ready for public testing! This update supports iOS8 and above on both iPhones and iPads, and has a number of other enhancements a...
Read more
October 29, 2015
Thank G-d for RAID! And I'm not talking about the bug spray. I have a Linux server in my basement which hosts the family email, a few websites, and all our music and photos. I b...
Read more
October 24, 2014
I recently set out to re-write one of my apps. The app currently supports iPhone and iPod touch screens up to and including the 4" displays. There are a handful of "Default" lau...
Read more
October 13, 2014
A few weeks ago we ran a promotion in support of National First Responders Appreciation Day . We lowered the price on our popular app OuttaMyWay! - Personal Lights & Siren for t...
Read more
September 26, 2014
Saturday, September 27th is National First Responders Appreciation day in the United States, a day set aside to recognize, remember, and thank all the brave men and women who da...
Read more
April 11, 2014
This week, with as much media "blitz" as an indie shop can muster, we announced our latest app, Filter Fresh , along with our completely revamped website . Filter Fresh is free...
Read more
March 28, 2014
A new project (nearly ready to release; stay tuned) required some custom UI. One element was a badged UIBarButtonItem, for which I wrote a custom class, which I am releasing as...
Read more
February 14, 2014
About a month ago I wrote about the recurring but ever-solvable problem of loading images in the background without losing performance while say, scrolling a table view. While I...
Read more
January 17, 2014
There is no shortage of common engineering problems that have been solved over and over again, or just once. In either case, if a Good(tm) solution is found, it gets reused wher...
Read more
January 3, 2014
Goodbye '13, Hello '14! This is the time of year where we all take stock of the year just ended, and think about what the coming year may hold. This is that post for me, a perso...
Read more
August 30, 2013
The iOS UIPickerView is one SDK component that leaves little to the developer for customization. With iOS7 and its entirely revamped look and feel just around the corner (allege...
Read more
April 26, 2013
I debated about what to write about today, especially in the wake of yesterday's WWDC ticket frenzy, the subsequent online screaming about it, and everything else. I think in th...
Read more
April 12, 2013
It is very common practice that an object like a view controller is the delgate (and perhaps datasource) for another encapsulated or included object, such as a table view. This...
Read more
February 1, 2013
How do you know if your code works? You test it of course. But, how do you test your code? Do you run it in the simulator? On your device? Is that enough? The simple answer is:...
Read more
January 18, 2013
What is the cost of expedience? Answer: Technical debt. How often have you had to solve a problem quickly, knowing that your solution was correct (i.e. it works), but not really...
Read more
January 4, 2013
One of the features of my new day job is that the development environment is full-on Agile. It's my first experience in such an environment, and while I've worked in plenty of p...
Read more
December 21, 2012
If you are an Apple Developer, you have no doubt been bombarded lately with reminders that Apple is shutting down its developer portal for Christmas beginning today Friday, Dece...
Read more
December 7, 2012
No, that's not a new and magical API in the title. Just an eye catcher... This week I changed day jobs. So literally, my own view has changed. That is to say, the office I go to...
Read more
November 9, 2012
I made a stupid mistake recently, which cost me more than a few hours of time to figure out. But I learned a couple things: Xcode will let you dig as deep a hole as you like, de...
Read more
October 26, 2012
In a previous post I wrote up some discoveries I had made about using geofencing -- region monitoring in iOS parlance -- based on some testing I had done. I have since applied t...
Read more
October 12, 2012
In my last post about dynamic pattern images , I showed how to create images on the fly for use as background pattern images. As promised, today I'll show how to create composit...
Read more
September 28, 2012
The image handling capabilities available in iOS (and OS X for that matter) are pretty spectacular. Using only high level APIs, you can work with images quite easily. But lurkin...
Read more
August 31, 2012
A slight departure from the thing we all love doing (writing code) to a thing some of us may have to spend time on (system administration). We added a fourth Mac to our home net...
Read more
August 17, 2012
This is an old and common thing to do in an iOS app. Doing it well -- or at all -- it turns out, is pretty easy, but perhaps not obvious. The Problem You have a table view with...
Read more
August 3, 2012
I would hope this is obvious to anyone who's been around the iOS eco-system during an iOS beta period: Make sure your apps will continue to work with the new release! Last week...
Read more
July 20, 2012
Two things happened recently that have each, in their own way, de-railed me to some extent. The details of each instance should be interesting to iOS developers and Rails develo...
Read more
June 22, 2012
Since April I've delivered a surprising number of apps to the App Store, and I thought I'd give a brief summary of those projects and what made (or makes) them interesting. Tivo...
Read more
June 9, 2012
Recently I was interviewed by Lee Shen Han for his blog Beginning iOS Development . That interview is now available here . Lee devotes a section of his blog to interviewing indi...
Read more
June 8, 2012
It turns out that building multiple targets from one source code base is both easy and hard, both simple and complex. It all depends not only on the ultimate products you want t...
Read more
May 25, 2012
Several months ago I wrote about some tricks I was using to build many targets from one code base . The rubber is meeting the road on that project as we get closer to being read...
Read more
May 11, 2012
The title of this article may be overstating my expertise with git slightly, but that's how I feel having successfully tackled what is, I think, a fairly non-trivial task with g...
Read more
April 27, 2012
It seems like there has been a lot in the "developer" news lately about the secure storage of user data in iOS apps, as well as related topics around securely replacing the vene...
Read more
April 13, 2012
Sometimes there is no time to focus on just one or two things. No, sometimes things get busy and between day jobs, and night jobs, and family, and all those other obligations we...
Read more
March 30, 2012
Location Services are one of the most interesting capabilities available in iOS. One interesting feature therein is "geofencing", also known as "region monitoring." I recently i...
Read more
March 16, 2012
It is a common pattern for an app to do something with data that is not local. Maintaining decent app performance while fetching the data is one challenge (and not the focus of...
Read more
March 2, 2012
For the newcomer to iOS development, "animation" may seem like a daunting proposition. That's how I felt when I wanted to animate a game board 90 degrees in my very first app. H...
Read more
February 24, 2012
In my day job, we have need to interface with an Oracle database, from ruby. There's a gem for that: ruby-oci8. The problem, since OS X Lion came out, is that installing the gem...
Read more
February 17, 2012
In my last post, Something Old or Something New? , I talked about my own mental process for choosing what to do next that would be meaningful, i.e. worth doing and doing well, a...
Read more
February 3, 2012
What's my "Next Great App" going to be? No one knows, of course, since almost anything can be a hit, or not! I've experienced this phenomena with my own, current apps. And this...
Read more
January 20, 2012
Building one app from one code base is pretty straight forward (all other complexities of Xcode development notwithstanding, of course). Building more than one app from one code...
Read more
January 6, 2012
I am always learning new things about my craft: from colleagues, on the job, from the Googles, and yes, from books. For technical topics, I like having a real book because when...
Read more
December 23, 2011
This has been quite a year for me as an "indie" iOS developer, and I thought a recap of what I learned, what I did, and what I hope to do in 2012 was in order. My intention for...
Read more
December 9, 2011
Set aside any ideas you may have that global data is evil. If you spend any time on the StackOverflow website, you've likely seen questions like "How do I share data from one vi...
Read more
November 25, 2011
There are some apps that immediately make you say, "Wow! That looks really nice!" You might also assume that a "real designer" (tm) was involved. In many cases, you'd be right....
Read more
November 14, 2011
On the heels of this past weekend's Voices That Matter iOS Developers Conference I am feeling completely inspired to create great, new, and innovative apps. My mind is ablaze wi...
Read more
November 11, 2011
If you came to Xcode4 from Xcode3, you noticed a distinctly different methodology to the way in which apps are built, namely Schemes . Schemes introduce more organization and fl...
Read more
October 28, 2011
Despite what Apple's Human Interface Guidelines may say, sometimes you want to prevent your user from doing anything until some long-running task (like a network API call or a l...
Read more
October 14, 2011
This is my first post for iDevBlogADay , an opportunity about which I am quite excited. The following is the tale of how I got into this crazy world of iPhone development and ho...
Read more
October 6, 2011
Like everyone else, I feel I have to say something about the passing of Steve Jobs. Of course, it's all already been said in blog posts, on Facebook, and on Twitter. There is no...
Read more
September 24, 2011
Welcome to Hawk iMedia's new Development Blog! The voice of this blog belongs to Mark Granoff, a professional software developer, founder, and sole proprietor of Hawk iMedia. I...
Read more
September 5, 2011
Is this thing on? More to come soon!
Read more