A few weeks ago while attending iOSDevCampDC I was lucky enough to see Ken Yarmosh speak on mockups. It was a great talk. He opened with why he prefers digital mockups to pencil, the various mockup tools on the market and then did a walkthrough of his company’s current workflow.
This talk along with the fact I’m in the middle of three projects in various mockup stages pushed me to spend the last few weeks playing around with one of Ken’s tools, Balsamiq. Historically I have been a pencil and paper mockup man but all new projects for me are now team-based and there is an argument to be made I should do something more sharable, defined and digital.
Balsamiq is a low fidelity mockup tool that lets you build UIs with a kind of pencil/sketch feeling to them. Even though I’m moving away from a real world pencil I still find a huge benefit to mocking things up in this style. It helps make sure the people you show the mockups to understand the current state of the app. It’s very easy for non-techies to confuse a linked up Photoshop mockup with a working app and I feel this helps define that divide.
A mockup of an iPhone app I’m helping build for a friend. It helps make sure your long term parked car won’t get towed from a random street closure.
One of the nice things about Balsamiq is its growing collection of widgets which you can customize to fit your needs in your mockup. I was particularly impressed with the iPhone table view which is very flexible.
What’s not to like? Well for one Balsamiq is not a native Mac OS X application. It’s an Air app, so things feel strange on occasion. I could mope about the non-native scrollers and other bad behaviors (like creating excessive New Documents when opening documents from the Finder) but the biggest impact for me is no native spellchecking (which I’m sure will come to bite me in the ass sometime soon, if not already).
I did spend a little time with OmniGraffle during this recent evaluation. While I love OmniGraffle for other things like model diagrams, I didn’t find it particularly great for mockups. It does have a similar growing stencil library but I feel like the scaling behavior isn’t right.
In Balsamiq there is no canvas size. It kind of grows as you place object on it. This works great for zooming. You can drag in an iPhone frame and then if you like Zoom to Fit and it will fill your screen. OmniGraffle however has a strict canvas size so if you say drag in a Mac OS X window from a stencil you can’t zoom in. If you try to scale the window widget up not all the inner text widgets scale with it (for example, the window title bar would remain really small). Then when you dragged in a secondary widget like a text field it would be too small and you’d have to scale it as well.
I suppose I could have defined the windows size and then adjusted the canvas to match that size and then zoomed the canvas to fit but at that point I just went back to Balsamiq which I felt was just more focused for the job.
For Ken, Balsamiq was a starting point. He would use it to define the UI, then use OmniGraffle to document the interactions and gestures, creating a visual contract of sorts. For full on interactive demos he’d import his Balsamiq stuff into InVision. I’m not sure I’ll be documenting my own projects that deep but for people doing contract work I would recommend trying it out.
One other app I used this past week for mockups was Keynote. I didn’t use the full on Keynote KungFu templates but instead ended up taking some cut up Balsamiq PNG exports and animating how I envisioned a Core Animation UI working. I played the presentation, took a screencast, talked over it explaining my idea, then sent it to the team for feedback. It worked great.
Keynote’s animation tools are very easy to use and while they do have their limits I’ve found them to be a great way to quickly visualize things. As an additional example, at a recent GameJam I used Keynote to animate a game mechanic I though we could use.
Mockups are a great way to fully visualize your ideas and no matter what the tool, I highly encourage everyone out there to go through the motions and get those ideas onto a canvas. The biggest trick is finding the right mix of speed and definition in your toolset. You don’t want to invest more time into the mockups than the value they create. Good luck!
Posted on: August 25, 2011 – 1:21 PM | Comments (3)
I’ve been using the MacBook Air as my main development machine since they introduced the redesign last year. It’s a great machine and I love traveling to and from IndyHall with such a light laptop. With the latest revamp these machines are better than ever sporting some real processor power. Sadly however they kept the max 4GB RAM limitation. If they had improved the processor and the RAM I might have been persuaded to upgrade but alas I’ll stick with my current machine for now.
All this said, I’ve been pontificating as of late about the MacBook Pro line. What could Apple do to make these stand out over the already impressive Air? What could draw people to spend an extra $1000 for something more “Pro”?
Would love to see the machines start out with 4GB and be configurable up to 16GB. In a perfect world, this would be a free upgrade for Xcode 4 users.
Drop the optical drive
Apple has no interest in these anymore and taking it out will help make the overall case thinner. In fact, I don’t see optical drives lasting through any of the upcoming hardware cycles. I could even see them dropping it from the Mac Pro line, introducing a whole new case.
Hybrid hard disk system
Maybe as one internal disk or a driver controlling two individual components. A laptop that has both an SSD and a disk-based hard drive that work together, bringing the speed of an SSD system and the storage capacity of a disk-based system. No need to manually have different partitions and manually figuring out what needs to be where — the system will just make it fast. It will be glorious.
Apple has been flirting with high resolution on the desktop forever (I hear there were even internal builds of Classic running in high resolution mode back in the day.). With the success of the iPhone 4 high resolution screen and the continued improvements made in Lion, it’s time to make this a reality. Bonus points if they can introduce a new HiDPI 27-inch display to coincide with the update.
One setback for the Air is the complete lack of a dedicated graphics card. For normal usage the integrated stuff works fine. I even run a 27-inch display off my Air without too many hiccups. But a Pro machine needs Pro graphics. I’d love to see Apple’s new MacBook Pros get some modern portable graphics cards so I can suck at Starcraft on the move at 60fps.
Size and weight
The 11-inch Air is 2.38 pounds and it’s 13-inch brother is 2.96 pounds. The current 15-inch is 5.6 pounds, the 17-inch 6.6 pounds.
Even with all this new stuff I think we can expect a new 15-inch to weigh about 4.5 pounds and maybe something like 5.5 pounds for the 17-inch.
Hopefully I’m not too far off, as this would be an epic machine, worthy of upgrading my current Air to. Sadly this isn’t based off any internal knowledge but just my own personal wishlist. Anything I’m forgetting? If so, let me know in the comments. Thanks.
Posted on: August 7, 2011 – 5:25 PM | Comments (3)
Sadly this means the end to Push Pop’s publishing platform.
There are no plans to continue publishing new titles or building out our publishing platform that was in private beta. We are incredibly grateful to everyone who has supported and expressed interest in Push Pop Press.
I really hope there is something interesting at Facebook that we can’t see that is attracting these designers. If all they will be doing is making a better Facebook web/app UI I will be very disappointed.
Posted on: August 2, 2011 – 2:27 PM | Comments (0)
This American Life (one of my favorite radio shows) covers the broken US patent system this week in When Patents Attack!.
Interesting to hear a non-geek show’s take on the patent issue we programmers are only too familiar with. A must listen to show. Share with your friends, share with your family. The public at large needs to learn how broken this system is.
UPDATE: Some new related links:
Posted on: July 27, 2011 – 10:01 PM | Comments (0)
A small but helpful bug fix for ProfitTrain is now available.
Version 2.0.8 Changes:
- ProfitTrain now has built in email support for Sparrow. Thanks to Al Nyveldt!
- ProfitTrain now has built in email support for Microsoft Outlook. Thanks to Dave Lane.
- The Play Screencast action is much more forgiving if you don’t have an older versions of the QuickTime player installed.
- The Open Blueprint button on the Edit Invoice Sheet now stays in position during resize.
Edit > Select Allwill now work properly for the to do item table.
- When dismissing the Edit Invoice sheet we now force active textfields to finish their current editing.
- Now uses less memory for large Billable imports.
I was hopeful to add support for Postbox as well (my current email client of choice) but I sadly didn’t see any attachment/AppleScript support. A request has been filled.
UPDATE: Some reports of 10.5 users unable to launch the new update. If you are on 10.5 you might want to hold off for a bit. Sorry for the trouble. Will look into asap.
UPDATE 2: I dusted off my 12-inch PowerPC laptop and believe I have these Leopard issues resolved. If you are running 10.5 please check out 2.0.9b1.
2.0.9b1 Bug Fixes
- While moving to the 10.6 SDK ProfitTrain unknowingly dropped support for PowerPC. It’s back now.
- Xcode on 10.6 was not properly linking the libcrypto library which was causing the app not to start for all Leopard users. This should be fixed now. More info can be found on Stack Overflow.
Posted on: July 26, 2011 – 12:21 PM | Comments (0)
TwizShow has been getting a little love from the local Philly press and I couldn’t be happier.
Thanks again for the support.
Posted on: July 26, 2011 – 11:41 AM | Comments (0)
I’m prepping a updated version of my iOS Monetization talk for iOSDevCamp DC and while I’m anxious to share some new numbers behind Dex I also wanted to take some time now, in advance of the talk to see what other people have to say about their efforts making money on iOS, particularly iAd people since I was kicked out of the iAd pool a few months ago.
If you have any insights or numbers to share please let me know. I know sharing revenue data is not something people do lightly, but if you like I can promise anonymity while you help draw some truth to the iOS marketplace. Blog links welcome as well, maybe even more so.
I hope to republish the talk soon after the presentation. Thanks for your help!
Posted on: July 23, 2011 – 7:59 PM | Comments (0)
So iPhone users have this knack for never syncing their phones to iTunes and as a result lots of crash reports never get sent to iTunes Connect for developers.
To work around this problem I started using Hoptoad (Now being renamed Airbreak) which is a neat little tool that will capture the crash as it’s happening and interrogate the runtime to create a symbolized crash log. On app relaunch it will ask the user if they’d like to submit the log to the developer (through the Hoptoad web service). Overall, a pretty cool idea.
I used it in Dex and things went great. I ended up with a nice collection of stacked and collated crashes and used them to fix a bunch of bugs. As I was working on TwizShow I installed Hoptoad and had my first problem.
TwizShow is a universal app and during development I had a tendency to use my iPhone 4 but I when I went to give demos I used the iPad, version 1 at the time, (so more people could see the game in action). The iPad version crashed a lot and even worse did so in a manner that didn’t cause a Hoptoad log or any other logs to be generated. In time I’ve come to believe was because of excessive memory use due to the iPad’s limited RAM (256 MB) and the fact I was using lots of high res art) but have not much to back this up with.
Now in deployment TwizShow is generating some crash logs but they are no longer symbolized. I don’t know why.
Dex, which was once working great, is no longer getting crash logs. The last one was June 3rd. The last update to Dex was April 19th so I assume the change and cause of the bug is on their end.
All the old crash logs of Dex are gone. This is part of a new Hoptoad policy where they remove old crash logs to save space. They say:
In order to reduce space consumed by old or redundant data Hoptoad may remove backtraces and extra request information from individual error occurances. If data is removed, the Rails environment name, error class, error message, file, controller, action, and date are preserved.
We’ll that nice and dandy for the Rails apps, but for iOS crashes this is all that is left after they removed the backtraces for my crash:
Not bloody useful. Why they need to save storage space which is crazy cheap and they are a pay for service (I pay $15 a month) I’ll never know. If they are insistant at least leave 10 or so backtraces per crash so I can have some idea what’s going on.
All in all I think I’m on my way to drop Hoptoad and move on to another service, maybe HockeyApp. If you have any feedback or advice based on your own apps, I’d love to hear it.
Posted on: July 21, 2011 – 2:58 PM | Comments (1)
We had a Lunch and Learn today at IndyHall and resident designer Johnny Bilotta did some demos and shared some resources covering Illustrator and Photoshop. Here are some of bookmarks I took note of:
- 960 Grid System - Layout system.
- 365psd - Sample PSDs to learn from.
- Illustrator and Photoshop Tutorials
- iOS widgets - Good for rich templates.
One recent bookmark of mine was this tutorial on setting up Photoshop for pixel art.
People interested in prototyping Mac or iOS apps using Photoshop should also check out Sasser: Coda Confidential a session from the belated but always loved C4 conference.
Posted on: July 20, 2011 – 1:39 PM | Comments (0)
Today from my laptop monitor I’m watching Unit Testing with Xcode from iDeveloperTV with Graham Lee and Scotty. On my main monitor I’m working through my ProfitTrain tests, doing some updating and additions.
In ProfitTrain I have unit tests for lots of the models and business math. Some of this math throws exceptions when unexpected values are present. I have a unit test that tests that an exception is thrown when I try to setup some trash value with
The problem I now have is that I also like to leave the project running with breakpoints running and that All Exceptions breakpoint set. When I run my tests it hits the breakpoint and pauses the tests. If I turn off breakpoints all test pass fine.
I’m not sure what the right way to handle this is. It kind of bugs me that I have to be mindful of my IDE state before running unit tests. This post is a request for some feedback.
One idea is to turn off breakpoints before running the test, either as general rule for the project or something that is more automated in the scheme (using pre and post shell scripts?). I’m not sure I like this idea as I’m guessing there will be points where I do want to step through test code using the debugger.
A second option is to augment my error code in my app. Perhaps have it look for a macro or flag of some kind and avoid raising the exception? Not sure I like this either.
Feedback very welcome.
Posted on: July 18, 2011 – 1:54 PM | Comments (7)