What you need to know before writing for iOS
“Can Windows write for iPhone?”
Anonymous developer
“We do not plan to publish in the AppStore, is this possible? And we also want a version for Android ... ”
An anonymous customer
If you decide to develop applications for the iPhone / iPad, then most likely you will be interested in the following questions:
Everything is very simple / complicated here. Write an application, put it in the AppStore, set a price, get money from satisfied customers. 30% of the price is taken by Apple. There is a chance both to take over the world and waste your time in vain - it all depends on you.
The upper bar of the price is real - in the AppStore there were already at least two applications for a thousand dollars:
“BarMax CA” - an application for law students;
“I Am Rich” is an application showing an image of a red, apparently gemstone. It was removed from the store a day after publication, but 8 lucky people still managed to get it. Now it has returned to the AppStore with a price of $ 10, one of the features indicates that the application is sold for only 1/100 of the original price.
Here, too, everything is quite transparent: place an advertising banner in your application, Apple shares revenue with you for displaying ads and for clicks on the banner. On a habr already wrote about this service and even told how to add banners in the applications . It remains to add that the cost of advertising is 1 cent - per impression, $ 2 - per click. The developer receives 60 percent of the proceeds.
Apple provides the opportunity to trade in your applications with various worldly values - resources in games, access to blocked sections of applications, and so on. An excellent article on this subject is on the hub - iPhone development: Integrating In-App Purchases . Yes, Apple takes back the required 30 percent of revenue.
Those who wrote “Murzilka” in childhood should understand the essence of this option of earning. The usual subscription to magazines, newspapers, music, videos ... The publisher sets the price, Apple takes a standard 30 percent. The service was launched on February 15, 2011, details can be found in the official press release .
Everything is also very simple here - the client pays money, you are developing an application. Usually it is image-building, corporate applications or presentation of any client services for iOS.
The last way to make money is the easiest way to pay for work. Since everything happens according to the usual scheme, without financial relations with Apple (except for registration fees). In other cases, you need to take care of the issues of earning money. Comments with positive / negative experiences on this subject are welcome.
You have two ways:
The difference between them is the following: when participating in an Enterprise program, you cannot, unlike a regular program, post your applications in the AppStore, but you can develop in-house applications - applications for internal use in your company, without open access. If you decide to develop an in-house application for your customers, they are encouraged to join this program. The iOS Developer Enterprise Program Support Center explains this question (the last question on the list)
Otherwise, the programs give the same opportunities:
A short note on Ad Hoc is a way to distribute applications without the AppStore, by directly installing the application build file via iTunes. And here the question arises: how does this differ from those in-house applications that the Enterprise program attracts us with? By the fact that in the standard program you can register no more than 100 devices per year for installing your applications on them, that is, there can be no talk about any commercial distribution. Moreover, Ad Hoc distribution is focused primarily on testing products - programs installed in this way can only work on devices for 6 months.
When registering, you can register either as a company or as an individual developer.
When registering a company, you need to be prepared to provide certain documents.
For Russian companies, you need to provide an extract from the Unified State Register of Legal Entities (USRLE) and its translation. The name of the company upon registration must match the name on the statement. In this article, you can learn more about company registration - Register an application in the AppStore - we did it!
Usually the entire registration procedure takes 3-4 weeks.
It is much easier for individual developers to register - after filling out all the forms on the site they will ask you to print, fill out an application document (requires passport data, card details, address of residence, etc.) and send it by fax to Apple. After reviewing this document, Apple deducts $ 99 from your account and you become a registered developer. The whole procedure takes 3-4 days. If you have problems finding a fax, then you can use some online resource, for example - www.myfax.com/free
You will definitely need Mac OS X, since on no other platform can you work with the iOS SDK. There are many different options for developing iOS applications, but at least to build and download the application in the AppStore you will need Mac OS X. Yes, recently there are various services that, for you, will offer to post applications for you and various other services, and about them on a habr too wrote . But, in my opinion, all this is not serious so far and it’s not worthwhile to use the services of such offices when developing any meaningful application. Although, of course, it all depends on the task, if you can make money using similar services, then why not :)
Ways to get Mac OS X:
Mac mini is now quite affordable thing, although, of course, you always want more, and there Apple's prices are already starting to bite.
Regarding the other two options: I heard reviews of people who are quite happy with the hackintosh or with Mac OS X on VMWare, but there is also enough negative experience. It all depends on the iron, the directness of the hands and your desire.
In general, if you want to develop for iPhone, the operating system should not become an obstacle.
I want to clarify the difference between native and web applications for iPhone / iPad, before we move on to development tools. The former are distributed through the AppStore (or in-house applications), the latter are just a web site or part of it, specially configured for the iPhone.
Available web applications can be viewed here - www.apple.com/webapps.
To publish your web application in this directory, you need to register with the iOS Developer Program. When publishing, you are asked to indicate the application url and some additional information (company website, upload icon, and so on).
As you understand, you don’t need any special, different from the usual web-developer tools for writing such applications, although now there are quite a few frameworks that simplify the creation of such applications and make them more like native applications.
Among users of iDevices, web applications are not particularly popular, and many, at least in Russia, do not even suspect them. So further we will consider only questions of development of native applications.
Here I will touch upon only a few tools - after Apple lifts the ban on non-native development tools, almost every day new IDEs and frameworks appear.
This is primarily the Objective-C language and the Xcode development environment (for the company with Interface Builder, iPhone simulator and other applications from the developer package). You can still write in C and C ++, but without Objective-C at some points you still can not do.
There are a lot of articles on this language on the hub - you just have to look through the Apple iOS development blog . Objective-C has a certain charm (although different opinions are expressed on this point ), it is a bit complicated at the beginning of development, the paradigm inherited from Smalltalk makes itself felt - but then delays.
The main argument in favor of using Apple's tools is that native development tools, all other things being equal, will in any case produce faster and better code than any other tools.
Recently JetBrains announced their development environment for Objective-C - appCode (it’s a pity that they turned out to be from the super-name CIDR - one company with a product called Cider asked them not to use a similar abbreviation), so even here there will be a choice. Competition, I hope, will lead to better quality.
monotouch.net
MonoTouch allows you to develop applications for iDevices in C #. A tangible minus for .NET developers is the price - $ 399 for an individual license.
What attracts me along this path: in conjunction with Mono for Android, you can potentially cover a fairly large segment of the mobile market (iOS / Android / WP7), without major code changes.
Adobe Flash Pro CS5 supports iPhone development. Another thing is that so far this path has not been thoroughly developed and a certain dampness is present in the approach.
www.appcelerator.com
www.phonegap.com
Two headlining frameworks in mobile cross-platform development. A brief description can be found in this article . They allow you to use javascript and HTML5 to develop native applications for several platforms at once, including iOS.
unity3d.com
Great game development tool. It supports many languages and platforms. But you have to pay for all the good - a Unity Pro license costs $ 1,500 plus $ 400- $ 1,500 will need to be paid for an add-on for development for iOS.
You can look at the price details here - store.unity3d.com/shop
Comparison of the capabilities of various licenses here - unity3d.com/unity/licenses
For myself, for now I choose Xcode and Objective-C, but I look steadily towards cross-platform development.
Another small point if you decide to develop custom applications
Deadline for work is not always up to you. Before appearing in the AppStore, the application undergoes a review that lasts at least 5 days. If the application was rejected for any reason, then, after making changes, it will be necessary to defend the entire queue again. So to promise the client to release the application in the AppStore by a certain date, if you do not have two or three weeks in stock, the act is rather reckless. Better promise to show the application on the device by the agreed date and explain the situation with the review. To install the application on the device, you need to know its UDID. That is, even if you work remotely, you can always build the application and send it to the customer so that he sees it on his device.
Thanks for reading the article!
Anonymous developer
“We do not plan to publish in the AppStore, is this possible? And we also want a version for Android ... ”
An anonymous customer
If you decide to develop applications for the iPhone / iPad, then most likely you will be interested in the following questions:
- How can I make money on applications?
- How to register in the iOS Developer Program and what gives registration?
- Do I need a Mac?
- What tools can be used for development?
How to earn?
Paid apps on the AppStore - from $ 0.99 to $ 999.99
Everything is very simple / complicated here. Write an application, put it in the AppStore, set a price, get money from satisfied customers. 30% of the price is taken by Apple. There is a chance both to take over the world and waste your time in vain - it all depends on you.
The upper bar of the price is real - in the AppStore there were already at least two applications for a thousand dollars:
“BarMax CA” - an application for law students;
“I Am Rich” is an application showing an image of a red, apparently gemstone. It was removed from the store a day after publication, but 8 lucky people still managed to get it. Now it has returned to the AppStore with a price of $ 10, one of the features indicates that the application is sold for only 1/100 of the original price.
App Advertising - iAd
Here, too, everything is quite transparent: place an advertising banner in your application, Apple shares revenue with you for displaying ads and for clicks on the banner. On a habr already wrote about this service and even told how to add banners in the applications . It remains to add that the cost of advertising is 1 cent - per impression, $ 2 - per click. The developer receives 60 percent of the proceeds.
In-App Purchasing - In-App Purchases
Apple provides the opportunity to trade in your applications with various worldly values - resources in games, access to blocked sections of applications, and so on. An excellent article on this subject is on the hub - iPhone development: Integrating In-App Purchases . Yes, Apple takes back the required 30 percent of revenue.
Subscription Service
Those who wrote “Murzilka” in childhood should understand the essence of this option of earning. The usual subscription to magazines, newspapers, music, videos ... The publisher sets the price, Apple takes a standard 30 percent. The service was launched on February 15, 2011, details can be found in the official press release .
Custom Application Development
Everything is also very simple here - the client pays money, you are developing an application. Usually it is image-building, corporate applications or presentation of any client services for iOS.
The last way to make money is the easiest way to pay for work. Since everything happens according to the usual scheme, without financial relations with Apple (except for registration fees). In other cases, you need to take care of the issues of earning money. Comments with positive / negative experiences on this subject are welcome.
How to register with the iOS Developer Program
You have two ways:
- iOS Developer Program - $ 99 per year
- iOS Enterprise Developer Program - $ 299 per year
The difference between them is the following: when participating in an Enterprise program, you cannot, unlike a regular program, post your applications in the AppStore, but you can develop in-house applications - applications for internal use in your company, without open access. If you decide to develop an in-house application for your customers, they are encouraged to join this program. The iOS Developer Enterprise Program Support Center explains this question (the last question on the list)
Otherwise, the programs give the same opportunities:
- access to development tools and SDKs (including beta versions);
- Access to the Apple Developers Forums
- access to training resources (sample programs, articles, videos);
- The ability to use Ad Hoc to distribute applications
- the ability to test your applications on iPad, iPhone, iPod-touch;
- the ability to receive technical support.
A short note on Ad Hoc is a way to distribute applications without the AppStore, by directly installing the application build file via iTunes. And here the question arises: how does this differ from those in-house applications that the Enterprise program attracts us with? By the fact that in the standard program you can register no more than 100 devices per year for installing your applications on them, that is, there can be no talk about any commercial distribution. Moreover, Ad Hoc distribution is focused primarily on testing products - programs installed in this way can only work on devices for 6 months.
When registering, you can register either as a company or as an individual developer.
When registering a company, you need to be prepared to provide certain documents.
For Russian companies, you need to provide an extract from the Unified State Register of Legal Entities (USRLE) and its translation. The name of the company upon registration must match the name on the statement. In this article, you can learn more about company registration - Register an application in the AppStore - we did it!
Usually the entire registration procedure takes 3-4 weeks.
It is much easier for individual developers to register - after filling out all the forms on the site they will ask you to print, fill out an application document (requires passport data, card details, address of residence, etc.) and send it by fax to Apple. After reviewing this document, Apple deducts $ 99 from your account and you become a registered developer. The whole procedure takes 3-4 days. If you have problems finding a fax, then you can use some online resource, for example - www.myfax.com/free
Do I need a Mac?
You will definitely need Mac OS X, since on no other platform can you work with the iOS SDK. There are many different options for developing iOS applications, but at least to build and download the application in the AppStore you will need Mac OS X. Yes, recently there are various services that
Ways to get Mac OS X:
- buy a Mac (thanks Cap!)
- hackintosh.com
- virtual machine
Mac mini is now quite affordable thing, although, of course, you always want more, and there Apple's prices are already starting to bite.
Regarding the other two options: I heard reviews of people who are quite happy with the hackintosh or with Mac OS X on VMWare, but there is also enough negative experience. It all depends on the iron, the directness of the hands and your desire.
In general, if you want to develop for iPhone, the operating system should not become an obstacle.
The difference between web and native applications
I want to clarify the difference between native and web applications for iPhone / iPad, before we move on to development tools. The former are distributed through the AppStore (or in-house applications), the latter are just a web site or part of it, specially configured for the iPhone.
Available web applications can be viewed here - www.apple.com/webapps.
To publish your web application in this directory, you need to register with the iOS Developer Program. When publishing, you are asked to indicate the application url and some additional information (company website, upload icon, and so on).
As you understand, you don’t need any special, different from the usual web-developer tools for writing such applications, although now there are quite a few frameworks that simplify the creation of such applications and make them more like native applications.
Among users of iDevices, web applications are not particularly popular, and many, at least in Russia, do not even suspect them. So further we will consider only questions of development of native applications.
What tools can be used for development?
Here I will touch upon only a few tools - after Apple lifts the ban on non-native development tools, almost every day new IDEs and frameworks appear.
Native development tools
This is primarily the Objective-C language and the Xcode development environment (for the company with Interface Builder, iPhone simulator and other applications from the developer package). You can still write in C and C ++, but without Objective-C at some points you still can not do.
There are a lot of articles on this language on the hub - you just have to look through the Apple iOS development blog . Objective-C has a certain charm (although different opinions are expressed on this point ), it is a bit complicated at the beginning of development, the paradigm inherited from Smalltalk makes itself felt - but then delays.
The main argument in favor of using Apple's tools is that native development tools, all other things being equal, will in any case produce faster and better code than any other tools.
Recently JetBrains announced their development environment for Objective-C - appCode (it’s a pity that they turned out to be from the super-name CIDR - one company with a product called Cider asked them not to use a similar abbreviation), so even here there will be a choice. Competition, I hope, will lead to better quality.
Monoouch
monotouch.net
MonoTouch allows you to develop applications for iDevices in C #. A tangible minus for .NET developers is the price - $ 399 for an individual license.
What attracts me along this path: in conjunction with Mono for Android, you can potentially cover a fairly large segment of the mobile market (iOS / Android / WP7), without major code changes.
Flash
Adobe Flash Pro CS5 supports iPhone development. Another thing is that so far this path has not been thoroughly developed and a certain dampness is present in the approach.
Titanium & PhoneGap
www.appcelerator.com
www.phonegap.com
Two headlining frameworks in mobile cross-platform development. A brief description can be found in this article . They allow you to use javascript and HTML5 to develop native applications for several platforms at once, including iOS.
Unity3d
unity3d.com
Great game development tool. It supports many languages and platforms. But you have to pay for all the good - a Unity Pro license costs $ 1,500 plus $ 400- $ 1,500 will need to be paid for an add-on for development for iOS.
You can look at the price details here - store.unity3d.com/shop
Comparison of the capabilities of various licenses here - unity3d.com/unity/licenses
For myself, for now I choose Xcode and Objective-C, but I look steadily towards cross-platform development.
Another small point if you decide to develop custom applications
Deadline
Deadline for work is not always up to you. Before appearing in the AppStore, the application undergoes a review that lasts at least 5 days. If the application was rejected for any reason, then, after making changes, it will be necessary to defend the entire queue again. So to promise the client to release the application in the AppStore by a certain date, if you do not have two or three weeks in stock, the act is rather reckless. Better promise to show the application on the device by the agreed date and explain the situation with the review. To install the application on the device, you need to know its UDID. That is, even if you work remotely, you can always build the application and send it to the customer so that he sees it on his device.
Thanks for reading the article!