Mobile App Dev

Transmit: Don’t Panic on Pro iPad Apps

There’s been a lot of talk lately about Panic Ceasing Development on Transmit. It’s once again lead to a bunch of gloom and doom about making a living on the App Store and the future of pro apps on the iPad. Personally, I think this isn’t about the iPad business model - I think it’s about market fit. I bought Transmit for iOS. I don’t remember the last time I used it.

 1 min read

Fragmented Capital - It Just Got Harder to Be an iOS Indie Developer

With Apple’s announcements yesterday, it just got a lot more expensive to develop for Apple’s ecosystem. I’ve written before about why it’s important to test your code on as many different devices as you can before you ship. That’s been getting harder and harder over time, but it just got a whole lot worse. Up until now, Apple pretty much only released one new iPhone a year. Yes, they released two last year, but the 5C wasn’t all that different from the 5 for programming purposes, so many of the devs I know skipped it.

 2 min read

Just Because There Was a Bubble Doesn't Mean App Store Developers Are Doomed

Let’s just call it what it was, shall we? We had an App Store Bubble.

It’s deflating now, although (at least with games) there are still remnants.

Take a deep breath. It’s all going to be okay.

When I started working on mobile apps back in 2005 on Palm devices, we had horrible distribution by today’s standards. There were no integrated payments, no integrated stores. People had to buy your app, download it to their PC, and then copy it to their PDA via a serial cable. And yet, even back then, people made a living at it (although, I never managed to do so).

I don’t make my living from my own apps now, either. I’m not an iOS indie, I’m a consultant/freelancer. I’ve tried being an indie, and I’m not good at it (and I’m one of those weird people that actually likes consulting). But it is possible to make a living from iOS app revenue, because many people I know from my consulting practice have and do.

But let’s think for a minute about where we are before we call the App Store a disaster.

 3 min read

Finding relevant WWDC videos

As I’ve said before, I find the WWDC videos to be invaluable and I try watch all of them eventually. But there are a lot of them, and it can be hard to find what’s relevant. And a lot of them I go back and watch again when I start working with a different part of a project. So I’ve developed a trick, and I thought I’d share it with you all.

 2 min read

What I Learned During my Mac App Store Review

Two things happened on Thursday that made it obvious to me what I should write about this week. Mountain Lion was announced, and my first Mac App was approved for the Mac App Store.

Even though iDevBlogADay is about iOS programming, more and more of us are moving from iOS to the Mac. With the announcement that GameCenter will be coming to OS X, I’m guessing that more iOS developers might be thinking about coding for the Mac now than might have been last week.

So today I’m going to talk about my experience in getting my first App on the Mac App Store and specifically the differences in the approval process between the Mac App Store and the iOS App Store.

 8 min read

HTTP Testing to the edge on iOS: The School of Hard Mocks

I’m a big fan of Automated Testing, even on iOS projects, but even when I was doing mostly Ruby, Java and C# work, I was never a big user of mock objects. Now, I’ll admit that Mock objects can be useful under some circumstances, but I’ve seen them used too often in cases where a bunch of different developers each build their own little fiefdoms of their own code surrounded by Mock Objects where they interact with anything else.

 3 min read

360iDev Conference Notes, or How I Spent my September Vacation

This Thursday, I got back home after four days at 360iDev 2011 in Denver. I went last year, which was easy for me because it was in Austin where I live. I was concerned about the extra time and extra money it was going to take to go this year, since it was in Denver. Now that I’m back, I’m so glad I went. I have no hesitation about recommending it to other people, so that’s what I’m about to do.

 11 min read

Steal This Code and Protect Their Data: Simplifying KeyChain Access

##The Code The last couple of months, I’ve been working on my first Mac App (more on that in a later post). As part of this App, I’m calling a REST API that requires that I have the user’s password for that service to use in the API calls. Although that API is a minor part of the App, and although the service doesn’t have horrible consequences if someone gets the user’s password for it (in my opinion at least), there was no way I was going to store that password on disk unencrypted.

 4 min read

If you want facts, Indie, I've none to give you, at least not yet.

As I’ve written before, I’m very optimistic about the state of iPhone and iPad App development. I’ve published several apps on the side, and while I’ve worked on several Apps at my day job, Apps was only part of my day job, and I didn’t get a chance to focus on mobile the way I really wanted to. Well, today, that all changes. My last day at my day job was the last day of June, I took a long 4th of July weekend off, and now I’m moving into App development full time.

 2 min read

How can you edit, build and install iPhone and iPad Apps without being near a Mac?

I’m going to walk you through the process that XCAB uses (These steps are taken from this SlideShow). I have a refurb mini in my Living Room that I bought to be an Home Sharing server, and it’s more than up to the task. I’ve run it on my laptop, too, from time to time. As far as the iOS device, an iPad is obviously better to use for editing, because of the screen real estate, but the process is the same for both.

 2 min read

Video Demo: How to program an iPad by using an iPad, no jailbreak required

