The most beautiful pieces of crap I’ve ever purchased

My latest purchase from Apple is the 27″ Thunderbolt Display and it has inspired me to write this article. It’s the most beautiful piece of crap I’ve ever purchased. And by that I mean, the display is beautiful but the audio is total crap. In this video, I’m playing a simple tone of a constant frequency so you can hear all the lovely artifacts:

If I wanted snap, crackle, and pop then I’d spend a buck on some rice krispies but this is completely unacceptable for a $1,000 computer monitor. How could Apple who is known for revolutionizing the way we purchase music, release a product that can’t even play audio without distortion? I’ve determined that it happens if you plug anything into the USB ports on the monitor. I’ve joined this rather large thread of unhappy customers. Thankfully I’m still within 14 days of receiving this purchase so it’s getting returned to my local retail store. I’m hoping the next Thunderbolt display either fixes the problem or they just remove the speakers altogether and make the price cheaper.

I also picked up a couple Mac Minis this year. I needed a new workstation as my iMac was getting slow when trying to compile apps using the latest Xcode. I came really close to dropping $3,000 on the 15″ Retina MacBook Pro but I kept reading about lagging and ghosting issues. No thanks I’ll wait for v2. So instead, I bought a high-end Mac Mini with fusion drive and 16 GB of RAM. This seems to be a better option than buying a Mac Pro desktop. Apple just doesn’t seem to care about the Mac Pro. It hasn’t had a real update in a long time and it still doesn’t support Thunderbolt. Maybe next year the Mac Pro will get a real update but for now the only desktops Apple cares about is iMac and Mac Mini. I’m sure there are plenty of Xcode and Final Cut Pro folks like myself that still appreciate the power of desktop computers.

The other Mac Mini I purchased was to replace my OTA DVR which runs Windows 7 Media Center. The small footprint and quietness of the Mac Mini makes it a great HTPC DVR but I’ve noticed it has been skipping with HD video playback. I can’t confirm it’s the Intel HD 4000 chipset but that would seem the likely suspect given my last HTPC never skipped video and had a slower processor. I hope the future Mac Mini’s include a higher-end graphics card.

The iPhone 5 was another purchase and overall it’s really fast compared to my previous iPhone 4. Apple’s A6 processor combined with Verizon LTE makes it the fastest phone I’ve ever owned. But if I was going to get picky, and I am, I really wish they would have made the screen even bigger. I know the design is made so you can easily touch any part of the device with one hand. But not all hands are the same size so why not give guys like me an XL model? Apple needs to start competing with the bigger Android devices that are making me want to switch from iOS–This includes the Samsung Galaxy S III w/ 720P display and Verizon DNA with 1080P display. But my biggest complaint is that the iPhone has never been able to go a full day on a single charge. Instead of making it thinner, can we please just add a bigger battery? Maybe this will be the big feature of iPhone 6.

I also picked up an iPad 4 to replace my iPad 2. The Retina display looks amazing. But there is something I like better when holding the iPad 2. It’s thinner and lighter. Maybe the iPad 5 will get it right.

So there you have it–Major issues with Thunderbolt and Mac Book Pro with Retina display combined with annoyances of the Mac Mini, iPad 4, and iPhone 5. I’m hoping next years revisions get it right.

App Strategies

I recently presented “App Strategies: Secrets of Mobile Marketing and App Design Across Platform” at the MoDevEast conference. It includes a lot of marketing and design tips for developers. Hopefully you’ll find a few gems in there to help drive downloads for your app.

Cross-Platform Gaming Library

Cocos2dXMy favorite programming language is C++.  My favorite game library is Cocos2d.  It’s too bad that Cocos2d is written in Objective-C and only supports iOS and Mac.  And by that I mean it’s too bad I didn’t discover the C++ port of Cocos2d called Cocos2d-X earlier.  It’s absolutely amazing.  Why?

  • First, it’s C++.  My favorite.  The standard template library with it’s generic containers such as std::map is the best.
  • Second, it uses all the same class names and constructs as my favorite Cocos2d gaming library.  This made it extremely easy to switch over to.
  • Third, it’s cross-platform and runs almost everywhere–iOS, Android, Mac, and Windows.  It even has a HTML5 port and the Windows port uses DirectX instead of OpenGL.

With this kind of distribution and support why would you code up your own solution or limit yourself to a single platform?  I’m all in and you should be too.  That is of course if you write games.  Check out my first Cocos2d-x game called Tic Tac Toe Glow which I’m releasing to iOS and Android at the same time.  Windows 8 and Mac will be coming too and why not?  This library makes it easy to do.

Building your First iPhone App

I’m writing a couple tutorials on how to build your first app, starting with the typical Hello World example.  I’ll then show how to take that code and build something a little more useful including a system clock and a stopwatch timer. It will be a total of three articles.

