Three Years of iPhone Development

Standard

Three years ago I released my first iPhone application to the public, here is the story of how I got started.

Before I started dabbling in native iPhone development, I had started making iPhone games using web technologies. I had made a really simple web-based iPhone Blackjack game using AJAX, a few JavaScript frameworks and PHP. It was at one point going to be part of an online “Kombat Kasino” for my Mortal Kombat fansite The Realm of Mortal Kombat. But the web interface for the game just wasn’t cutting it for me. It didn’t feel right on the iPhone touch screen. It was then that a friend made a comment that stuck with me: “why doesn’t the game react to gestures like a real casino?” I figured it was perfect time to make it do just that using the recently released iPhone development toolchain.

My first steps in development were to draw an image onto the screen. I then had to figure out how to move them and respond to touching the screen. All this was being new to the platform and the language, I learned many things the hard way. Remember, this was all before Apple allowed us to write apps for the device. We only had framework header files and some shared Mac documentation. The OS that the iPhone was running on then was also far from ready for third party developers as it was an amalgamation of the new UIKit Framework and beta version of OS X Leopard. For instance CoreAnimation was still called Layer Kit. At that point I hadn’t done development for the Mac either, so both Cocoa and Objective-C was all foreign to me. Learning to do all this was the most rewarding programming I had ever done in my life. After a weeks or so of tinkering, I had a tech demo of playing cards moving around the screen randomly. It was cool, but it wasn’t a game.

It wasn’t until Lights Off! for the iPhone was released that I was fully inspired me to make this tech demo into a real game. Every evening for about two weeks I spent countless hours after work at coffee shops, book stores and my home office just trying to get the game into a playable shape. After lots of work and learning I eventually released the first alpha build of the game on August 28th, 2007 at just after midnight. I posted it up on my website and a few other places, and went to sleep.


Screenshot of iBlackjack Alpha 1

The release day was also the same day I was supposed to attend to the iPhone Tech Talks in Chicago. I was pretty tired when I arrived at the Tech Talks because of how late I was up. But the funny part was the entire day was dedicated to Apple developers showing showing us how to make web-apps for the iPhone, and by that time I had a native game. I eventually gathered enough guts to show the game to an evangelist there. He couldn’t tell me anything to help me out, but he pointed me to a great Chicago developer community CAWUG that I should connect with. He also told me more about the great C4 conference that Jonathan Rentzsch had held just a few weeks earlier. These resources I wouldn’t have discovered easily on my own especially when I was so heads down in development.

All versions of my game went on to get a combined total of close to a half million downloads via Installer.app over the next few months. At one point it even got featured on G4’s Attack of the Show in September of 2007 during a segment about third party applications:
http://www.youtube.com/v/tengcnNOpu0?fs=1&hl=en_US&rel=0&color1=0x234900&color2=0x4e9e00

From that point on iPhone development was a very exciting ride. In early 2008 I was hired away from my corporate day job to create iPhone apps full time for mobileAge. For them I have produced a bunch of great applications, and even more in the pipe. iBlackjack eventually was renamed Blackjack 21 and released on the first day the iTunes AppStore.


Blackjack 21 Screenshot

It honestly doesn’t feel like it’s been three years, as it’s been such a roller coaster ride watching the iPhone platform evolve. Since becoming an iPhone developer I have become friends with many fellow developers throughout this great community. There is lots of daily inspiration from the other great people also working on Apple’s platforms. I can’t begin to think what I would be doing if I didn’t take this career path, but I guarantee it wouldn’t have been as much fun as this journey has been.

“If you want to get good at something…”

Standard

If you want to get good at something, you have to put in the time and invest in yourself.

LIFE. IS. PAIN. by Daniel Pasco really struck a chord with me. I spent nearly every night for a few months in late 2007 teaching myself iPhone Development before there were books or even documentation back when the iPhone first came out. Heck, I’m still learning! I didn’t get a lot of sleep or see my friends for a long time, but I enjoyed working on something I was passionate about.

Over the past few years I’ve had many friends ask about getting jobs in the iPhone development, most of them with no experience to speak of. So thanks to Daniel I will now know where I’ll be pointing them when they complain about taking the time to learn Objective C, or why they should spend $25 on a book to get started.

My Fifteen Years of Kovering Mortal Kombat

Standard

