The Crimea Quiz Game App

Posted by steve | Apple Software and Hardware,Education,Mobile Phones | Friday 11 April 2014 8:04 pm

Apple just sent me notification that the newest iOS App I’ve written “Crimea Quiz Game” has been approved and is ready for sale. From my past experience I think this means the App will begin to show up for sale in the Australia App Store at midnight tonight and then work its way across the global App Stores accordingly.

This is very exciting for me. Effort to get to this point has been really different than for other Apps I’ve published. But let me share some excitement by describing what this App does before I spend more time describing the interesting experience of getting this App approved.

“Crimea Quiz Game” is an iOS game that you play in your living room at home with iPhones, iPads and an Apple TV. The key feature is that this is a quiz you play using the Apple TV to present the questions and you use your hand held iPhones and iPads to vote on the correct answer. The game uses many of Apple’s new iOS 7 capabilities including the Multi-Peer Connectivity framework to automatically connect between all the devices, Sprite Kit for the graphics and text presentation, and AirPlay to send output to the TV screen.

When we play-tested this it generated a lot of excitement and was quite a bit of fun. Here is how a typical Apple TV display looks while playing the game.

Crimea Quiz Game Apple TV Display

Crimea Quiz Game Apple TV Display

On your networked iPhone are buttons matching the multiple-choice answers.

iPhone Answer Buttons

iPhone Answer Buttons

If you think you know the answer tap the matching button before one of the other players. The only thing is, see that timer up on the Apple TV display?…

Countdown Timer

Countdown Timer

If no one answers before the timer runs out (and it gets red as you get close), then no one scores.
The game then shows the correct answer, and the name of whomever got it right, on the Apple TV display for a few seconds and then the next question is presented. This cycle is repeated until the game ends and someone has the highest number of correct answers.

Game Over

Game Over

The game itself is about the current crisis in Crimea. I figure most folks, me included, don’t know much about the Ukraine and Crimea or even where the heck it is. So as a quiz topic this should be both interesting and educational. The game has 28 questions built-in. When the game is launched you can select how many questions are chosen randomly for a game round.

I also had some fun designing a setup screen with custom controls that is used by one player before the game begins. Here’s that setup display running on the iPhone.

Setup Options

Setup Options

The open source program Gimp was used to create the custom graphic elements and then I coded up some custom Sprite Kit controls for the buttons, switches and sliders.

Now, a little bit about the process to get to this point. The game was written and submitted to Apple for review on March 24th. Then on April 2nd the App was rejected with a reason that I’ve never encountered before “Metadata Rejected”. Apple provided details about the rejection and it turns out they didn’t find some problem with the App. Rather, they asked me if I would create a video showing how to work it. This was something new but then I figure, maybe the written text description I had given was not enough. After all, this app uses the Apple TV in a manner that I have not seen much in other App Store games. So setup might be confusing. And I figured if Apple said they needed a video showing how to setup the game hardware, then anyone would. So I created a video using the iOS simulator, and Quicktime and iMovie for editing and submitted that to Apple the very next day. In the mean time I was busy enhancing by adding features and cosmetic improvements so I decided to create a whole new version and resubmit.

Apple rejected it again on April 3rd. This time they wanted me to make the video again but using real Apple hardware and not showing it running on the simulator. Okay. That was a little more effort. I had to dig out our old Cannon video camera and threw together a few short clips showing the game being played on some iOS devices we have at home. I also did some editing in iMovie to see if I could make up for the lousy video skills. The app was resubmitted with a link to the first and second video. A new binary was readied on April 6th.

Then I didn’t hear anything for a few days. This morning (April 11) at 3:05 AM I received a text message that the game was in review! My first thought was, wow that’s early. Apple must have a pretty decent size staff running day and night for App reviews. I figured that maybe in an hour or two I’d get notice that the App was approved. The previous App I created took only 2 hours to approve once they began the review. But, this one is a lot more complicated because it has networking and uses the Apple TV. Around 1:00 PM I received a message from Apple saying that they needed more time to test it. Now I was secretly hoping this meant that maybe Apple found the App pretty interesting and was playing around with it. Just a fantasy, I know. Around 5:00 PM this evening I received a message saying the App was approved for sale in the App store. That was quite the journey. But like I said, I’m real excited. I think this App is a pretty neat idea, it’s fun to play, and it’s both timely and educational.

