I don’t usually post about movies, mainly because most movies these days really suck and aren’t worth the time to even say I saw one.  I did take in the new JOBS film with Ashton Kutcher.  I really enjoy the movie.  It brought back a lot of memories of how the industry was back in the day and how it has evolved since then.  It was truly an exciting time and I hate to admit, a far more exciting and exhilarating time than today.  

I’ve heard a lot of criticism leading up to the movie, both about the content and Kutcher’s portrayal of Steve so going into the movie my expectations were not very high.  I have followed the creation of Apple, and many tech companies for that matter, since I got my first computer in the early 80’ I’m very familiar with the storyline. 

I was pleasantly surprised by the movie.  It was just over 2 hours and I found myself entranced by the film.  I thought Kutcher did a great job of becoming Steve Jobs, from his facial mannerisms, the looks, personality (maybe a bit nicer) to his walk.

Watching the feedback this weekend I have heard much about how the story wasn’t told accurately and various aspect exaggerated.  The fact that it was meant to honor Steve and Apple as well as entertain, should be obvious it is not a documentary.

Apple fans should enjoy the movie and avoid the criticism.  My daughter and I thoroughly enjoy the story and would/will see it again.  It was a trip back in time when technology seem magical and revolutionary.

Vesper Quickly Becoming a Valuable Case Study

When I first heard about Vesper, a note-taking application for $4.99 that only runs on the iPhone, I was a bit skeptical.  Vesper comes from Q Branch, LLC and consists of some fairly high-profile people including: John Gruber, Brent Simmons and Dave Wiskus.  My gut told me these guys are leveraging their Internet fame to sell a lot of Vesper.  I believe my gut was very wrong.

The trio appeared on an episode of the Debug podcast and John discussed this very aspect of marketing Vesper.  He pointed out their fame would only take them so far and fame alone will not make this a successful product.  In order to build a successful business from Vesper, they would need much more. This was the turning point in my thinking and John was exactly right, they need to create a great product people will want and only then will they gain the momentum they want.

Since the release of Vesper, I’ve seen consistent discussion about the design and some of the decisions which went into its features.  We can all speculate on it, but fortunately the Q Branch team has been taking it further with a level of transparency we don’t usually see in a high-profile iOS application.

Vesper is an application we can all learn from, starting with design to the thought process of feature implementation.  The team is doing a great job of helping us see their process from detailed design discussions to open sourcing code they use.  I hope they continue the level of transparency with the dialogs they have, I know I personally address they questions myself and often times don’t have an echo chamber to help me out.  I often look at a good application and wonder how or why something was done.

Here are a few of the nuggets of information we don’t usually see, but are so valuable:

How to Make a Vesper: Design – a great view into the history of Vesper design discussing all the different aspects of what goes into design.  Each aspect of the application design is discussed, what made it in and what did not. 

Vesper is opinionated software. Every interaction, pixel, and line of code was carefully considered, and no work was too precious to throw away. I’d like to share some history of how Vesper came to look and feel the way it does. 

You can learn a ton about design, especially if you are not a designer and may not be aware of all the things needing consideration when building a beautiful application.

Open Source: DB5 – at times it becomes difficult to effectively work with non-developers on a project and collaborate in a positive way.  DB5 is a simple idea solving a common problem in an elegant way.  The Vesper team releases their tool to everyone who may face a similar problem.  It’s open source so anyone can make it even better.

Brent Simmons Gists – a nice collection of code from the Vesper developer, someone who is a very experienced Objective-C developer. 

Technical Notes on Vesper’s Full-Screen Animations – a detailed look on animations, comparing the standard way most developers do it to how they did it with the logic behind the decision making.  This is how a regular application can be outstanding, paying attention to these kinds of details reveals the difference between an artist and a laborer.

How should you handle beta testers for you application?  Lots of ways to do it but this is how Vesper does it as explained by Brent Simmons.  Being very open about the tools that worked for a particular style and project is always very nice to know.

No developer is proud of a bug in their creation and most of us go to great lengths to hide the fact that they exist.  It’s only human nature to not want others to know we have failed in some way.  Not surprising, the Vesper team is open about this aspect too