Fifteen years ago I published my first gaming FAQ guide to the Usenet, in this case it was a guide for the game Mortal Kombat 3, which was in beta testing at the time. I have been proud to be a part of the Mortal Kombat “Kommunity” ever since. To this day I still help run the now longest running MK fan site The Realm of Mortal Kombat aka TRMK. I sure didn’t think I’d be doing it still be covering the MK games for fifteen years, but I can say doing it has been a valuable part of who I am today.

I can’t say my early FAQs were any good, as I was just a pimply faced freshman in high school with no previous writing experience when I started. Today I can barely read the first FAQ without squirming. I learned quickly and my writing quality and accuracy increased over time, except for my habit for replacing C with K in many words. For instance one of my final MK3 FAQs is much less embarrassing. I went on to write guides/websites for non-MK games like: Killer Instinct 2, War Gods, Mace: The Dark Age, The Grid and Gears of War. My information was even published at times in various gaming magazines like Electronic Gaming Monthly and Game Informer.

When Mortal Kombat 4 began testing around Chicago in 1997, I joined up with friends who ran the website The Realm of Mortal Kombat. I’ve been working on covering all Mortal Kombat games for TRMK ever since. We are the longest running Mortal Kombat website still in existence. We to this day are still trying to continue to help fans in the “Kommunity” as well as we can. It’s not easy to do right along side a real job, but I will continue to do this as long as I believe I’m contributing in some form or another. We’re currently anticipating the release of Mortal Kombat 9 which is rumored to be coming sometime around Christmas 2010.

While working on these guides I developed many key skills I use in work still to this day. I made the first of many computer applications, an Interactive Mortal Kombat 3 Guide for Windows 3.1 written in the computer language Clarion. I sadly have no pictures of this original guide anymore. Then with the expansion of the world wide web I taught myself HTML by backwards engineering HTML source code on various websites. I continue to grow my web design skills as the internet technology advances. All this technology use made me firm in my desire to pursue a career in computer programming. All the jobs I’ve ever had were working with computer technology in one way or another from support to software development. Currently, I’ve got an awesome job developing iPhone (and iPad) games as well as applications for MobileAge.

Through out the past 15 years I have also met and become friends with many great people. Everyone from the developers behind the games, members of the professional and amateur gaming press and of course all the other legions of game fans out there. Many of which provided great inspiration to me, and have been great friends over the years. I would make a list of these people who have helped over the years, but then I’m likely to forget someone. So I would just like to say thank you to everyone who has been a part of this journey over the years, as without you I probably wouldn’t be where I am today. I really appreciate everything.

To celebrate this anniversary I’ll be giving away a few Mortal Kombat product packages to readers on The Realm of Mortal Kombat. So be sure to check there later today, or follow @TRMK on Twitter, for more details as I put the contest details online.

Movie Reviews? There’s an app for that!

Standard

Today marks the release of my latest iPhone application, Leonard Maltin’s Movie Guide (Direct AppStore Link) by mobileAge. Since I have been bad about blogging recently, I felt it was a good time to put together a post detailing it’s creation.

Since the release of mobileAge’s last major update to Wine Enthusiast Guide it was time to start up our the next project, a iPhone application combination of Leonard Maltin’s 2010 Movie Guide and Leonard Maltin’s Classic Movie Guide. MobileAge’s sister company Landware has actually produced mobile versions of the Leonard Maltin Movie Guide book series in the past, so we still had rights to the content.  The two guides combined is over 2300 pages, so it is no easy feat to do it right and keep the iPhone application under the 10MB ceiling that ensures wireless over the air download.

The first working prototypes were put together during my flights to/from Apple’s World Wide Developers Conference back in June. Thanks to WWDC we were able to learn how to properly leverage some new iPhone OS 3.0 features like Core Data and the new unified UISearchDisplayController. I will write a technical post at another date with some things that I learned while developing this application.

The design of the application took many forms over time, as you can see below in this picture of one of the earliest builds.  We intially wanted to color it similar to the 2009 book cover, as the 2010 cover wasn’t finalized yet, but it didn’t ever look quite right, as this early draft shows. We also were not entirely sure what content would be first shown at launch.

Sometimes the entire look of one section of the application would change entirely through the course of a day.  This constant iteration we felt helped build us a better product in the end.  After many design iterations since June, this is what the main screen looks like today:

The main screen of the application shows more recent movies that Leonard has reviewed and sent over to us, his “Current Picks” as he calls them. These reviews are a bit more in depth than the rest of the book content, but should give you a good idea if a recently released movie is worth the cost of admission.  This section automatically updates itself once a day “over the air” as new reviews become available. It is a great advantage that having an internet connected device like the iPhone and iPod Touch gives us.

