SOLVED: Where are all my old sims, Xcode 11?
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...
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...
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...
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...
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....
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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:...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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...
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....
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...
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...
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...
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...
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...
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...
Is this thing on? More to come soon!