Update:  Article #2 on Create your own Apple iPhone Clock app was just published. (8/2/2012)

I’ve been pretty busy writing my next game which will initially launch on iOS and Android platforms.  I hope to have it out by August.  Stay tuned!


Congressional Committee on Mobile App Privacy

I had the opportunity to give my advice on mobile apps and privacy as a panelist for the 2012 State of the Mobile Net Advisory Committee. If you watch the video you will notice not everyone is in agreement with who should be responsible for your privacy–The App Developer, The Platform (iOS, Android, etc), or The End-User?  I certainly have my opinions as both a developer and a consumer of hundred of apps.  Click the image to watch the video:

Although ultimately it is up to the developer to protect your privacy and do no evil, I argued that the platforms are in the best position to protect your information.  Apple iOS guards your location and prompts you when an application tries to access it.  This works well and you have the ability to deny the app access.  This kind of protection could be provided to other areas such as your address book and calendar events which are currently wide open for apps to abuse.  Imagine downloading a flashlight app, only to have your entire address book uploaded to Spammers-R-Us.

The Android platform gives you a list of permissions an application requires prior to installation.  I like this but as I discuss in the video it has caused issues in my own apps.   I’m hoping a mix of both real time and installation time permissions find it’s way into both platforms going forward.  I feel when a technical solution exists to a problem, and I’m claiming it does, then that is the best approach–Not government regulation and certainly not 100 page privacy policies that nobody reads.

We discussed issues with apps like Path which uploaded your address book without first getting your permission (It does now).  The Girls Around Me App was also a major focus and although we all think it’s creepy, I’m the only one who made the point of what’s wrong with displaying publicly available information?  In this case, girls were not aware their location was being put out into the public by Foursquare.  That’s a problem with the social network and not with an application that just displays what is already online.  Education is key here.

Privacy has become a huge issue with mobile apps and will continue to be.  I’m looking forward to future versions of iOS and Android which will hopefully provide even better controls.  If we just leave it up to application developers to implement privacy controls then we won’t have a consistent standardized method to safeguard our privacy.  I want this across all of my applications.  What do you think?

O’Reilly Webcast on 4/12/2012

Turning Your Game Ideas into iPhone & iPad Apps

If you missed my book signing presentation at MoDevDC then no worries because I’ll be giving it again as an O’Reilly Webcast.  Be sure to sign-up today or tomorrow if your interested.

Register Here:

I’ll update this post again once they post the video for those that miss the live presentation.  Thanks!

Tap, Move, Shake Book Signing

Tap, Move, Shake: Turning Your Game Ideas into iPhone & iPad Apps

My new book Tap, Move, Shake is now available online and in stores. Just click the Books link at the top of the page to see how you can pickup a copy. And if you live in the Washington, D.C. area please join me at the MoDevDC book signing on January 11th. I hope to see you there!

Update: All the book resources and source code has been published.  This includes the math quiz, paddles (Pong game), Air Hockey, and Air Hockey with Computer AI.  Please contact me if you have any questions.

New additions to the site

It always gets busy this time of year but I wanted to mention a few additions to my site.  The first is I have updated the book section with some downloadable content.  I also added a code sample that shows how to draw circles around every touch point on an iOS screen.  This was used in the book to investigate issues with head-to-head play.  In addition, I added a podcast player for the Tech 411 Show which allows you to listen to the latest.  Hope everyone enjoys the coming holidays.  Cheers, Todd

Response to the CNN Article Quote

I received a couple e-mails asking to explain my “horrible experience” with developing for Windows Phone 7.  This is in response to my quote in a CNN story reported by Mark Milian.  The horrible experience wasn’t in the development of the application for WP7, but it was in the publishing of the application to App Hub. Your account goes through a verification process before you are allowed to publish apps to the store and although my account was verified it never was enabled. Nobody at Microsoft could figure out why, but after a couple months of tech support e-mails and phone calls someone finally told me it was a bug on their end that couldn’t be fixed.  The only option I had was to create a brand new developer account under a slightly different name.

The app wasn’t able to be released on launch day by a couple months.  There were numerous copycat apps that even stole our screenshots (from our iPhone app) and when we finally got everything resolved there wasn’t enough sales to have made the process worth it or to continue active development.   I believe the poor performance in sales for the platform is due to having a smaller customer base than iOS and Android.  That makes sense doesn’t it?  I personally don’t know anyone that even owns a Windows Phone 7 besides myself and Microsoft gave that to me to write the app. I’ve also seen poor sales from webOS and Nokia even when the app rankings were good.

In terms of the developer experience, the WP7 platform is good.  In fact, I absolutely love Microsoft Visual Studio and the C# language. I’m hoping the recent Nokia deal might make the platform a contender with iOS and Android by bringing in more handsets and customers but only time will tell.