Here’s a bug in Vesper. You can reproduce this easily.

  1. Start dragging a note from right-to-left to archive it.
  2. Before you let go, take another finger and tap the hamburgrabber button in the top left to open the sidebar.

Note that the sidebar opens and the note is still in a partially-dragged state. That shouldn’t be, but I didn’t think of it when I was writing the code.

You can figure out why the bug exists. When I’m writing a feature, I don’t necessarily think of all the interactions with all the other features. I try to, but it’s easy to get overly-focused.

I bought Vesper *because* of the openness of the team and I want to witness the evolution of this application.  It’s refreshing and rare to be told a story you can witness about the crafting of a product.  The Vesper story is just that, the story of crafting a great application.  We are often pushed or expected to be producers, our parents and grandparents were the crafters of our time, proud of the things they created.  It is time we show that we are crafters too.

The openness and transparent style of the Q Branch team seems like a winning approach.  It will at the very least continue and grow the discussion of their application.  If people are talking, they are probably buying…like I did. 

Let’s hope for more thoughts and reasoning from these guys in the future.

Feed Wrangler is My Go To RSS Reader Platform

Colorbanner 2x

July 1 is fast approaching and Google Reader is shutting down.  Many people in the world use this service to read and sync their RSS feeds.  When I heard it was shutting down I was a bit annoyed but not surprised, but today I am anxious for it to shut down so people will stop talking about it.  Google Reader, it’s been nice but not real nice.  Goodbye!

I have found a paid service I am happy to pay for and support, Feed Wrangler by David Smith.  Feed Wrangler costs $19 per year and it developed by someone I believe will do his best to be around tomorrow.   I have officially dumped Google Reader about a month ago and been using Feed Wrangler ever since, and I could not be more happy.

The Apps

Out of the gate Feed Wrangler has a web site that can be used to read posts, mark them read/unread and add to Instapaper.  It works very similar to Google Reader but with *much* cleaner interface.  I never used Google Reader this way, I always used some third-party apps in my Mac, iPhone or iPad.

I have used a handful of client applications for Google Reader over the years and settled on a couple that worked really well on my Mac and iPad.  When I heard about Google Reader shutting down my first concern was what I would use for applications.

Feed Wrangler has free applications for the iPhone and the iPad that work really well.  I found a few little UI bugs or inconsistencies that I needed to get used to, but nothing I was unable to live with.

Thanks to the great API, third-party apps are starting to pop-up with Feed Wrangler support.  Mr. Reeder for the iPad, and most important to me is ReadKit for the Mac.  Both of these applications are fantastic and I am using them now.

The Syncing

The main part of what I consider the syncing platform is the backend web site and API which helps keeps the applications knowing what’s read and what has yet to be read.  This is transparent and should be, I don’t need to know the details nor do I care.  I just want to be able to go from device to device and not have to miss an article or mark something read more than once.

So far, it just works.


One beautiful part of this platform is the open API for developers so they can create any number of client applications.  Did I mention this is a supported and nicely documented API?  Unlike what Google Reader had offered, this will be a pleasure to write application for.

As someone who consumes API’s for a living, the style of the documentation and examples is a lesson other developers should follow.


You have more choice popping up now that Google Reader is shutting down but David Smith has done some really nice work so far and I can only suspect he will new features all the time.

I am very happy and think Feed Wrangler is worth checking out.

Getting Started Resources for Mac and iOS Developers

Are you just getting started with Mac or iOS development?  Maybe just trying to improve what you know?  Here is a great resource from Dave Mark.  Everything is covered including blogs, conferences, forums and official Apple documentation.

I went looking for a reasonably recently updated list of dev resources to link to from the article. Couldn’t find one I was happy with, then remembered that we included a pretty solid list at the end of the book Beginning iOS 6 Development. Since that list needed to be updated for the iOS 7 rev of the book, I thought, why not pop the list into a blog post. And here we are.

At its core, programming is about problem solving and figuring things out. It’s fun, and it’s rewarding. But, at times, you will run up against a puzzle that just seems insurmountable—a problem that appears to have no solution. In those situations, it’s good to have friends in high places. This post outlines some resources you can turn to when you’re in a bind.