Here’s honestly hoping this game is a success. It’s just like those trivia games you see in some bars except this one you play at home with your friends.

The App is in the App Store at this link. I have also created a support web site which also shows off what it does and provides links to the setup and playing videos that were created for Apple during the review process.

So go check it out. I’m quite proud of it and also have a lot of plans for where I will take this idea in the future.


Updated Xcode 5 Unit Test Tutorial

Posted by steve | Apple Software and Hardware,Education,Mobile Phones | Wednesday 5 March 2014 11:43 am

This morning I received a compliment via email from someone I’ve never met before about my Xcode Unit Test tutorial. I was instantly motivated to read through it again and check it for typos. So, after about an hour’s worth of careful reading and edits I have updated the tutorial this morning.

If you have an interest in learning how to write good Unit Tests for iOS and Mac application development, check it out. The tutorial can be found here.

And thanks again to everyone that provides feedback on my tutorials. I’m especially curious about how folks stumble upon or find them since I make no special effort to market the material.


Laser Table Game on the App Store

Posted by steve | Apple Software and Hardware,Mobile Phones,Smalltalk | Monday 4 July 2011 10:10 am

I decided last Fall to take a crack at writing an App for the iPhone and iPad to be included in the App Store. Using my Laser Game published as a tutorial for Squeak as a starting point, I rewrote the App using Objective-C. The idea was to keep as much of the initial design and Smalltalk object models as possible.

Now I had seen Objective-C many years ago, 1993 I think it was, when I was investigating NeXT Step on Intel computers. And I knew it was a “cousin” to Smalltalk, having been launched by Brad Cox as an attempt to make Smalltalk-like programming on top of C. That may just be a poorly formed opinion of my own about Objective-C’s roots. I had not programmed in C since maybe the late ’80s.

So with a few books and tutorials on learning Objective-C in hand I dove in. At first, not unexpectedly, I was very frustrated with the tools and libraries because of a lack of familiarity. On the other hand, I can see why there’s developer loyalty about Objective-C. It is actually enjoyable coding once you get use to things.

Okay, long story short, I’ve published my App in June 2011 after many interruptions and typical other distractions — including being very busy at my regular Smalltalk professional work. After that initial hurdle of getting the first App finished and published, it’s been quite enjoyable to add new features and also polish up the code. As I’ve gotten smarter about coding in Objective-C I’ve been changing the implementation, refactoring and replacing code here and there.

Without any real attempt at marketing the App, I’ve had some success in sales. That was a real surprise. My purpose was to gain the experience of writing an App for the iPhone and iPad and to have something to point to as a “notch on my resume” for technical skills. It didn’t matter to me at all if the game sold. But I am delighted to see people have been downloading it and playing the game. In fact, what’s really cool is that people all over the world have downloaded and installed my Laser Game App. Apple makes publication of Apps worldwide very easy to do.

I just submitted Version 1.2 to Apple for approval. Considering the Fourth of July holiday I suspect it will be approved around mid-to-late-week coming up. The V1.2 update is a significant improvement over the previous designs. I feel like I’m just starting to get on a roll here.

The App has it’s own web page for news and support. I recently published some screenshots showing how the new release appears.

All in all, I really prefer working in Smalltalk and am much faster at developing there than in Objective-C. And that’s to be expected since I’ve been doing Object Oriented work with Smalltalk since the late ’80s. But I can say that developing for the iPhone and iPad with Objective-C is quite enjoyable and I hope to keep getting better. Also, it really is cool having my own App running on my iPhone and iPad.

More to come, I’m sure.


IOS 4 on 2nd generation iPhone 3G

Posted by steve | Apple Software and Hardware,Mobile Phones | Wednesday 30 June 2010 11:06 am

I own and am quite happy with a 2nd generation iPhone, the iPhone 3G. The phone, since its release, has been superseded by the iPhone 3GS and now the iPhone 4.

Recently Apple made the iOS 4 system software available for the 3G and 3GS versions of the iPhone, although some features are unavailable on the older 3G model. As reported here, I upgraded my software and it went without a hitch. The new features are very nice and the price, free, is great.

Now that I’ve been using it for a week I have some concerns about this new software. I’m noticing just an overall drop in performance. It seems as if there are instances when the iPhone just stalls, sometimes for seconds, before it responds to an action: choosing from a menu or typing a key. It’s very frustrating. Also, there are more frequent crashes. Sometimes the 3rd party app I’m running will exit unexpectedly and sometimes the iPhone itself will reboot (you get a blank screen and the white Apple logo while it is restarting).