Since we at mobileAge are all heavy Netflix users, we knew from the start we wanted to have some Netflix integration in the application. So after QUITE A BIT of data manipulation we got the Netflix identifiers into our database. We could then tie a movie to it’s Netflix API counter part, thus allowing you to quickly add the movie to your Netflix Disc/Instant Queues after reading Leonard’s thoughts on the movie.

One feature we had in the Wine Enthusiast Guide is custom user lists with remote backups. This was also another “MUST HAVE” feature for the Movie Guide as people love to categorize their movies for many various reasons.  So we ported the feature over to this application, with a few tweaks for Movies of course. It’s a simple feature, that we hope users find many uses for. We start everyone out with two default groups, but they can create and edit these lists to their heart’s content.

We are already working on many more features for future updates, so we hope to continue to build onto this great app and give movie buffs even more power. We are also starting up our next project which we are all very excited about.

Two Years as iPhone Developer

Standard

Two years ago today I released my first iPhone application. I had spent the week leading up to it’s release learning how to code on the iPhone OS 1.0 Toolchain and it was my first experience using Cocoa and Objective C.  I didn’t know what to work on, so I chose to do a quick port an AJAX powered Blackjack game I had written previously. The result of this hard work was the first alpha build of iBlackjack, which as a VERY basic proof of concept Blackjack game for the iPhone touch screen to issue casino-like commands.

iBlackjack Alpha 1 Gameplay

I continued to maintain the game over the next few months in my spare time when I wasn’t working late already at my day job.  It generated over 500k downloads in it’s time via the Pre-appstore Installer application. It was a fun hobby that I enjoyed tremendously more and more as time went on.

After six months, I found a great opportunity to turn this hobby of mine into a job.  So I went to work with an established mobile development company on their new offshoot company just for iPhone software, mobileAge. Together we grew a little demo game iBlackjack into a full fledged Blackjack simulator called Blackjack 21 for the official iPhone SDK. Blackjack 21 was released on July 10th, 2008 for sale on the iTunes AppStore.

Blackjack 21

It even got as high as the number 5 app in the store at one point!

I’ve since made other iPhone products for mobileAge; namely Shanghai Mahjong and the Wine Enthusiast Guide.  Both apps have gotten plenty of acclaim as well. For instance Shanghai was runner up for best Phone Game of 2008 from iLounge and is seen on Apple Store fronts worldwide. We were even lucky enough to have Wine Enthusiast Guide be selected by Apple for as in-store demo application.

One of the best things about iPhone development is all the great people I’ve met over the years at local meetups, Apple special events like WWDC and just finding others via Twitter.  It’s a great community with a lot of great people all learning from each other as this new iPhone development community has grown over the years.  Never met a better group of people in my years developing for other platforms.

Our current project is an yet unannounced application that is coming very soon, actually the first wide Beta release of that Application is being sent out to our testers next week. For fun, I just took a teaser shot of the source and destination of the next application.

Next App Teaser Image

I hope to show more of our new product off soon, so stay tuned to this space!

Also if you are interested in snagging a free copy of Blackjack 21, the great Just Another iPhone Blog is having a contest giving away a few copies.  They will likely be giving away copies of Shanghai Mahjong sometime next week too!

Twitterrific 2.0 iPhone Easter Eggs

Standard

After the release of Twitterrific 2.0 for the iPhone last night, I stumbled across a few of the Easter Eggs hidden within the app.  I found it was hard to convey how it works in 140 characters on Twitter, so I figured I’d do a blog post here about it.

These are the only two Easter Eggs that I know of right now, but I’ll update with any more if they are found.

New Feature #1: Twoosh Extravaganza!

Like the desktop version of Twitterrific, the iPhone version now also now features “The vocal stylings of Jonathan ‘Wolf’ Rentzsch inform you when a posted tweet is exactly 140 characters long.”  This was a favorite hidden feature of the Mac version of Twitterrific for me, so glad to see it make it’s way with new flair to the iPhone version.

In order to enable it on for every Twoosh, you need to do this first.  You need to post a Tweet that fills all 140 characters AND include the word Twitterrific exactly as I have it here.  Uppercase T is required. Upon doing this the first time, you’ll be graced with the “The vocal stylings of Jonathan ‘Wolf’ Rentzsch along with the following image:

