iOS programming -- license required?

Coldblackice

[H]ard|Gawd
Joined
Aug 14, 2010
Messages
1,156
Is it true that one basically needs a $99/year license to program apps for iOS and get them into the App store?

Also, it was my understanding that iOS apps are all written with objective-C, but it seems they can also be written in C# -- true? Is that done through some sort of abstraction layer, like the JVM?

For any iOS programmers -- what path/language would you recommend for someone wanting to get into it, iOS or C#? Any books or courses that would be a good segue into it for someone with some programming background?
 
Also, it was my understanding that iOS apps are all written with objective-C, but it seems they can also be written in C# -- true? Is that done through some sort of abstraction layer, like the JVM?

I haven't written iphone apps before, but I believe it is possible with an implementation of Mono.

Yes, it is similar to the JVM. Mono is an open source implementation of .NET which can run on other platforms. Whether it is advisable or not, is a question I cannot answer.
 
I have a few apps in the app store already and I would suggest you just learn objective c. You can get away with using c/c++ but sooner or later you will need to use some objective c in order to interact with the cocoa framework. As for using third parties frameworks which allow you to use languages such as c#, I would recommend against it because apple tends to make changes to the developer agreement at random and you don't want to build something on a framework that apple might decide to reject in the future. Just doesn't seem like a good idea to put yourself at the mercy of a third party if you could avoid it.

Also you can build apps without having to pay the $99 fee. You just have to download xcode and the iOS framework. The only problem with this is that you can't test on an actual device only simulator. If you have a jail-broken device you can build and test on the device using a work around/hacks but you'll have to google instruction on how to do that.

As for learning there are tons of tutorials on the net but a really good resource is the stanford university iOS course on itunes u and "www.raywenderlich.com/tutorials".

Good luck.
 
As Dogs pointed out, Xamarin converts C# code into XCode to run on iOS. The workflow and process is actually very slick; if you have any experience with Windows Forms development, then you'll be up and running in minutes.

There are a few caveats, though. For example:
- You will need a Mac to compile the code. This process is handled transparently by Xamarin, and there are some legal rules from Apple that drove this implementation by Xamarin.
- There is an annual license for having an app in the public Apple store. However, if you're targeting a private or corporate Apple Store implementation, then you don't need to worry about this (b/c there are some other licensing dues and technical requirements for having a private store).
- Getting approval from Apple to deploy an app to their public store does take some work. Their rules are somewhat loose and subjective to (their) interpretation. One area I know they have been tightening down against is deploying an app that is basically a webframe, and all of the work is really being done on the loaded website. They want apps where the UI work/logic is actually in the app.
- Registering an iOS device for doing development can get a little tedious if you have many devices that are being tested on. (A minor gripe, but it can be annoying sometimes.)
 
Last edited:
Classical Layers like JVM are not allowed within Apples Policies. Specially not if code could be loaded from outside and executed. That could bypass the AppStore and hence the control by Apple. Which they don't like.

And learning ObjectiveC is easy if you know already C, C++ or C#. Sure there are differences but those are manageable.
 
Do the easy thing and write an android app instead :) Leave the iphone development for the corporations with all their politics. Apple will steal all your profits once you get it into their appstore anyways.
 
Objective C is a strange bird. While newer versions have added more C++ like syntax, its roots are closely related to SmallTalk in the way object messages are passed. And memory management is fairly strange, to put it mildly. You would need to learn Objective C, even if you have a background in C++. The two are very, very different. C# knowledge doesn't really help at all.

All major commercial (phone/tablet/pc) app stores take 30% of sales, and Apple's app store is no different.

There are ways of self signing apps, but you can't publish to Apple's store without a $99 or better developer license.
 
Objective C is a strange bird. While newer versions have added more C++ like syntax, its roots are closely related to SmallTalk in the way object messages are passed. And memory management is fairly strange, to put it mildly. You would need to learn Objective C, even if you have a background in C++. The two are very, very different. C# knowledge doesn't really help at all.

All major commercial (phone/tablet/pc) app stores take 30% of sales, and Apple's app store is no different.

There are ways of self signing apps, but you can't publish to Apple's store without a $99 or better developer license.

I didn't realize google had increased their appstore fees to 30% now too :(
Well at least it's only $25 for life to develop for android vs $99 a year. But that's not as important as the fee the app stores charge in the long run.
 
