iOS Development

WildW

Senior member
Oct 3, 2008
984
20
81
evilpicard.com
Hmm. . .Apple Forum, Programming Forum . . . this one has people in, will try here.

So, I've been playing enough iPad games and thinking "Pfft, I could make better than this" to make me interested in the idea of developing on the dark side. I program C/C++ for a living (although mostly embedded systems) so I have some sort of a clue. Objective C can't be that scary can it?

I considered developing for Android a while back, but was put off when I noticed every review on the Market being "Force-closes on $Phone_You_Don't_Have - please fix!" The sheer number of devices, processors, resolutions, etc, makes me think it would be no fun at all. At least the Apple ecosystem is a bit more constrained. Also, "Java."

So, my actual questions for anyone with iOS experience. . . .

I think I read there's a software simulator for the different devices so you can test for the different platforms without owning every type of iPad. . . is that right?

I've read that even a Mac Mini is good enough for development. . . anyone agree? It would be the cheap toe-dipping way forward.

I've also read that all the desktop Macs are now way overdue for a refresh and you currently shouldn't buy any of them. . . . okay, so I guess this one goes in the Apple forum.

Thoughts?
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Yes, a mini should be good enough to get started. Yes, there's an emulator built into xCode so you can test without owning all the hardware, but there are some network related things it doesn't handle. No, Objective C isn't that scary. As a C++ developer you won't have any problems with it. It's just ugly and clunky and always has been.
 

Subyman

Moderator <br> VC&G Forum
Mar 18, 2005
7,876
32
86
While Xcode does include a simulator I would definitely recommend purchasing the devices that you plan to develop for. There are several issues that would go unnoticed if you only rely on the simulator. I would recommend purchasing at least the iPad one and iPad 3 to insure compatibility across the entire iPad range. You also need the hardware to insure good performance as the simulator does include performance monitoring however there is no substitution for the actual device.

As for the difficulty of Objective-C, I mostly programmed for C and C++ before jumping into Objective-C and had no problem at all getting familiar with the system. I purchased a MacBook Pro 2012 model to program with. While it is plenty fast for basic programming I would recommend an iMac as a more permanent solution. It really just depends on what you will be programming for. Will it be games or just basic apps? If you're going to make anything more than a basic app then you need to also consider purchasing programs such as Photoshop.

I would also recommend getting over 8 GB of RAM. The major issue with beginning Apple development is the monetary investment. You need to have a Mac computer and you need to have the devices that you're developing for to test. Then you have to factor in how quickly Apple releases new products such as the iPhone 5 and the potential iPad mini. There is also the $99 a year developer fee. So your app needs to be moderately successful simply to pay for the development.
 

mosco

Senior member
Sep 24, 2002
940
1
76
I have been a full time iOS developer for a couple years.

If you are making a game, you are absolutely going to need to buy devices. The simulator isn't going to be good for that. And thats also an important note, with the iOS, it's a simulator, not an emulator.

Also, Objective-C isn't that bad, and it's getting better. A couple years ago memory management was completely manual. Now we have ARC. Before, you had to manually synthesize properties, now you don't need to. etc.

Some people say it doesn't really help knowing C/C++, but I wouldn't know, because I haven't done any C++ work since a single class in college.
 

WildW

Senior member
Oct 3, 2008
984
20
81
evilpicard.com
What I've read told me that Objective C is a super-set of C (i.e. All pure C code is valid Objective C code), but I imagine there will be caveats to that. I did some research at least, and took in a little (albeit briefly) about objects and messages and square brackets, rather than the C++ model of Object->Method();

I have the iPad 2, my partner has an old iPad 1. Would you anticipate that I'd struggle if I didn't also get a "new iPad", an iPad Mini when it arrives, etc?
 

oznerol

Platinum Member
Apr 29, 2002
2,476
0
76
www.lorenzoisawesome.com
What I've read told me that Objective C is a super-set of C (i.e. All pure C code is valid Objective C code), but I imagine there will be caveats to that. I did some research at least, and took in a little (albeit briefly) about objects and messages and square brackets, rather than the C++ model of Object->Method();

I have the iPad 2, my partner has an old iPad 1. Would you anticipate that I'd struggle if I didn't also get a "new iPad", an iPad Mini when it arrives, etc?

[URL="http://www.raywenderlich.com]Good place to start.[/URL]

You cannot test on-device without paying the $100 developer fee, which lasts a year.

You can mix in some C, but learning Objective C is not that difficult. Xcode in particular makes it fairly easy to pick up, as it has real-time suggestions and error tracking. When I was starting (I will still do this, actually), I would just enter "[myobjectname " and then just scroll through the available methods Xcode presents to find the one that makes sense.

Also, all Apple API calls are in objective C - but Apple's documentation is generally very, very good.

You don't need a new iPad, but it definitely helps. The major difference is the resolution - but that is made very easy to handle by using @2x images. What I like to do is to have old devices running old OS versions, to have a greater range of testing.

The simulator fills in the gaps for devices/OS versions I don't have, but it is definitely not the preferred method of testing since it is missing a lot of features (no camera functionality, to name one thing).
 

TechBoyJK

Lifer
Oct 17, 2002
16,699
60
91
You might also want to look into BuzzTouch.com

It's a great site for managing app development. I just learned a bunch about iOS doing their tutorials.