So add Resources for Mac and iOS Developers… to you reference list and be sure to check out the post comments for some other great resources.

Dave also has a great list of developer tools as well, Dave’s List: Apple Dev Tools…


Vesper – The First App for iOS 7

01 Hero

I’ve been spending a fair amount of time with Xcode 5 and iOS 7 lately.  I can’t mention specifics, but I can say it’s a direction I am very happy to see.  There are a lot of good things happening in there.

Charles Perry points out how Vesper, the note taking application for your iPhone, is a  window into what users can expect from design in iOS 7:

As it turns out they were right on the mark. This style of clean, edge-to-edge design that emphasizes content and deemphasizes the interface was exactly where iOS 7 was headed. As Jony Ive explained in the WWDC keynote address, “In many ways, we’ve tried to create an interface that is unobtrusive and deferential. One where the design recedes, and in doing so actually elevates your content.” And that’s exactly the effect we see in Vesper. Without toolbars, without even separator lines between table view cells, Vesper draws users’ eyes to the content so they can quickly access their information and be on their way. This deference to content is going to be a hallmark of iOS 7 design and will be something for all developers to keep in mind as they plan for the future.

Charles has some really good observations that point out the parallel between Vesper and what users can expect in iOS 7 when it arrives in the fall.  Considering who is on the Vesper team, I wondered how much they knew about iOS 7 redesign while putting Vesper together.  I’m not the only one:

With so much of iOS 7′s new design anticipated by Vesper, it’s natural to wonder how much of this is coincidence. Did Q Branch get tipped off? Or is this just a matter of great minds thinking alike? Who knows. With this group of characters, it could be either or both. Ultimately, though, it doesn’t really matter. What matters is that now we all can see the new direction that iOS is heading. We know that in iOS 7, content is king. We know that in iOS 7, color and animation are more important affordances than ever before. And thanks to Vesper, we now know that it’s possible to combine these traits of iOS 7 to create a unique app that retains an individual identity while at the same time fitting into the rest of the iOS 7 ecosystem. If you’re one of the many now thinking about your own app and its transition to iOS 7, I suggest that you consider what lessons you can take from Vesper. It’s a great app, but I think we’ll soon see that it’s a great iOS 7 app as well.

I don’t use my iPhone enough to make a commitment to Vesper but an iPad version would be a quick purchase.  Of course the $4.99 price tag might be a cheap investment to learn a bit about design.

iOS 7 and Seizing an Opportunity


The past few days have been filled with all things Apple and I have been drinking from the firehose all things iOS 7.  Apple announced an anticipated upgrade to iOS on Monday but not just any upgrade.  The new operating system changes the way users will interact with their iOS devices and will change the way developers approach developing applications for these devices.

I started a post yesterday with my thoughts on how this new update would greatly affect developers and designers as they created new applications and how existing applications would be facing a difficult path.  I felt good about my thoughts until Marco Arment posted an eerily similar post as mine.   

iOS 7 is very different and I’m very skeptical the upgrade path for applications will be smooth.  As Marco says:

iOS 7 is different. It isn’t just a new skin: it introduces entirely new navigational and structural standards far beyond the extent of any previous UI changes. Existing apps can support iOS 7 fairly easily without looking broken, but they’ll look and feel ancient. 

Developers who created complex applications will be faced with a fork in the road; attempt a transition or start over:

I don’t think most developers of mature, non-trivial apps are going to have an easy time migrating them well to iOS 7. Even if they overcome the technical barriers, the resulting apps just won’t look and feel right. They won’t fool anyone.

A new paradigm means a chance to start from zero and build great things.

Apple has set fire to iOS. Everything’s in flux. Those with the least to lose have the most to gain, because this fall, hundreds of millions of people will start demanding apps for a platform with thousands of old, stale players and not many new, nimble alternatives. If you want to enter a category that’s crowded on iOS 6, and you’re one of the few that exclusively targets iOS 7, your app can look better, work better, and be faster and cheaper to develop than most competing apps.

Developers will be tasked with porting their applications to iOS 7 but it will be a difficult task.  Design is completely different so not only will developers have to ramp up but so will designers. 