TWOOSH on Twitterrific 2.0 for iPhone

Now you have a new feature enabled under Advanced Settings that you can turn on or off called “Twoosh Extravaganza.” When on you will get the “Twoosh” sound and image animation on each 140 character Twoosh you post.  See below for the options screen.

New Feature #2: BE AWESOME

After stumbling across the first Easter Egg, and hearing that there were more.  I started to try to find another, and the next one was pretty easy to find.  By imitating CHOCKLOCK, the alter ego of Twitterrific developer Craig Hockenberry, I was able to figure out how to BE AWESOME.

Simply type out any tweet entirely in UPPERCASE CAPS and be sure to throw in the word CHOCKLOCK at the end of the tweet. If it worked, you’ll hear CHOCKLOCK himself scream at you that “YOU’RE AWESOME!”

This will unlock and Activate the BE AWESOME feature under Advanced Settings, which will make all tweets you see appear in uppercase like below.  It will also allow you to hear the “YOU’RE AWESOME!” clip with all further Tweets that are entirely uppercased.

TWOOSH on Twitterrific 2.0 for iPhone

Below is the screenshot of the Advanced Settings screen that contains the controls to disable the Easter Eggs.  I personally keep BE AWESOME off as it can be annoying, but love the reward effect for posting a Twoosh so I keep Twoosh Extravaganza on.

Hidden Easter Egg features in Twitterrific 2.0 for iPhone

Hope this helps everyone figure out how to have some more fun Twitterrific 2.0 for the iPhone, and be sure to send me any other Easter Eggs you may find so I can update this list.

UPDATED 5/8 @ 1PM CST

I’ve updated the text above clarifying the eggs a bit more.  But I’ll make mention below of what changed.

For the Twoosh Extravaganza! egg you have to make sure your spell Twitterrific properly and with a capital T and the rest lowercase. Because of this requirement, you can’t do both eggs in one Tweet. And of course still be 140 characters long.

For the BE AWESOME egg. The tweet must end in CHOCKLOCK not CHOCK LOCK. Sorry about confusion, I was having problems since the YOUR AWESOME sound would repeat that afterwards in my testing making me think I got it right.

Welcome to Infinite Shamrock

Standard

Well my old website/blog has been inactive for a while. Over the past year, instead of maintaining my website, I have been using Twitter more and more because of it’s quick and easy communication.  I found myself wanting to write more about things in detail and being frustrated when I tried because I would just get tied up in the mess of Google’s Blogger service and overall not being happy with my layout.  People were saying they were checking my website and I wasn’t making updates, so they would always ask what is new.

I decided to find a new solution.  I wanted something sleeker, quicker and easier to use.  I began dabbling here and there with various other software packages for CMS/blogging.  I eventually narrowed it down to WordPress and Tumblr, and since you are here reading this, it means I’ve made my decision.

I’ve decided to go with Tumblr over WordPress because I liked its simple and elegant style and best of all it’s zero-configuration as far as the back-end goes. Instead of having to install all this software, setup a database and most importantly update the software regularly, Tumblr handles all that for me.   I just design how it looks (if I don’t like their built-in themes) and then start writing the content.

An added plus that pushed me over the top is their Goodies like iPhone Application and Mac Widgets for easy blogging.  I have been getting addicted to Bookmarklets, so they had one for easy blogging of links and media that I like; can’t go wrong with that.  The final piece of the puzzle was the excellent blog composer application for the MacOS (MarsEdit).  It is currently in a public beta for Tumblr support.  It gives me yet another way to update and manage my blog without a web interface.

The next step was to find a name that would stick.  I wanted to use something other than patrickmccarron.com for my blog, and allow myself to setup my personal site to be less of a blog that points to the various places on the web I can be found.  I wanted something Irish since my name is very Irish, so it’d be easy to associate with.  When building this site I was using Shamrocks in place of the typical Infinity symbol you see used on Tumblr for permalinks.  That’s when I realized that I should combine the two, and I got a unique name:Infinite Shamrock.  Which also ties to programming background with the term of an Infinite Loop, and it’s also Apple Headquarters street address.  So it stuck, and then the logo just kind of came naturally when messing around in Photoshop.

Infinite Shamrock Logo

I hope to use Infinite Shamrock to post things that are on my mind, stories on the internet that I enjoyed and also code snippets that I think may help out all the fellow iPhone developers out there.

(Big thanks to my girlfriend KT for editing this rambling post for me, and James for the honest opinions during the design process!)