Developing an iOS app is not that easy

Source: Internet
Author: User

Guide: This is an article from the IOS developer in Singapore, Kent Nguyen, published at the end of January. This piece of text is widely circulated in the IOS Development circle, which is reflected in more than 150 comments from the original text and is now translated as follows.

  Let's get to the point: how much does it cost to make an iphone app?

This is the most common problem, a lot of my friends (mostly business people in suits), and my customers who have been to technical smattering, they have asked me this question. Usually, I will give a rough quote, this offer is not detailed to the point where you need to sign a contract to confirm each function point. Even so, whenever I quote an exit, the other side is not without exception of the surprise (of course not because of the cheap).

To tell the truth, I have no everytime. Take a look at this famous post on StackOverflow and talk about how much money is needed to develop a twitterific such an application, and then expand the scope of the discussion to a reasonable cost for developing an iOS app. Although this post was released in 2008, the best answer for the post was answered by a developer from Twitteriffic in 2010, but today, the number discussed in the post is still very reliable, and I expect it to remain valid by the end of 2012. My offer is dwarfed by the numbers in this post.

The trend now is what companies want to engage an iOS client in any business, and this trend seems to remain hot in 2012. So I'm thinking about writing this blog post, and I'd like to talk about the various details and variables that come up with developing an iOS app that explains why iOS app development costs are so expensive. If you're thinking about an iOS app and you're doing business rather than technology, if you're currently bidding or just want to know, then my blog will help you. Of course, what I'm saying is not limited to iOS app development, which is basically true for mobile apps such as Android, Windows phone, or blackberry (if Rim can live).

  Needs to be carefully considered before development.

Don't make a head-to-head decision, you need to think more than you think before you start. I usually help or instruct clients to pass through the following elements:

One: Talking to customers about their mobile apps, what surprises me most is that they never want to support an iphone app to run, and everything that comes with it. They imagined the iphone to be independent in this universe, so simple that they wanted me to give a project budget quote quickly, without having to discuss the details. I asked them: "Do you think about the server after the event?" Does your application need to communicate with the backend server for data? "What, do not understand?" Well, I'll use the language of the Earth to tell the question again: "Your application does not require user registration, have you considered where to store the user's data?" We need a place to save the data that will be used later. "The first time I met such a customer, my brother was simply angry. Later I found that this is not the customer's fault: I am programming, CS architecture for me is like eating sleep is the same thing, and my client is full of some Gaofu, they know a MAO CS structure!

So, if you don't know the technology, listen to me carefully: if you want to do mobile apps that require users to sign up and log in, or if you want to control some of the output of your mobile app at any time, or even if you just need a user feedback questionnaire so simple, then you have to get a back-end server.

Two: Well, now you know you need a back-end server. You also need to find ways to get your iOS app and your server to talk, to receive data from each other. No, this question is not what the standard Plug and Play can solve the problem, not as you think! Everything needs to be custom developed, which is like inventing a language: you want your server to communicate with your app in a single language, but you don't want others to understand the language.

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

Three: The successful customization of the API is half the success of the project (and vice versa), so don't take it lightly. Consider your business data model, the business process, the parameters that are needed to invoke the business, how the data interacts with each other when a particular event occurs, and so on. To put it simply, all 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 in text and numbers on a line of lines. For example, a login successful feedback page contains only a word of yes.

iphone apps need to access these pre-defined interfaces and provide the necessary input (such as user name and password) in a predefined format, and then parse the server-side feedback (yes or no). Therefore, no mobile app can automatically contain user registration and login functions.

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

Four: So, with regard to server-side APIs, you either have your own technical team develop it, and then hand over the perfect API documentation to iphone app developers, or you pay the iphone app developer extra pay to fix it. The iphone app developer you're looking for may also be a server-side developer or not. If he does, I'd recommend that he also be responsible for server-side development, because he knows what server-side APIs are needed in an iphone application.

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

  Now let's look at the iphone app development itself

For the most part of the day, we finally started talking about the iphone app development itself. In general, everything on the iOS platform doesn't work. You'd better confirm all the needs before the developer writes the code. This is not the same as developing a Web site, and developing an iOS application in accordance with the contract that was signed may have a low capacity to accommodate changes in requirements during development:

  user Interface : Whether you plan to use the iOS standard or custom elements, it's important to make sure before development starts because the application architecture is designed based on the interface and user process. A good example is the use of the iOS Standard tab bar at the bottom of the Interface (tab bar), and then if you want to make the icon in the tab bar color, this code churn is not as small as you think!

  coupling between code : If you are developing a website, you can add a page or a link at will. iOS app is not so simple, a lot of things at the beginning of the design, a late change will implicate a lot of things, the specific reason is that you can not understand. After the iOS app's code is written, can I change the line? Yes! But be careful. It's like designing a circuit board, and if you accidentally put that line wrong, the entire board will not work. Some people say that a well-structured program can be highly malleable, which is purely theoretical. Adding an e-mail button on the About screen can only take a few lines of code, and adding a button that forwards to Sina's meager buttons (the original is to add a Facebook like) is simply not so easy!

  let an iphone app also support the ipad: If you want to choose the most pit Dad "demand change", then this is absolutely deserved. The reason is simple: support ipad is not TMD what additional features! ipad apps are basically more complex than iphone apps, and the interface design and user experience are very different. I ask you, make an electric bicycle, and then turn it into a petrol-burning motorcycle, this can be a thing!? Electric bikes look like motorcycles, but making them is a different thing.

With the popular Facebook official app, its iphone and ipad versions look similar and the actual user operation process is completely different. Not only is the interface different, but the need for the backend server API may not be the same. With an app I'm familiar with Denso (I'm 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 user experience requirements for iphone and ipad apps are completely different.

  Are you ready to start?

Hopefully this article will help you and your team understand all aspects of mobile app development behind the scenes. Unless you're going to be a simple standalone application like a calculator, it's hard to get it done at a very low cost. In summary, if you think outsourcing costs too high, then you have to recruit themselves to develop.

Of course, if you decide to outsource mobile app development, I would also like to remind you that corporate politics . If you are working in a big company or a firm with a strict system, it is very important for you to help the contract developers to get rid of the red tape of the rules and regulations, and even make some policy modifications when 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 very uncomfortable look. I think it's understandable that they are subject to the company's rules and that they cannot disclose information, or that they have not yet figured out how to operate in this case, or that their brand system hurts to have a company on every screen of the mobile app logo! In the end, I didn't work with a corporate client because I couldn't imagine how tragic it would be if I had to add some server-side API interfaces, and their rules and procedures.

PS: Developing mobile apps is time-consuming and you'd better be patient. Like this: programming sentiment: A serious courier can also succeed

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.