Here’s a video I put together to demonstrate how to use the code that I wrote that I blogged about last week to program an iPad with an iPad, without having to lug your laptop around with you (or jailbreak your device): Please excuse the fuzziness, I recorded it from my iPad 2 using a setup that converted it to a Standard Definition Analog TV signal along the way. Hopefully, it is close enough that you can get the idea of how it works.

 1 min read

Programming an iPad with an iPad: Putting the "Mobile" into Mobile App Development

This is a talk I gave on Thursday at the Austin CocoaCoder group (and here is the PDF if you don’t do Flash): Developing iOS apps on your iPad with XCAB View more presentations from Carl Brown The code is here on GitHub, and you’ll need this version of iOS-BetaBuilder and accounts with Boxcar and Dropbox.  It’s not perfect, yet. There’s no provision for managing XCode projects or xib files (you’ll still have to do all that on the Mac), no auto-complete or refactoring or debugging or instruments and the lag and long cycle time gets old.

 1 min read

Mobile Apps - Boom or Bust? Sherman, please set the Wayback Machine for 1994, and then 1853

In the last few days, I’ve seen reports that Mobile Apps are repeating the 1996 expansion, and reports that Mobile Apps don’t provide a viable business model. I think that there are elements of truth in both articles, but I don’t think either is an adequate depiction of what I’m seeing. Let me see if I can explain. Like others, I feel like I’ve been here before, but for me the year wasn’t 1996, but 1994.

 2 min read

Fixed Price iPhone App Proposals - One Contrary Consultant's View

I’ve seen a some traffic lately about billing and proposals for writing iPhone apps. Most of what I’ve seen revolves around hourly rates, but I think that’s not a helpful way to go, so I thought I’d chime in with my opinion. I’ve been a consultant off and on for the better part of my career, starting with EDS in 1993. I’ve worked for different consulting shops and independently and I’ve read extensively on the topic.

 4 min read

The Hard Stuff - iPhone App Design Edition

I was talking to my latest iPhone App customer today, and now that we’re both able to look at the prototype, we were talking about the features that we could add before the shipping version, or not. We talked about trade-offs, and I heard myself saying the same thing I’ve said many times before, so I thought I’d write it down. There are three really hard things about iPhone Apps (at least to me - I have a background Enterprise and Web Apps).

 2 min read

What a Difference 2 Years Makes - a Study in Contrasts With iPhone Ad-Hoc App Distribution

The first iPhone App that I worked on was submitted in October of 2008. The month before we submitted, there was a flurry of emails between me and my customer, a sample of which are reproduced below:  Begin forwarded message: From: Customer Date: September 16, 2008 12:58:19 PM CDT To: Carl Brown Subject: Re: iPhone project status  My Identifier is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Emails omitted for brevity. Begin forwarded message:

 3 min read

Alternating accessoryView and accessoryType in UITableViewCell

Quick post about a problem I had today. I’m writing an app for a client that has a checklist component. So a UITableViewCell is in an unchecked state, and then when the user hits it, it becomes checked. I like the look of the UITableViewCellAccessoryCheckmark, so I’m using it, but I needed something when the cell is unchecked, so I’m using a png that has a circle. I was having a problem that when the cell was unchecked and I tapped on it, nothing appeared to happen, although if I went to another screen and came back to that one the check box would show up.

 2 min read

A Tale of Two Table Views - my UISearchBar Race Condition that I finally found

OK, so I finally found my race condition, I’d talked about here and here. So, in my KidChart app, I have a UITableView that has a list of all behaviors that people can pick from:   and in the search box above, people can start typing to narrow down existing behaviors and then click on one so they don’t have to scroll as much. As soon as the UISearchBar gets focus, it does this:

 2 min read

UI Automation App Input

So, I’ve been doing more UI Automation test work, and I’ve discovered a couple of things. I’m kind of trying to write them up as I run into them, although I’m putting together a helper library that I’ll announce at some point, hopefully soon. So, what I’m trying to work on is a race condition in my KidChart app. The issue (I think) has to do with notifications during input into an UISearchBar.

 2 min read

Apple iOS iPhone UI Automation Testing: What does Accessibility have to do with it?

Trying to do some UI Automation testing going on one of my Apps today. Have a race condition, so I want to have a script to run it over and over again to have a better chance of catching the problem (more on that in a later post). So, I just wasted 2 hours trying to test this structure: And the problem was that I had this set in Interface Builder:

 1 min read

NSInMemoryStoreType is not a good substitute in unit tests

So I was writing some tests for my KidChart app, which uses core data, and I wasted a ton of time, so I thought I’d post to warn people. I wanted to avoid having to reset the state for each test, and I wanted the tests to run quickly, so I used NSInMemoryStoreType for my persistent store in my unit tests. This is a technique I’ve used before in other programming languages, and I was new to Core Data, so I was applying what I had done before to something I had insufficiently researched.

 3 min read