iOS 7 is a great opportunity to create new applications, taking advantage of the new way of doing things. Maybe this is the opportunity and *not* upgrade applications but start all over and build new experiences in iOS 7.  Can we convince clients this is different enough that apps are worthy of rethinking the user experience, leveraging what’s new and building great experiences?  Some will fight the idea.   Some will refuse.  Those looking not where the puck is but where it’s going to be, will embrace a rebuild.

I for one, am devouring all the material I can get my hands on for iOS7 include the new Human Interface Guidelines and the Transition Guide.  I also have Xcode 5 running and installed iOS 7 beta on an old device.   If you’re interested in a really detailed article on iO7 user interface differences, go read Matt Gemmell’s article.

I will be ready to help clients move forward from older versions of iOS as well as ready to guide them on new applications.  As far as my applications, I will see how the transition goes.  This could be an opportune time to redesign, retool and rebuild for the paradigm shift to iOS 7.  

The design changes to iOS 7 are brilliant, very exciting times ahead.

Use TinyURL from Ruby

I recently found myself needing to use TinyURL on a client project.  I did a bit of scouring the web for some Ruby code to solve the problem but with little success.  Much to my surprise they don’t have an available API, but they do have a way to access over HTTP.

This is a simple Ruby class to use TinyURL.  Note: this depends on HTTParty, so add to your project.

class Tinyurl 
include HTTParty
base_uri ''

def shorten(url)

You can find the Gist on Github. Hopefully you find this code useful. Enjoy!

Sometimes Great Service and Transparency Have to Be Enough

Yesterday DNSimple, my DNS provider and domain registrar of choice, suffered from a Denial of Service (DoS) attack and as a result their service went down.  This affected my sites and the sites of many people I know.

DNSimple is a bit of a different provider of services for people on the Internet since they are an infrastructure provider.  This means they provide a fundamental service which I and others rely to deliver services to our customers.  This makes a company like DNSimple that much more responsible for being up moire than most. Their outage yesterday, and actually going back a some period of time before yesterday,

They could have handled the outage in several ways.  The way they chose to handle this outage is an example of how any provider of services on the Internet should handle sometimes uncontrolled events.  As a company, DNSimple has provided great service in the limited amount of support I needed from them.  You can distinguish a great company by how they react when faced with a crisis.

Great Service

Respond to your customers in a calm fashion, letting them know how important your issue is to them.  If support issues come in via email or Twitter, respond to them, even to let them know you received their email or tweet and will get back as soon as you have something to tell them.  It only takes a second and it keeps your customer calm.  How many times have you sent a support request and heard crickets for a day or two?  Me too, it’s annoying.

Treat your customers just the way you want to be treated.


Probably the #1 failure of a company under pressure is their lack of transparency.  What is transparency?  Simply being open about what’s going on, the issues and how you are dealing with them.  Most customers are reasonable and probably have been in a crisis themselves and being open with them, communicating what you’re finding takes very little time and is a huge plus.

Be proactive, if you recognize a problem let your customers know before they find it themselves.  Be genuine, let people know you understand how important this to them.

DNSimple did a great job in their Twitter stream, responding to customers as well as general updates on what was going on and chronicling the ups and downs.

June 1st at 12:05am being proactive:

— DNSimple (@dnsimple) June 1, 2013From first thing in the morning:

— DNSimple (@dnsimple) June 3, 2013  

Setting expectations:

— DNSimple (@dnsimple) June 3, 2013  

Keeping your word:

— DNSimple (@dnsimple) June 3, 2013  

Thanking those who are most important:

— DNSimple (@dnsimple) June 3, 2013  

We are in the processing of fixing this issue for good:

— DNSimple (@dnsimple) June 3, 2013  

I feel good using these folks as a vendor.  The openness and the continued updates makes me feel like I can count on them to be there and doing all they can to fix this problem and any other problem that might arise in the future.

Offering details to an audience that would otherwise be in the dark cost them very little in the way of time but wins them big in the eyes of the people who rely on this service.

Running a business where you have customers who rely on the product or service you provide is a very rewarding experience, but it doesn’t always go smoothly.  Customers will remember how you reacted when things got tough.  What image do you want them to have of you?

