Sunday, August 2, 2009

Compatible code for OS 2.2.1 and 3.0

Recently, the itts apple server has a number of changes and one of my favourite opensource app AppSales Mobile failed to get the sales data. It is now updated and thanks to the developer for the updating

However, the project was set to compile for SDK3.0, there are only a few changes that need to bring this app to be compatible to OS 2.2.1 and 3.0 at the same time.

Here are the steps involved

(1) Base SDK set to iPhone Device 3.0
(2) In Project Settings, iPhone OS Deployment Target set to iPhone OS 2.2.1
(3) Change the source code in RootViewController.m that have setFont or setImage methods, there are about 18 such changes to be done.

This is how to change the source code by adding respondsToSelector: test before using the deprecated method

change from

  [footer.titleLabel setFont:[UIFont systemFontOfSize:14.0]];


  if ( [footer respondsToSelector:@selector(setFont:)] ) {
    [footer setFont:[UIFont systemFontOfSize:14.0]];
  else {
    [footer.titleLabel setFont:[UIFont systemFontOfSize:14.0]];

change from

  cell.imageView.image = [UIImage imageNamed:@"Daily.png"];


  if ( [cell respondsToSelector:@selector(setImage:)] ) {
    cell.image = [UIImage imageNamed:@"Daily.png"];
  else {
    cell.imageView.image = [UIImage imageNamed:@"Daily.png"];

You may get warnings when build to actual 2.2.1 OS device, but this is normal. However, you cannot build to 2.2.1 Simulator.

The modified source is available here

Revision 20 is a modified source (as above) for version 2009/7

Revision 23 is the updated modification for version 2009/11/19

to checkout a revision

svn checkout -r 20 AppSalesMobile221r20
svn checkout -r 23 AppSalesMobile221r23

If you want to check out a previous version based on the commit hexdigit from the github repo, do this

git clone git:// AppSales0731
cd AppSales0731
git checkout -b b0731 ff248e8e6c23386f867514c1c331a469b7d4cf45
git log

Saturday, August 1, 2009

javacom change name

I have been asked by Sun Microsystems to change my App Store name to others stating that Javacom is an Unauthorized use of Java Trademark.

Obviously, I don't have the ability to counter with their request. But I have a few words to say

First of all, my name in App Store is javacom not Javacom
Second, Java and Java applet are not supported by official iPhone App Store app or web app.
Third, I did not program in Java, I only drink a cup of java when I do programming.

May be I have to drink milk instead.... Coffee may not be good for me