It could be that these problems may just be 3rd party apps that need a software update to work well with iOS 4. But whatever the cause it doesn’t reflect well on Apple’s iPhone. My wife, having the same model phone and also upgraded, reports the same frustrating performance issues.

I’m going to try a full restore this weekend and see if that helps. Here’s hoping this is a fairly common experience and results in a software update to resolve the problems.


iOS 4 updated on my iPhone 3G

Posted by steve | Apple Software and Hardware,Mobile Phones | Monday 21 June 2010 8:21 pm

Apple released iOS 4 (formerly iPhone OS 4) today. And like most probably all other iPhone owners I was eager to install this free update.

By the way, this is still one of the cool things I admire about the iPhone. Every year there’s a free major software update. And it’s always a worthwhile update. I just don’t remember this sort of thing when I had a Motorola Verizon phone.

Holding back my enthusiasm, I did a little research first. A little reading around the internet yielded some general advice to actually synch with a backup and then perform a full restore (wiping the phone clean and the automatically re-installing all the apps, music, photos, videos, podcasts, …) you get the idea.

It took a little while to go through a full backup and restore. I then downloaded the free update and allowed iTunes to perform the firmware upgrade on my iPhone.

The update went without a hitch. I have to admit, and I’m sure Apple intends this to be a compelling reaction, after poking around the new iOS, I want the full new hardware that iPhone 4 brings. Patience, and wait for it.

In the mean time I really dig the new Folders feature and immediately went folder crazy and reduced how many pages of iPhone apps I have installed, in favor of convenient folders. But the really cool app was the new iBooks app for the iPhone made available with iOS 4. You need to go to the App Store and do a free download to get it. I was just playing around with it – downloaded 2 free books and 2 sample book sections. iBooks on the iPhone is quite functional and easy to read. Nice software.

I’m now sending myself some PDF documents via email. The iPhone email client will allow me to save these PDF documents to the iBook reader. Can’t wait to see how that works out.

All in all, the update was painless except that it took about an hour.


There’s a Fee for that…

Posted by steve | Mobile Phones | Friday 13 November 2009 5:46 pm

I currently own and use an iPhone with AT&T. And I love this iPhone. It offers an ease of use and seemless elegance that’s unmatched. The user interface really is intuitive. Some people dont get how important that is.

My only real complaint has been that, at least where I live, the AT&T wireless network is not as robust as the Verison wireless network.

Yes, I used to be a Verizon customer. And when the iPhone was announced I couldn’t wait for the day that it became available so I could drop my Verizon contract and open up a brand new AT&T contract. I wasn’t just a “switcher”, I was eager and delighted to leave. I knew the wireless service would not be as strong yet I gladly switched.

I tried a number of high-end mobile phones when I was with Verizon. With the new Droid phone it looks like Verizon finally has a phone that competes with Apple’s iPhone. But I’m never going back. I can sum it up in one word.


Verizon was certain to find some way to make my daily use of my phone expensive. If I wanted to transfer a picture from my phone, they had the BluTooth wireless interface crippled on my Motorola V710 phone. The only way to transfer a picture either to or from the phone without cables was to use their network. And there was a fee for that.

How about music files like ring tones? There was a fee for that too.

Synchronize my contacts with my computer? Could it have been any more difficult?

Heaven help you if you accidently used too many minutes. There was a fee for that too. And it just felt like they weren’t trying to make it easy to not make that mistake.

Unused minutes? Too bad you lost them. Money in someone else’s pocket, but not mine.

It honestly felt that their profit model was to make money off customer mistakes and even everyday power-user activities.

Now I read that they have announced that they are doubling contract termination fees for smart phone customers. Is that to stop more users from switching to the iPhone? From what I can tell, the iPhone has been a huge success in the smart phone market. Is Verizon worried that new Droid owners may still get frustrated and switch anyway?

It’s a free market and I think it’s fair that Verizon can do whatever the market will bear. I think they do have a better network. But for this customer, the iPhone just made switching away easy. I didn’t care at all whatever it took to get out from under their tent.