Xamarin's great, and no, it isn't an interpretation layer like someone implied here. Pricing is fairly modest and gives a perpetual license, with the annual fee being for updated versions.
 
It can be argued that Google and Apple shouldn't charge developers money for wanting to create apps (before they're even published to the marketplace), as it's in their best interest to attract developers to create content for their ecosystem.
 
Last edited:
It can be argued, however, that Google and Apple shouldn't charge developers money for wanting to create apps (before they're even published to the marketplace), as it's in their best interest to attract developers to create content for their ecosystem.

I can see both sides. I don't think the fee should be high, but think of how much CRAP would be pumped out if submissions were free. A small barrier to entry discourages a lot of that.
 
I can see both sides. I don't think the fee should be high, but think of how much CRAP would be pumped out if submissions were free. A small barrier to entry discourages a lot of that.

This. There's already enough shovelware on the App Store and Play to last you a lifetime. If you are actually serious about making an app, you can probably find $100.
 
I can see both sides. I don't think the fee should be high, but think of how much CRAP would be pumped out if submissions were free. A small barrier to entry discourages a lot of that.

This. There's already enough shovelware on the App Store and Play to last you a lifetime. If you are actually serious about making an app, you can probably find $100.

Those are very good points.
 
Thanks all for the input. Understandable reasoning. But what about for someone who's not looking to sell apps right away?

I'm just trying to dip my foot into the waters, but I don't have any iOS programming experience. Is there a way to jump into it without necessitating a license first?
 
^^Yea its free all you need is a mac and xcode and you can write apps. But there are some limitation with not having a developers license like not being able to run your app on an actual device only the simulator. Also you can't use any of the services like game center. But if your looking to just practice just download xcode on your mac and you should be good to go.
 
Thanks all for the input. Understandable reasoning. But what about for someone who's not looking to sell apps right away?

I'm just trying to dip my foot into the waters, but I don't have any iOS programming experience. Is there a way to jump into it without necessitating a license first?

You only need the developer license to run your code on an actual iOS device or list your app in the store. All of the tools to develop on your Mac, including the iOS device simulator, are available for free. If you want to test your code on an iOS device without registering as a developer, you may be able to jailbreak the device and run your code on it that way.
 
^^Yea its free all you need is a mac and xcode and you can write apps. But there are some limitation with not having a developers license like not being able to run your app on an actual device only the simulator. Also you can't use any of the services like game center. But if your looking to just practice just download xcode on your mac and you should be good to go.

You only need the developer license to run your code on an actual iOS device or list your app in the store. All of the tools to develop on your Mac, including the iOS device simulator, are available for free. If you want to test your code on an iOS device without registering as a developer, you may be able to jailbreak the device and run your code on it that way.

Gotcha, good to know. Thanks.
 
Jailbreaking is only a part of the solution for running apps built unsigned in the current version of Xcode*. There's an involved process or changing Xcode configuration and adding hashes with ldid, plus the app would have to be manually copied to the device and you can't use Xcode to debug the app running on an actual device.

* There are easier ways of self-signing/installing apps using older versions like Xcode 4.x. That shouldn't really be a problem since Xcode 5 was just released 2 weeks ago.
 
You only need the developer license to run your code on an actual iOS device or list your app in the store. All of the tools to develop on your Mac, including the iOS device simulator, are available for free.
So is that a legitimate way to begin an app project that will later become "official"?
 
So is that a legitimate way to begin an app project that will later become "official"?

Depends on the app and the level of complexity, but generally yes. Complex games and apps will sometimes employ techniques that need to be debugged and tested on actual hardware. For most simple apps, you won't need to test on real hardware during development, just for QA at the end before you package and send it to the store. If you're just getting started with mobile development, the simulator is all you need to dive in and get started.
 
So is that a legitimate way to begin an app project that will later become "official"?
Yes, but there are huge limitations to using the simulator, especially if the app is timing critical or uses the built in sensors. In those cases, an actual hardware device for debugging and easier testing during development are essential. Basic apps can probably be tested acceptably on the simulator.
 
Do the easy thing and write an android app instead :) Leave the iphone development for the corporations with all their politics. Apple will steal all your profits once you get it into their appstore anyways.

Easy and most profitable are not the same. I despise Apple products as much as the next person that knows the value of a dollar. However, I am researching this topic because I have a few profitable websites with ~30% of the traffic coming from Apple devices, due to the targeted demographic. It sucks, but I need an iOS app and so does most others.
 
Back
Top