UPDATE (6/4/2013 @ 5:00pm EST): Anthony Eden of DNSimple posted a great overview of the problem and the actions taken to resolve and prevent future attacks.  A really nice way for anyone not following the drama as it occurred.

Google Obviously Loves Developers, When Will Apple?

Google io logo

When is Apple going to begin listening to developers as well as Google does?

The tools Apple gives developers as part of iTunes Connect (the portal we use to publish and maintain our applications), are better than they used to be but are subpar compared to just about anyone else.

I have a few applications in the Apple iOS ecosystem and I have almost no knowledge of who my customers are and I’m not able to respond to reviews.

Google, on the other hand, has been taking a very different approach, listening to developers and acting on the feedback.  Recently Google started allowing developers to respond to reviews.  Its super-easy for a user to dislike one feature in your app and give a scathing review.  If you are an Apple developer, you have to just sit back and take it.  

At Google I/O last week they also announced several other enhancements to their developer program to help:

  • Beta testing and staged rollouts

We have introduced support for beta testing and staged rollouts so that you can get feedback on your new app or app update early in its development and make sure your users are happy with the results. You can test two different versions on two different groups at the same time, such as testing a newer version with your employees first, and a more mature version with a group of external testers.

The beta testing is private on Google Play, and you can specify who gets these versions by adding Google Groups and Google+ Communities. Users give you feedback privately rather than through public reviews. When you’re satisfied that your new version is ready, you can now do a staged rollout to a percentage of your userbase. To give you more flexibility in light of beta testing and help get your whole team involved in the Developer Console, we will soon launch additional access controls.

  • Localization Help

We’re collaborating with Google’s internationalization team to make translating your app into new languages easier than ever. You can purchase professional translations of your apps from independent providers through the Google Play Developer Console. You can upload the strings you want translated, select the languages you want to translate into, and select your translation vendor based on time and price. If you’re interested in translating your apps with this feature, sign up to be a part of the preview in the Developer Console today on the APK page.

The new optimization tips for localization will help you identify new potential opportunities for global expansion based on popular languages for your app’s users and category. To fully localize your app into a language, you need to translate the strings in an APK, translate your Google Play store listing, and upload localized graphics. The optimization tips will also let you know if you’re missing any of these pieces.

Google also announced Android Studio which offers some really innovative ways to preview what an application will look like on various devices and in various languages. Developers also get to see previews of colors and localized strings in the IDE. It’s developed in conjunction with JetBrains, who produce so many great tools. It has to be better than Eclipse.

If you missed the Google I/O Keynote, here it is, but keep in mind, it’s 3-1/2 hours long:

Apple knows they have developers in a position that we need them, way more than they need us.  It’s a really popular platform and people can make reasonable money on it. It’s pretty obvious when WWDC sells out in 90 seconds!

It would be really nice if Apple showed they cared about developers as much as Google does. Google needs developers and they show it.  There was a good post on the Treehouse blog, Why Google Loves Developers, that talks about this very same thing.  They point out it’s not just about Android but Chrome as well.

So, will Apple realize what Google did last week and follow suite with improvements to their developer support? Only time will tell. As an iOS developer, the Android ecosystem is looking like an attractive place to bring some applications. I have been interested more and more lately and the recent announcements just makes the Android platform that much more attractive.

As iOS and Mac developers, we are customers of Apple.  Good vendors listens to their customers, Good did.  How long do you think you would get with your business if you ignored your customers?  It depends I guess if you dominate your market or not.  If you do then you have some time before it comes back to bite you, if you don’t then you will never succeed.  Customers are #1…always.

It will be very interesting to see what Apple has in store for developers next month at WWDC. I can’t see a technical reason Apple developers can’t have the same support from Apple as Google gives theirs.  If Apple values their developers they should offer the same functionality on their platform, we have been asking for a long time.

Talking about Building iOS Application on The Tablet Show Episode 85

I was a guest recently on The Tablet Show with Richard Campbell and Carl Franklin, to talk about iOS development, client projects, API’s with Ruby on Rails and creating applications with interactive back ends.

I think it turned out pretty well but I really can’t stand listening to my own voice, so please give it a listen and decide for your self.|remaining=yes|titles=Rob

Thanks to Richard and Carl for having me on the show.