Posted on September 9, 2008 at 7:17 pm

Festivals: Now available on iTunes app store

It took a lot of excitement, a lot of frustration and a lot of hard work to write an app for iPhone and bring it to app store. Its available free starting today and here is the itunes link where you can download it and install it on your iPhone or iPod touch.

Lerarning Objective-C wasn’t that hard. Conceptually I learned it quickly but when it came to coding, my Java syntax habits were difficult to break. It took a lil time to get handy with cocoa-touch framework, but I am still struggling with memory management and pointers. Its a tough lesson to learn since Java uses garbage collection and its developer hardly thinks about releasing memory.

This is my first app for iPhone. It shows list of all festivals celebrated in the world which are sorted by major world religions. When you drill down to a religion, you get list of all festivals and when you drill down further, you get details about the festival, including legends connected with the particular festival, way of celebration, rituals etc. It also shows dates for the festival in year 2008 and 2009. Overall it has very limited usage but its fun app to play with.

This is the support site for this app. http://www.eknathkadam.com/festivals/

Posted on August 18, 2008 at 10:56 am

Programming Paradigm

I think in old days programming was easy. You were either writing softwares for your hardware or your desktop. Internet was not there and mobile was not there. With technological advancements we now have so many platforms to program for. Now if you want to tap full potential of your programming brain you will probably end up learning a desktop programming language like VC++,VB, Java Swing or Cocoa. A web technology like JSP, PHP or RoR. Needless to mention Javascript and HTML/CSS. As mobile is becoming a killer device you would like to learn Symbian, Windows mobile or the new kid on the block, Cocoa Touch for iPhone. To make daily mundane tasks easier and automate your routine tasks, you may end up using Shell Script, VB Script of Apple Script.

A desktop language, a web technology, a mobile language, and scripting language isnt all you need to be powerful programmer. Without basic skills like creative visualization and mathematical visualization you cant do any better in any language you learn. And I have often seen several programmers at loss cause they werent visualizing. My mechanical background helped me a lot in my programming career where I can visualize algorithms as used to visualize plastic mould design. Often I have seen mechanical engineers and civil engineers do a lot better in programming than computer engineers and my guess is because they are trained to visualize.

As I am learning Cocoa framework in Objective-C, which has great libraries for graphics and animation, my brain is now being challenged for high level of visualization. Writing a simplest game in Cocoa takes it a lot more than writing a complicated web app. Most of the programming is like 1D or 2D but when it comes to gaming, its probably more than 3 dimensions cause you add sound effects, and if its iPhone, in addition to sound you add vibration effects. Here on iPhone, to control a game, user doesnt use keyboard or mouse, but gestures that he makes with his fingers, and same time you have to remember that he may tilt his device which will be sensed by accelerometer so add few more dimensions. So thinking in more than 2 dimensions, I have started to get dizzy :).

Posted on June 25, 2008 at 3:36 pm

Learning to XCode

xcode.png

Here is my first tutorial in XCoding !!!

Defining an interface.

/* 

 *  Employee.h

 *  Defining an interface/class with instance variables and getters and setters

 *

 */

@interface Employee: NSObject {

int empNumber;

NSString *empName;

}

-(int)getNumber;

-(NSString*) getName;

-(void)setName:(NSString*) name;

-(void)setNumber:(int)number;

@end

 

Implementing the interface and calling methods on the class.

/*

* MyMain.m

* Implementing the Employee class and calling its methods from main method

*

*/

#import

#import”Employee.h”

@implementation Employee

-(void)setName:(NSString*)name{

[empName autorelease];

empName=name;

}

-(void)setNumber: (int) num {

empNumber=num;

}

-(NSString*)getName{

return empName;

}

-(int)getNumber{

return empNumber;

}

@end

int main (int argc, const char * argv[]) {

NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

Employee *emp = [[Employee init]alloc];

[emp setNumber:12];

[emp setName:(@"Eknath")];

NSLog([NSString stringWithFormat:@"%d", [emp getNumber]]);

NSLog([emp getName]);

[pool drain];

return 0;

}