MobileDay is live in the App Store!
After a couple months of hard work I’m proud to see MobileDay in the App Store! If you join or create conference calls from your iPhone check it out and share it with others. It’s a great tool for easy one-touch calling to any conference service from any meeting in your calendar and we have much more to come! You can also read more about the company and app at mobileday.com.
Code coverage for iOS testing with OCUnit
I recently posted steps for setting up iOS unit testing with Jenkins, but working on a new project realized I wanted to take this a step further and start seeing code coverage metrics. The configuration has evolved quite a bit but fortunately there’s a great Code Coverage with Xcode 4.2 guide from Infinite Loop that covers this and seems to work with both Xcode 4.3 and 4.4 in my testing. Be sure to check the included links, related posts, and followup in comments for troubleshooting various errors that creep up across different Xcode versions. Once tests have been run against instrumented code you can view the coverage output graphically in CoverStory on a Mac. Finally, if you want to convert this output to Cobertura-style for display in Jenkins using gcovr you’ll want to configure your Jenkins build as described in iOS Code Coverage, Cobertura and Jenkins. Good stuff!
Android UX (still) fails
I don’t usually get deep into the fray on iOS vs. Android. Yes, I’m a completely devout Apple fan myself: I use a Mac at home and work, own pretty much every other Apple device on top of that, and have such a strong iPhone preference that I happily eBayed not one but both Androids I got for free at Google IO a few years back because, well, after a week of serious benefit-of-the-doubt were still worthless pieces of junk compared to my aging iPhone 3G that could actually join WiFi networks and check my corporate email. And then a month later I bought an iPhone 4.
But again, I usually don’t go out of my way to rant about this. Tonight is an exception. I’m working at a startup again that’s heavily focused on mobile applications and as such am getting quite a bit more plugged in to the Android experience, even though I’m still doing the most hands-on work with our iOS offerings. To that end it was high time I ditch the simulator and start running our Android app on a Real Device for some side-by-side comparison, and today picked up a brand new Droid Razr for the task. Even though I’m basically planning to use the device for nothing beyond Phone, Email, Calendar, and our in-development application, I thought I might indulge in one tiny personalization and set the wallpaper to a recent photo of my kid. I’m a proud dad after all, and spend a hell of a lot of time staring at these screens. That’s where the fun began.
As an Apple user I’m of course all synced up with Photo Stream and iCloud but that doesn’t help me much on my new Android. No worries though, I also use Flickr to share with family and have lots of great original-size photos in albums there. This will be a piece cake! Paging quickly through the installed apps and device setup wizard I find, of course, Picasa and Photobucket but no Flickr. Oh well, guess I lost to the OEM dice on this one, so over to the Market to grab the Flickr app. The app crashes on launch. Not Android’s fault I guess, the Flickr guys probably just have better things to do than make their Android app stable and obviously the Market will let you publish anything. On second launch I’m able to access the login screen, and being on an Android figure I’ll use the option for Google auth since that’ll probably be seamless. Alas, it kicks me over to the same generic Google web SSO screen I’d see in a browser – even though I have entered my Google ID in at least five places on this phone – and it’s an Android FFS.
Just as I’m about to start typing my email address something else catches me eye. The keyboard has a little microphone key at the bottom! I know this key, it’s there on my brand new iPad and hails all manner of bleeding-edge voice recognition at my disposal. So I click it and humbly but articulately recite my beloved email address. The phone thinks briefly and seconds later comes back with a perfect match. That is, a perfect match that is completely useless in this field and would be so much work to edit that I end up just clearing the field and typing it anyway: it had entered, literally, “dustin dot mallory at gmail.com”. What could be a more glaring UX failure than engineers who have so perfected this fast, accurate recognition yet it has absolutely no clue I’m in an email field? Especially considering that the field asserts this specifically – which is why I’m seeing an emailish keyboard and not the generic text keyboard – is wiring up the same basic context to the dictation button too much to ask?
I suspected not, so of course I immediately jumped over the the Flickr login screen via Google auth on my iPad. And again, I used the dictation button and recited “dustin dot mallory at gmail dot com”. Guess what it entered? You’re damn right it did. That’s how a device is supposed to work!
But the fun doesn’t end there. This filled me with such glee I thought I’d take some screenshots so I could show my wife, rage-blog about it, and poke fun at everyone using an Android at the office tomorrow. So I quickly pressed home and sleep to grab an iPad screenshot knowing it would immediately be synced via Photo Stream to my Mac for easy access. I would probably have to email the Android version, but whatever, I can handle email. I wonder how I take an Android screenshot? Seems like there were issues with it when I tried it on those phones from Google a couple years back but I’m sure it’s better now after, what, three major versions of the OS. So for kicks I try a few combinations of the power button, the side button, and whatever the hell you call those four buttons along the bottom where my home button should be. Nothing. I poke through the apps and settings looking for something screen capturish. Still nothing.
I pull up the Market and search for “screenshot”. There are definitely a handful of apps that do it, but most have sketchy reviews and all-caps warnings that U MUST ROOT UR PHONE 4 THIS 2 WERK. Really? So I download one of the free ones just to try it for myself. I clearly picked a loser not only in its ability to take screenshots successfully but also at engaging in the English language. For the guy who wrote this thing’s sake, I really wish someone who cared was reviewing these apps and giving some pointers in the right direction.
I consider shelling out 4.99 for the super pro version that will work, guaranteed, even if I don’t want to root my phone or speak English. But then I remember that I have an iPad that actually works sitting next to me, so I just take a couple physical physical pictures of it the old-fashioned way and they’re ready to go. Not just captured, but happily synced over iCloud, already over on my Mac, so I can finally rage-blog to my heart’s content.
Don’t worry Apple. If there was any remote chance I might stray from my aging iPhone 4 to this shiny new imposter it was obliteated not just by the epic failure I ran into doing something so basic, but the somber realization that this is no longer a bleeding-edge technology being adopted only by uber geeks like myself as it was a few years ago, it’s mainstream with years of experience, vendors, and community behind it. A whole pile of things contributed to the failure you’re seeing here, but the platform surely enabled most of them. Then again that never stopped something from gaining cheap, grudging acceptance by the masses even though it sucks, and making both the peddler and their OEM cronies a pile of money in the process. Just ask Microsoft. But I’m glad Apple is (finally) making more because it’s well deserved.
Now back to doing something fun on my iPad.
Using git svn on OS X 10.8 Developer Preview
After installing the OS X 10.8 Mountain Lion Developer Preview I noticed that while git and svn both worked independently, I started receiving the following error trying to use git svn:
Can't locate SVN/Core.pm in @INC (@INC contains: /Applications/Xcode.app/Contents/Developer/usr/share/git-core/perl /usr/../Library/Perl/5.12/darwin-thread-multi-2level /usr/share/git-core/perl /Library/Perl/5.12/darwin-thread-multi-2level /Library/Perl/5.12 /Network/Library/Perl/5.12/darwin-thread-multi-2level /Network/Library/Perl/5.12 /Library/Perl/Updates/5.12.4 /System/Library/Perl/5.12/darwin-thread-multi-2level /System/Library/Perl/5.12 /System/Library/Perl/Extras/5.12/darwin-thread-multi-2level /System/Library/Perl/Extras/5.12 .) at /usr/libexec/git-core/git-svn line 61.
It turns out the path for the svn perl library has moved as part of the Xcode 4.4 restructuring. Since most package managers like Homebrew or MacPorts may not work correctly on the 10.8 preview yet, and the CollabNet svn binary installer is also not updated, it’s easiest to continue using the versions of git and svn bundled with the Xcode 4.4 command line tools and adjust the perl include path to work with the new layout.
To do this:
- Ensure that the Xcode 4.4 command line tools are installed (this is now done from within Xcode under Preferences -> Downloads -> Components).
- Add the following environment variable (or append to it as needed if you’re already setting it elsewhere):
export PERL5LIB="/Applications/Xcode.app/Contents/Developer/Library/Perl/5.12/darwin-thread-multi-2level"
After this git svn should work correctly again!
MacBook Pro is finally a desktop replacement again
I just built a loaded up MacBook Pro for my new job and am relieved to find that, finally, they’re viable as a desktop replacement for development work again! I’ve been using an iMac + MacBook Air combination for the past year or so which worked fine when the bulk of my real productive time was at the iMac and the laptop was just for the occasional meeting and travel, but I’m now at a startup again I really one portable computer that does it all wherever I need it.
Based on the recent benchmarks I figured the late 2011 upgrades would put the MBP in the desktop contention range and I was right: quad core, the ability to finally get 16GB SODIMMs as 2×8 for under $200, and the relative cheapness of a blazing-fast third-party SATA III SSD upgrade (I went for a Crucial M4) makes it come in only a hair beneath a fully-loaded iMac (graphics capabilities aside) for somewhere in the ballpark of $3k. Of course, that’s without a 27″ display – but as much as I still love my 27″ iMac at home I honestly found the extreme glossiness pretty bad under office lighting anyway, and am more than happy to wire up a couple generic 23″ anti-glares for a fraction of the cost!
Overall, it’s a killer machine for doing tons of iOS, Android, and miscellaneous server development side-by side with all the IDE’s open and a pile of devices connected without so much as a hiccup, and as a quiet computer fanatic I love that I really have to go out of my way to push it before I ever hear a fan.




Recent Comments