
I want to share my experience in developing applications for iOS (IP-calculator). The experience can not be called successful, the more interesting, and I hope my post will be more useful for novice developers.
I just want to say that my professional activity is not related to software development, and I didn’t have programming experience for mobile platforms before iOS (except for writing simple Qt tools for Symbian).
The actual acquaintance with iOS began with the acquisition of the iPhone. And immediately wanted to write something for him. Since I often come across IP addresses at work, it’s not so easy for me to compute something besides the number of hosts on the network with a given mask, and the IP calculator is not always at hand (IP); an idea arose to write a simple program that would output some useful information to the specified IP address and mask. It is clear that the App Store already had a bunch of such applications. However, after reviewing virtually the entire list (about 30 applications), I did not find one that I would like to use. This strengthened me, and I firmly decided to write a fairly simple IP calculator with a strict / clean design. Make sure I did it - you can
here .
')

For development, I used MacOS Snow Leopard (10.6). In my opinion, for people who have only Windows OS (and not having a mac) it is easiest to use MacOS on a virtual machine. I do not understand what caused the dispute "Macintosh vs. Hakintosh ”, when you can“ one-click ”to start working with MacOS having a Windows host OS. It seems to me that for beginners (and not only) developers this is the best option.
I got used to the Objective-C language and the development environment very quickly. This helped me two books.
The first (“Beginning iPhone 4 Development: Exploring the iOS SDK” by David Mark, Jack Nutting & Jeff LaMarche) is very simple, in which everything is literally chewed.
The second (“Programming in Objective-C 2.0”, Stephen G. Kochan) is much more interesting, and, in my opinion, even in some sense fundamental. Special attention is given to the issue of memory management. I recommend to novice developers, first of all, to get acquainted with this topic (all attention to the lifetime of objects and retain / release!) And the Leaks tool in XCode.
In terms of development, I did not encounter any difficulties, except for the lack of the possibility of using some classes when programming for older versions of iOS (3. *). In particular, this concerns gestures (UI ... GestureRecognizer) and regular expressions (NSRegularExpression). Judging by the App Strore, many developers, not too zealous, indicate in the form of a minimum version of iOS 4.0 or even 5.0 (!). Perhaps they are right, and not many devices with old iOS, but I did not see statistics, so I do not want to rely only on new versions of iOS.
If anyone is interested, the problem with the lack of GestureRecognizer can be solved
like this , and with the absence of the NSRegularExpression
like that .
Those who want to figure out how to implement a pop-up menu, similar to what is used in the iPhone's address book to copy contact numbers,
this article is useful.
The process of purchasing a license and placing the program in the App Store is quite simple to understand (the only thing that needs attention is filling out Bank Info in iTunes Connect, I advise you to contact the bank, if you have any questions or doubts save time). By the time: 7 days passed from the moment of sending the fax to the moment of receiving the developer license, from the moment of downloading the program to iTunes Connect, 6 days passed from the moment of its acceptance and placement in the App Store (taken the first time).
The dynamics of purchases, you can appreciate the screenshot below. The program for some time kept in the first six (it occupied 3, 5, 6 places), then dropped out of this six and ceased to be bought by someone.

A total of 17 purchases were made, the distribution by country is as follows:
- USA - 7
- France - 3
- Russia - 3
- Austria - 1
- Italy - 1
- Japan - 1
- Niger - 1
I will note one subtlety - it is extremely necessary to approach the tags that you specify when you post a program, especially to abbreviated forms of words. Do not expect that by specifying the word “automobile” as a tag, your program will be issued in iTunes on the request “auto”. A search in it is stupid enough to understand that these may be synonymous.
I consider my first experience in developing for iOS to be satisfactory, there is no positive result, but also a negative one. I will be glad to comments / advice / comments / questions.
UPD Thanks to
Infernal for
statistics on the versions used by iOS.
I do not urge to violate copyright and use for the development of Mac OS belonging to other people (violating, by the way, the license agreement). A trial version of Mac OS (valid for 31 days, for example) could solve this problem.