Friday, July 29, 2011

Schedule for iOS Programming Course and Android Programming Course in Sep and Oct 2011 (Singapore)

Quite a number of readers have asked about the schedule of iOS Programming Course and Android Programming Course (Singapore) in Sep and Oct, so here it is!

September 2011
* 12 Sep 2011 - Objective-C Programming - S$499
* 13-14 Sep 2011 - Foundation of iPhone Programming - S$997
* 15-16 Sep 2011 - Advanced iOS Programming - S$997
* 19-20 Sep 2011 - Android Programming - S$997
* 22-23 Sep 2011 - Programming iOS 5 - S$997

October 2011
* 3 Oct 2011 - Objective-C Programming - S$499
* 4-5 Oct 2011 - Foundation of iPhone Programming - S$997
* 6-7 Oct 2011 - Programming iOS 5 - S$997

All courses will be held at Mountbatten Square, Singapore.
Attendees have to bring their own notebook computers
Training time: 9am to 5pm.
For enquiries, please call (65) 9-692-4065.

* Also, all iOS courses are now fully updated to cover Xcode 4.
* And as soon as iOS 5 is officially released, all iOS courses would be based on iOS 5.

You can download the course brochures and application form here.
Please scan a copy of the completed registration form and email it to

Wednesday, July 27, 2011

Beginning Android Application Development now rank #1 in's Software Development category

My Beginning Android Application Development book is now ranked #1 in's Software Development category!

If you want to jumpstart your Android development effort, check out my book!

Thanks everyone for the support!

iOS Chat Application using Bonjour

A number of readers have asked where can they find the Bonjour Chat application that was mentioned in my Beginning iOS 4 Application Development book by Wrox. It is part of the code download for the book. To download the source code, head over to here. Go to the Chapter for Bonjour and the project contains all the code for Bonjour chatting! Enjoy!

Tuesday, July 26, 2011

Android Article - Preserving User Preferences in Android Applications

Often you need to store personalized information for each user of your application. For example, your application may require users to logon to a secure server for authentication. In this case, the user needs to supply his credentials, such as a login name and a password. The first time the user uses your application this information will be entered by the user, but subsequently it would be useful for your application to “remember” this information somewhere so that it can save the user the trouble of entering the same information every time he uses your application. To save this information, there are a couple of ways you could use – files, databases, etc. However, a much better way would be to use the SharedPreferences feature in Android. In this article, I will walk you through the steps to creating an Android application that makes use of this SharedPreferences feature.

Sunday, July 24, 2011

Foundation of iPhone Programming - 21-22 July 2011

Here is another fun iPhone programming course that I had conducted last week. As usual, after the class I think I have converted a few people to buy their first Mac in their life. :-)

And what a time to run the course, Apple just released Lion and a slew of new machines....Mac Mini and MacBook air.....

Friday, July 08, 2011

Objective-C Memory Management Tip 1 - Remember to retain item(s) retrieved from an array

Very often in Objective-C, you have an array that contains a number of objects, like this:

NSMutableArray *array = [[NSMutableArray alloc] init];
[array addObject:@"Item 1"];
[array addObject:@"Item 2"];
[array addObject:@"Item 3"];

And often, you need to retrieve an object from the array and then assign it to another object, like this:
NSString *item = [array objectAtIndex:1];
However, the statement above is not safe as the object can be removed any time, like this:

NSString *item = [array objectAtIndex:1];
[array removeObjectAtIndex:1];

In this case, the item is no longer pointing to a valid memory location. You should instead use a retain on the object that is assigned to the object from the array:

NSString *item = [[array objectAtIndex:1] retain];
[array removeObjectAtIndex:1];
Doing so will ensure that even if the object in the array is removed, the object pointing to it will still remain valid.

In short, remember to retain item(s) retrieved from an array.

Tuesday, July 05, 2011

Learning Objective-C Programming (Singapore) - 19 July 2011

One of the hurdles that most developers encounter when starting out on iOS development is the language - Objective-C. While Objective-C is an extension of the C Programming language, its syntax left most of the developers who are deeply entrenched in Java and C# very confused. In addition, Objective-C in iOS requires developers to manage their own memory usage carefully so that memory is utilized efficiently. In fact, a little mistake in deallocating objects in Objective-C is enough to make your application spiralling out of control. It is with this intention that I am launching this new course on Objective-C programming.

In this one-day course, I will show you how to get started in Objective-C programming the easy way. Through this lab-intensive course, you will learn:

1. The basic syntax for calling properties and methods
2. How to declare and implement a class, its methods, and properties
3. Access Privileges
4. Initializers
5. How protocols and delegates work
6. The common classes used in Objective-C
7. The 101s of memory management for Objective-C in Cocoa/Cocoa Touch
8. And more!

If you are just getting started with iOS programming, this course is a must-have to ensure that you will become productive in the shortest amount of time.

Note that this is not an introductory class on programming. Attendees are expected to have some experience in programming using languages such as Visual Basic, C, C++, Java, or C#.

Venue: Mountbatten Square (Singapore)
Date: 19 July 2011 (Tue)
Time: 9am to 5pm
Fee: S$499 (nett)

Alumni for the iOS courses (Foundation of iPhone Programming and Advanced iOS Programming courses) will get a S$100 discount.

Monday, July 04, 2011

My new eBook published - Building Applications for the Mac App Store

My new eBook has just been released at - "Building Applications for the Mac App Store". Here is a brief synopsis of the book:

In this Wrox Blox, you will learn how to obtain and access the Mac App Store from your Mac. You will also learn about the opportunities available for developers who want to venture into the Mac market. This Wrox Blox also walks you through the steps you need to perform to publish your apps in the Mac App Store. You will use the Xcode 4 development tool provided by Apple to develop a Mac OS X application, and then see how it can be published in the Mac App Store.

Sunday, July 03, 2011

Inaugural weekend iPhone class - 2-3 July 2011

The first iPhone weekend class was a great success. :-) I had a lot of fun running the class and boy, we had an aspiring 9-year old iPhone developer!

iPhone and Android course for July 2011 (Singapore)

Here is the schedule for iPhone and Android courses (Singapore) for the month of July 2011:

* Foundation of iPhone Programming - 21-22 July 2011 (Thu-Fri)
* Android Programming - 25-26 July 2011 (Mon-Tue)

As seats are limited, do enrol soon to avoid disappointment! Download the application form here.