Do I think AT&T is flawless? No. I get dropped calls. And I would prefer even cheaper monthly wireless costs. But I have never once felt like they treated me like a revenue opportunity, ensuring to profit on everything I do. And the iPhone really is an awesome mobile device.

There is a subtle message in Verizon’s latest commercials. They actually are very clever and make me laugh. The Land of Lost Toys commercial is great. Especially because I think they hit on the only weakness that exists. The little blue 3G coverage map the iPhone shows has to make an existing iPhone user laugh. It’s a pretty good observation.

But here’s the subtle thing. I think that commercial doesn’t pick on the iPhone. Instead it’s saying the iPhone is crippled by the wireless network it lives on. I suspect that Verizon wants an iPhone in their stable, and we may see one in the future. I believe Verizon made a huge mistake on the iPhone and they know it.

That will be interesting to see if it happens. What if one day in the future the consumer can decide which iPhone wireless carrier they want? Wouldn’t that be interesting? I’d love to see AT&T compete with Verizon by being a better wireless provider.

Leave the iPhone out of the equation and see what happens. The customer wins.


iPhone 3.0 OS update

Posted by steve | Mobile Phones | Wednesday 17 June 2009 7:39 pm

iPhone 3.0

I’ve downloaded the new, free, iPhone 3.0 OS upgrade via iTunes. It was all automatic. It’s still going through the process of completing the upgrade. The download time was fairly small but during the installation it completes a complete backup of the iPhone software before the install and then again after the first pass ay synchronizing after the install. The backup operations take a while.

So far, it’s all working and looking good. I’m eager to try out how it behaves with this new operating system software. The folks over at TUAW wrote a nice article explaining what’s new about iPhone OS 3.0. It can be found here.

The install completed without complications. I’ve already used the “copy-paste” ability to modify some text on my Notes app. The initial backup operations seemed to take the longest. Download of the 3.0 software took about 5 minutes. Install and synchronization took a whole lot longer.


Thoughts on developing for the iPhone

Posted by steve | Mobile Phones | Sunday 5 April 2009 7:17 pm

To provide perspective, I’m an early adopter iPhone owner and I’m a serious fan of Apple’s OS X operating system and the latest wave of software products we’re seeing come from Apple.

I was chatting recently with a friend of mine who is considering learning Objective-C and programming for the iPhone. He is the 4th person I know personally that is either developing or about to develop software for the iPhone. I told my friend, “Go for it.”

To develop for the iPhone you need an Intel-based Mac. I am currently not developing software for the iPhone, only because the Mac hardware I currently own is still PowerPC based. But that doesn’t mean I don’t want to.

The iPhone has been out for about 2 years now and after the first year Apple made the software development kit (SDK) available so that interested programmers could create their own applications for the iPhone. I remember when the SDK was announced there was also an announcement about a venture capitalist project, the iFund. Kleiner Perkins Caufield & Byers announced a $100 Million fund to get software projects launched. I remember when hearing about that, and their compelling explanation as to why they were doing it, that this would make possible many new applications for Apple’s mobile platform.

Just today I read an article in the New York Times about what they called “The iPhone Gold Rush“. Check out the article. It tells of how software developers have found a relatively easy way to get exciting new ideas out and generating meaningful income for the Apple iPhone. Now, I’m not saying that everyone will make millions of dollars doing this, not even enough to pay for a home mortgage. But what I am thinking about is that we are in fact seeing a new development platform that will likely have a lot of life in it and relatively easy entry for talented programmers.

It’s a bit like the dream come true for creative motivated developers. Come up with a great idea, produce it and then make it available through iTunes. That’s pretty exciting.

Sure, the problem is there’s a lot of crappy applications out there, and the herd of early software developers have all seem to gravitate towards common applications. But if you really do have a new idea, it’s easy to see how you could make some income by just writing really good code.

What’s the deal about the software development itself? Well, Apple is using Objective-C for iPhone, and Cocoa Apps on OS X. You may not be too familiar with Objective-C. I can share a little bit about my informal view of how Objective-C ended up there.

I remember when Brad Cox‘s book “Object Oriented Programming” came out. I still have my hard bound copy. That was around the time I was also aware of C++, which was gaining market awareness. In those days the conventional wisdom (which is almost always not what you should be doing) was to migrate from the programming language C to C++. Brad Cox was describing Objective-C as an alternative. What I remember most about my interest in Objective-C in those days was that it was supposed to be a “cousin” to Smalltalk. And of course I was already quite a fan of the Smalltalk programming language. So I bought the book and breezed through it. I didn’t really do any Objective-C programming at the time, so nothing really sunk in. I was a pretty good C coder in those days however, even though I had started my Smalltalk career.

