Barriers to iPhone development

The barriers aren't that high, the MacBook and MacBook Pro are now the worlds best selling laptops, selling more of them than any other manufacturer. Not to mention that buying a Mac isn't that expensive anymore, not with the Mac mini and MacBooks.

Just because it is 'best selling' doesn't mean it is good ;)

Besides, I would consider having to purchase a new computer just to write some code a little high as a barrier.
 
I would be interesting to see how well the C# libraries integrate.. the majority of widgets are part of the OS so recreating a new set for your app is going to be memory hungry and a waste on resources.

The 'normal' iPhoneOS will only execute a trusted & signed binary. Once you're paid up you can do as many as you want it's all automated. That includes installing/debugging your own app on your own phone.

For the Xcode+SDK (which includes an emulator) then all you need todo is register under developer.apple.com for the iPhone which is free. You can then download the kit.
 
Last edited:
I read somewhere you had to buy the SDK. If that's false, then fine. That's good.

So assuming I'm not interesting publishing my apps on their App Store. All I need then is a Macintosh and possibly MonoTouch SDK?

What's all this about needing a digital certificate if you want to run your creations on your iPhone?

Well no, if you want to run your app on a physical iPhone you'll need to pay the $99. The free SDK provides a simulator/emulator to run your apps in during development.

You might want to look into jailbreaking your iPhone (Although it's not something I can tell you how to do on here). You'll be able to run your own code, as well as distribute your app to as many people as you want. It's also really simple to do nowadays.

Not an ideal solution, but it may suit you best. :)
 
When the alternative is Objective C ... ?
I must say that ObjC/Cocoa has been pushed to the bottom of the list of things that I should get off my behind and learn about not for a known technical reason, but simply because the syntax and mixedCaseVerbosity of the snippets I've seen look so unattractive. Shallow, I know!
 
You could go via webkit then use safari on the phone..

Well I've just figured out (I'm not a webby developer) how to get the apache that sits on the mac to execute an Objective-C binary using cgi-bin :) Very simple todo but I have zero web dev experience..

I can now make a Mac back end to my iPhone app using the web services :D
 
I must say that ObjC/Cocoa has been pushed to the bottom of the list of things that I should get off my behind and learn about not for a known technical reason, but simply because the syntax and mixedCaseVerbosity of the snippets I've seen look so unattractive. Shallow, I know!

Not really - Java and others have the same, if it starts with a capital then it's a type (class etc).

What tends to mess people up is the calls, or more accurately "messaging" using the '[' and ']' brackets:

Code:
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:0.1
                                                  target:self
                                                selector:@selector(timerFireMethod:)
                                                userInfo:nil
                                                 repeats:YES];


It's easy - they're parameter labels. That example it's better to think sends a message to the NSTimer class with the parameters "scheduleTimerWithTimeInterval = 0.1, target = this object, selector = the method to call on the object, ...."
Behind the scenes it match the parameters with a method and call it. It's also possible to add/manipulate classes during runtime like java.. so it's a little more than just C+some bits. It also has garbage collection - although the iPhone has a hardcore one so if you forget to retain an object reference it's very possible you'll be missing an object!

Also the way that you approach the naming is slightly different as you can tell it's quite friendly as you don't have to guess the parameters or count the commas.
 
Last edited:
One thing i wish Objective-c had was method overloading, i do miss that from c#. If you do decide to pickup objective-c you need to go into it with an open mind, i've added a basic example to show how some things are different.

c#
Code:
string a = "Bob";
string b = "John";

if (a != b)
{
    //Do something
}

Objective-c
Code:
NSString *a = [NSString stringWithFormat:@"Bob"];
NSString *b = [[NSString alloc] initWithFormat:@"John"];

if (![a isEqualToString:b])
{
    //Do something
}

[b release];

I have shown 2 ways to define a variable, the first way for "Bob" doesn't need garbage collection and will be nullified at the end of the method, the 2 way for "John" allocates the memory for the variable which will allow it to be used elsewhere in the app by passing the pointer around, but since it's not needed after the if statement it's memory is released.

As for the if statement itself, as you can see you can't just do a direct comparrison of the strings, you have to say what you are comparing and compare using a method.

Basically dont go into learning it with the same mind frame as c#, be open to new ways of doing things.
 
c# is heavily influenced by Java.
c++ is based on c. Probably has influences from a number of OO languages.
Objective-C is based on C with OO influence from SmallTalk.
 
Erm, you only need to buy the SDK (£50) to publish Apps. The IDE etc (Xcode) is free.

Visual Studio 2008 Professional on the other hand is £500.
 
Given the quality of the top iPhone apps versus the top apps on other platforms, it seems like a worthwhile barrier from the end-user's point of view, and certainly one that hasn't hindered good applications from being made.
 
Thanks for the ObjC examples, but, as I said, my objection is a shallow aesthetic one. The verbosity and necessity of name prefixes due to lack of namespaces just looks bad to me. That's enough to put me off when there are so many other things I can spend time learning.

I think that's more to do with the review process isn't it?
IMO the platform just attracts developers with great attention to detail. It's the same for Mac OS X GUI applications, where there is no review process.
 
Last edited:
Back
Top Bottom