Developing iOS apps is a lot harder than you think.

Source: Internet
Author: User
Keywords Product development developing iOS applications iOS developers

This article is a blog post by the iOS developer of Singapore, Kent Nguyen, which has created a wide spectrum of echoes in the iOS development Community and is translated as follows.

Let's go straight to the topic: how much does it cost to make an iphone application?

The most common question is also the hardest to answer, and many of my friends, and the customers who have a smattering of technical know-how, have asked me this question. Usually, I will first give a general quote, this offer is not meticulous to the need to sign a contract to confirm each function point. Even so, every time I quote an export, without exception, all of them startled (certainly not because of cheap).

To tell you the truth, I have no lion. Take a look at this famous post on StackOverflow to discuss how much money is needed to develop a twitterific, and then expand the scope of the discussion to develop a reasonable cost range for iOS applications. Although this post was published in 2008, and the best answer to the post was answered by a developer from Twitteriffic in 2010, the numbers discussed in the post are still very reliable and I expect to remain valid by the end of 2012. And my offer and the number of this post in comparison, it is dwarfed.

The trend now is that any company that wants to have an iOS client in any business, and this trend seems to be still hot in 2012. So I thought about writing this blog post, and I wanted to talk about the details and the variables that would come up with an iOS app to explain why iOS apps are so expensive to develop. If you're thinking about an iOS app and you're doing business instead of technology, if you're currently bidding or just trying to get to know, my blog will help you. Of course, what I'm talking about is not limited to iOS apps, it's basically true for mobile apps like Android, Windows phone, or blackberry (if rim is still alive).

Need careful consideration before developing

Don't make your head decisions, you need to think more than you think before you start. I usually help or guide the client through the following elements:

One: Talking to customers about their mobile apps, what surprises me most is that they never wanted to support an iphone app that needed to be covered in every aspect. Their imaginary iphone is independent in the universe, so simple that they want me to quickly offer a project budget without having to discuss many details. I asked them, "Do you think about the later server?" Do your applications need to do data communication with back-end servers? What, you don't understand? Well, I'll say it again in the language of the Earth: "Your app doesn't require a user to register, have you considered where the user's data is stored?" We need a place to save the data for later use. "The first time I met such a client, I was furious. Later I found that this is not the customer's fault: I was programming, CS architecture for me, like eating and sleeping is a no-brainer thing, and my customers are full of some Gaofu, they understand a hair CS structure!

So, if you don't know much about technology, listen to me carefully: if you want to do mobile apps that require user registration and login, or if you want to control some of the output of mobile apps at any time, even if you just need a user feedback questionnaire so simple, then you have to get a backend server.

Two: OK, now you know you need a backend server. At the same time you need to find a way to get your iOS app and your server to be able to talk to each other and receive data or something. No, this question is not a simple answer to what standard Plug and Play can be solved, not as you imagine! All things need to be customized to develop, which is like inventing a language: you want your server and your application to communicate in a language, but you don't want others to understand the language.

In the jargon this is the development of the server-side API interface, or the abbreviation API. These APIs should be in place before the iphone client is developed. Why? Because you have to set the words and grammar of a language before you can speak it in this language! Well, that brings out the 3rd-how to develop these APIs.

Third: The successful customization of the API is half of the project's success (and vice versa), so don't take it lightly. You have to think about your business data model, business processes, the parameters that the calling business needs to provide, how the data interacts when a particular event occurs, and so on. In short, what we have to do is develop a website that runs your business process, except that all the results of this site are not presented in the form of a Web page, but rather as a line of text and numbers. For example: A Login Success Feedback page contains only yes a word.

iphone applications need access to these predefined interfaces and provide the necessary input (such as username and password) in predefined formats, and then resolve the server-side feedback (yes or no). Therefore, no mobile applications can automatically contain the user registration and login function.

Server-side development needs to consider too many issues: Select the server, choose what language to develop, where the host can increase access speed, and so on, I will not expand here. If all this is unfamiliar to you, then you'd better ask the team's technical leaders or simply let the developers make the decision.

Four: So, on the server-side API, you can either have your own technical team develop it, then hand over the perfect API documentation to the iphone app developer, or you'll pay the iphone app developer extra to get the job done. The iphone app developer you're looking for may or may not be developing server-side. If he does, I recommend that he also be responsible for server-side development, because he knows exactly what server-side APIs are needed in the iphone application.

If your server-side API already exists, you should also consider making it easy for the iphone application developer to communicate with the server development team in addition to providing the relevant documentation to the app, because in most cases the iphone app needs to add some new interfaces to the existing API.

Now let's look at the iphone application development itself

For half a day, we finally started talking about the iphone app development itself. In general, you can't do anything on the iOS platform. You'd better make sure that all the requirements are well before the developers write the code. This is not the same as the development site, in accordance with the implementation of the contract to develop iOS applications, the development process on the requirements change can be very low capacity:

User interface: Whether you plan to adopt the iOS standard interface or the custom element, make sure that it is clear before the development begins, because the application architecture is designed according to the interface and the user's use process. A good example is using the iOS Standard tab bar at the bottom of the interface, and then if you want the icon in the tab bar to be colored, the code churn is not as small as you think!

Coupling between code: If you are developing a Web site, you can add a page or a link to it at your own discretion. iOS application is not so simple, a lot of things at the outset to design, a later change will implicate a lot of things, the specific reason is you can not understand. After the iOS application code is written, can you change it? Yes, but be careful. This is like designing a circuit board, if you accidentally put that line wrong, the whole circuit board will not work. Some people say that the good structure of the program can be very high ductility, it is purely theoretical. Adding an email button to the about screen may require only a few lines of code, and adding a button to Sina's meager buttons (the original is to add a Facebook like) is totally not easy!

Let an iphone app also support the ipad: If you're going to choose the biggest "demand change," it's definitely a well-deserved choice. The reason is simple: supporting the ipad is not a damn thing. Additional functionality!ipad applications are basically more complex than iphone apps, and the interface design and user experience are quite different. I asked you to build an electric bike and then turn it into a gasoline-burning motorcycle. Electric bikes look like motorcycles, but making them is totally different.

For the popular Facebook app, its iphone and ipad versions look similar, and the actual user process is completely different. Not only does the difference in the interface lead to additional work, but the need for a backend server API may be different. With a familiar application Denso (I am familiar with it because I developed it), its ipad version has a few more features than the iphone, which requires additional server-side APIs to support. Remember, the iphone and ipad apps have a completely different user experience requirement.

Are you ready to start?

Hopefully, this article will help you and your team understand all aspects of mobile application development behind the scenes. Unless you're going to do a stand-alone application as simple as a calculator, you'll find it hard to handle at a very low cost. To sum up, if you think the cost of outsourcing is too high, then you have to recruit yourself to develop.

Of course, if you decide to outsource mobile application development, I would also like to remind you of corporate politics. If you're working in a big company or a strictly institutional institution, it's important for you to help contract developers with the rules and regulations, and you can even make some policy changes if necessary. I've been in touch with a couple of big business customers, and when I asked to see their server-side data interfaces, they showed a disturbing look. I think this may be because they are subject to company rules and cannot disclose information, that's understandable; or they haven't figured out what to do in this situation; or their brand system egg hurts to have the company logo! on every screen of mobile apps. Eventually I didn't work with such corporate clients, Because I can't imagine how tragic it would be if one day I needed to add some server-side API interfaces, and their regulations and processes to toss.

PS: Developing mobile applications is time-consuming and you'd better be patient.

Kent Nguyen compiles: Bole online – Chen

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.