I was paying attention to what Apple was doing in software development tools in those days too. They had already begun the shift away from Object Pascal towards AT&T’s C++. Shame really since I really liked Object Pascal. I remember reading that since Apple had already chosen C++ for their next generation software tools, they were pushing hard on AT&T to get V2.0 completed.

Again, this is just my personal observations. But I think Apple learned the hard way that really big projects in C++ were tough to deliver. Then the big wave of Java development hit the industry. And Apple started to support Java development in a really big way. I was at the first Java One conference back in 1998. I was already using Apple computers and had a pretty good eye for spotting one in use. It really struck me how many of the Java evangelists from Sun, including Gosling, were using Mac PowerBooks for their Java development. Of course that made sense since Apple had adopted Java in a big way (once again following the crowd) and of course Microsoft had very poor support for Java in Windows. Still, was pretty cool seeing Apple computers getting used by Sun engineers.

I really think the turning point for Apple in recent history was when Steve Jobs came back on board. But you know, the software development enthusiast in me sees Apple’s big improvements not only because of Mr. Jobs’ formidable personality and vision. The also purchased NeXT. That’s something key. Because NeXT Step was developed around Objective-C. I really believe that after Apple began to develop more and more software on top of the rich NeXT Step Objective-C software base, they started to produce better, reliable, and more interesting software. I really think the switch of focus away from C++ and Java towards Objective-C is a key component to the success they are having in software products (including OS X and it’s Cocoa Apps).

And this brings us around to the iPhone. Developers are often discovering Objective-C for the very first time. My friend Blaine reminds me that Objective-C is nowhere near as cool nor powerful as what we have in Smalltalk today. But I gotta tell you, I think it’s a big step in the right direction.

So, do I think more programmers should take a hard look at developing for the iPhone? Sure. It’s got a lot going for it. And I think anyone paying attention can see that the iPhone has got to be the first product in what surely must be many generations of mobile platform products yet to come from Apple. Pretty exciting time to get involved.

I’m waiting for the right time (read that as budget constrained) to replace my old G4 PowerBook with one of these newfangled Intel Macs. Truth is, for things I am doing today it’s still an excellent computer. I develop Smalltalk code on it just fine, so it’s nothing I need to spend money on upgrading right away. But when the time comes, I’ll also be signing up for a Apple’s iPhone SDK and getting busy.


TIP: Power down your iPhone once a week

Posted by steve | Mobile Phones | Thursday 26 March 2009 5:57 am

This morning I was trying to use the New York Times iPhone app. It was failing to launch. It would start up with it’s splash screen and then exit.

I remembered a tip I got from a technician at the local Apple store. He suggested that it was a good idea to power off my iPhone about once a week. You can turn it right back on afterwards. This is supposed to help with some memory or heap fragmentation issues with some of the apps.

It’s been my experience that this usually solves the problem. That particular iPhone app (New York Times) has had this particular problem from back when it became first available. It was pretty severe for this app with the first version. The software developer(s) have made updates that solved how often this was happening. But, this morning, it was failing to launch.

If you’re unfamiliar with the power down sequence on an iPhone, it’s simple. Press and hold the button at the top edge of the phone until the screen shows a slider that says “Power Off”. Let go of the button and then do what it says.


iPhone 3.0

Posted by steve | Mobile Phones | Friday 20 March 2009 5:42 am

Last night i watched the keynote podcast of the iPhone 3.0 software update. You can find it, as a free download, in the iTunes Music Store under Podcasts.

Apple is really pushing new features and application enhancements out for their mobile platform.

It’s cool to know all these developers are writing in Objective-C too.

Certainly, with a presentation geared towards developers, there was a lot of information about the explosive growth in the iPhone applications market. Writing apps for the iPhone looks attractive.

Overall, I’m impressed with how dynamic the iPhone software is. Apple has not only produced an amazing hand-held mobile device, they are executing effective meaningful updates to the product line. Software extendability done well and often makes for an incredible investment for the consumer owning an iPhone.

It’s exciting to understand that we are seeing the beginnings of a highly functional product line.

I’m impressed.

Next Page »