Everyday, new applications for iPhone are created and the success of some is so huge that it is difficult not to notice it. You think you have the idea of the next revolutionary application? It might be easier to create it than you think. Although you need to learn a bit of programming, most of the interface can be manipulated graphically. It will take time, knowledge and patience, but you could create the new Flappy Bird! Implementing the development environment 1. Download and install Xcode. Xcode is the development environment in which all iPhone applications are created. You can download Xcode for free, but you will need iOS X 10.8 or higher to make it work. There is no official solution to running Xcode on Windows or Linux. This means that if you want to develop an iPhone application without having a Mac, you are going to have to invest in one of these computers. To develop applications for iOS 8, you must have iOS 8 SDK and Xcode 6.0.1. You can find them on the Apple website. IOS 8 ADK contains a certain amount of APIs that offer you many possibilities related to creating such as Touch ID or iCloud integration. To develop applications for iOS 10, you need to have iOS 10 SDK and Xcode 8. you can also find them on the Apple site. In this version of Xcode, there are significant SDK and Swift language changes that you will need to consider. After this version of the Swift language, there will be no more changes to break the Swift language code. Download Xcode here. 2. Install a good text editor. Although it is possible to encode directly into Xcode, you will find it easier to work with large chunks of code using a text editor that recognizes the syntax of the programming language. Among the most popular choices you can download TextMate and JEdit. 3. Install a vector image creation program. If you want to create your own images and your own designs, you need to have a program that can create vector images. Vector images can be enlarged without losing quality and are an essential part of a good application. CorelDraw, Adobe Illustrator, Xara Designer and Inkscape are among the best known. DrawBerry is also a program for creating aesthetic and free vector images. It is not as powerful as professional programs but it is perfect for beginners and for casual users who do not want to pay for a program to use it once. 4. Familiarize yourself with Objective-C. Objective-C is the programming language used to create the functionality of any application on iPhone. It manages data and manipulation of objects. If you already have bases in C or Java, Objective-C should be simple to understand, at least in large part. Although it is possible to create a basic application without knowing Objective-C, you will not be able to perform more complex actions without coding them yourself. Without Objective-C, your application will be a succession of empty screens. There are many online tutorials and inexhaustible sources of information about Objective-C. If you really want to get serious about developing iPhone apps, it might be very useful to have this kind of resources on hand. The iPhone application developers forums, the Google group on the iPhone SDK and StackOverflow are among the most popular communities on the subject. A new possibility is to use the Swift language (which followed Objective-C) to create your application. Swift is more modern and the syntax is simpler. 5. Consider using a professional. If you do not want to learn Objective-C or if you do not have the artistic fiber, there are many freelancers and development teams who could take care of various aspects of your project. It is rather complicated to call a professional, but this can save you a lot of problems if you do not like to program. Make sure that all parties involved sign a confidentiality agreement and that the means of payment have been put in place before starting. ODesk and Elance are the two most known freelancers sites on the Internet, each of which brings together hundreds of developers and artists of all levels. 6. Create a developer account. You must create an Apple developer account before you can distribute your app on the App Store or give it to someone else to test it. This account costs $ 99 per year and you will need to fill in your bank account number. You can create your account on the iOS Dev Center website. 7. Download test applications. Once you have registered with your developer account, you will have access to Apple's development resources. These resources include several sample projects that can give you a more accurate idea of how application development works. Find an example that resembles the type of application you want to develop and modify the Xcode to see how it works. Thinking about the app 1. Define the concept. Before you even open the Xcode for the first time, you must have thought about your application and its main features. You could prepare a schema that identifies the functionality of the application, gives you an idea of the user interface and the various screens you will need, as well as a basic idea of the types of systems to be implemented. Try to follow the diagrams of your document as much as possible during the development of your application. This will allow you to focus on the features you want to give it. Try to draw at least one diagram for each of the different screens. 2. Determine your audience. The audience for your application will require you to choose the designation and functionality of the application. For example, an app for remembering things to do will have a different audience than a zombie shooter. 3. Your application must meet a need. If your application has some use, it must offer a solution to a problem in a unique way or at least offer a better solution than the one proposed by the applications currently on the market. If your app is a game, it must have one or more unique features that allow it to stand out from other games and attract its players' audience. 4. Think about the content. The type of content you want to show to the user will determine the interface you will set up. For example, if your app takes care of photos, you need to create an interface that allows you to view photos and navigate between them easily. 5. Take good habits of creating user interfaces. The interface should never prevent the user from using your application. This means that the options must be clearly visible and the user should never wonder what button does what. If you use icons, they must clearly represent their functions. Navigation within the application must be fluid and natural. The user interface design is as much an art as a science. You will probably change your design permanently as your project evolves. Create the App 1. Create a new project in Xcode. Start Xcode and start a new project by clicking on the File menu . Then click Application under the iOS header on the left side of the window. In the templates section, choose Empty Application . There are many models available, all designed for various tasks. Begin with an empty pattern until you feel more comfortable with the development process. You can then try one of the more complex models once you have become familiar with the simplest operation. You will need to give your application a name, a company identifier and a class prefix. If you have not received a company ID from Apple, enter com.example. For the class prefix, enter XYZ. Choose iPhone from the Devices menu . 2. Create a Storyboard . The layout is a visual representation of all the screens in your application. It shows you the contents of each screen and the transitions between the screens. The mock-up tool will help you create smooth transitions between your application screens. Click File → New → File . Under the iOS header, click User Interface . Click Storyboard , and then click Next . Choose iPhone from the Devices menu, and then name the file called Main (the main file). Make sure it is registered in the same location as your project. 3. Assign the layout to your project. Once you have created the layout, you must assign it to the main interface of your application. This will load the mock-up when the application is launched. If you do not assign the mock-up, nothing will happen when you launch the application. Click on the name of your project in the navigation tree on the left. Find the header called Targets in the main frame. Click on your project in the list that appears. Find the Deployment Info section on the General tab. Type Main.storyboard in the main interface field. 4. Add your first screen using a view controller. View controllers decide how the user sees the content. There are a variety of predefined view controllers, including standard views and arrays. You will add view controllers to your layout to tell the application how to display the content to the user. Click the Main.storyboard file in the project navigation menu. You will see an empty frame appear in the interface builder window ( Interface Builder ). Find the object library ( Object Library ). It is located at the bottom of the right frame and you can select it by clicking on the small cube-shaped button. This will allow you to load a list of objects that you can add to your frame. Drag the view controller object ( Viwe Controller ) onto the frame. Your first screen will appear on the frame. Your first scene is over. When the application is launched, the view controller loads the first screen. 5. Add interface objects to your first screen. Once you have set up the view controller, you can start filling the screen with the interface objects you need, such as labels, text fields, and buttons. You can find the interface objects in the list of the object library where you also found the view controller. Drag objects from the list to your screen to bring them up. You can resize most objects by clicking and holding the mouse on the edges of the object, and then moving the mouse. When you resize an object, you will see lines appear on the screen to guide you and make sure that all objects are aligned. 6. Customize the objects you add. You can adapt the properties of each object you add, allowing you to create a more personalized and intuitive interface. For example, you can put a default text in a text field to tell the user what to put there. Select the objects you want to customize and click the Attributes Inspector button at the top of the right frame. This button looks a bit like a shield. Adapt the object to your preferences. You can change the font, font size, text color, alignment, background images, default text, outline type, and more. The options available will differ depending on the item you are customizing. 7. Add more screens. As your project grows, you may need to add more screens to show the content that makes your app useful. For example, if you create an application to remember things to do, you'll need at least two screens: a screen to record new things to remember and a screen to view the complete list. You can add more screens by dragging view controller objects onto empty parts of your frame. If you do not see an empty part where you can add screen, click the button to unzoom until you find a free place. Make sure to leave the view controller on the frame and not leave it on a screen that already exists. You can change the Home screen by selecting the view controller you want to use as the Home screen from the project plan. Click Attribute Inspector and select the Is Initial View Controller check box . For example, if you are making an app to remember things to do, you must make the list the first thing the user sees when launching the application. 8. Add a navigation bar. You now have two screens on your application, this is the time to give the user the opportunity to navigate between these two screens. You can do this by using the navigation controller ( Navigation Controller ), a specialized view controller. This controller adds a bar at the top of your application so that the user can navigate between the different screens.  The navigation controller must be added to the initial view so that it can then control the other views that flow from it. Select the initial view in the project plan. Click Editor → Embed In → Navigation Controller . You should see a gray navigation bar appear at the top of the screen to which you added the controller. 9. Add features to your navigation bar. After inserting the bar on the screen, you can start adding navigation tools. These will allow the user to navigate between the different screens. Add a title to the navigation bar. Click the Navigation article that is under the view controller you assigned it to. Open the inspector of attributes ( Attribute Inspector ) and type the title of the current screen in the field Title (title). Add a navigation button. Open the object library if it is not already open and find the Button article . Drag it on the navigation bar. In general, the buttons that make you navigate forward are on the right, while the buttons that make you navigate back are on the left. Give a property to the button. You can configure the buttons and give them certain properties so that they can better adapt to certain situations. For example, if you create a to-do list, you must put an Add button to add a new item. Select the button and open the Attribute inspector. Find the menu IDs ( Identifiers ) and select Add (Add). The button will then display a logo in the form of + . 10. Create a link between your new button and an existing screen. If you want to operate the button, you must connect it to another screen. Following the example of our to-do list, this button is on the General List screen and you must link it to the Add New Item screen. To create this link, hold down the button ^ Controland drag the button on the second screen. When you release the mouse button, the Action Sequence menu opens with a list of options. Choose Push to use a push transition between two screens. You can also choose Modal which will open the screen on the previous one without any transition effect. If you use a push transition, a navigation bar will automatically be added to the second screen with a return button . If you choose the modal transition, you will need to manually insert the second navigation bar as well as two buttons Cancel and Save (in the case of a list of things to do, you can put other labels suitable for your application) . The Cancel and Save buttons can be created in the same way as the Add button . Simply select Cancel and Save from the ID menu in the Attributes Inspector. 11. Add data management capabilities. Until now, you have been able to create a basic navigable interface without having to write a line of code. If you want to add more interesting features to your application, such as a data logging system or user input management, you will have to put your hands in the code. This article does not address the code of applications, but you will find on the Internet many tutorials to teach you how to code Objective-C. You can use your navigable interface to find a freelance developer. It will be easier to explain what you want it to code if you can present it with a functional interface. Test your App 1. Start the iOS Simulator. Xcode comes with an integrated iOS simulator that allows you to test your application on a large number of iOS devices. To start the simulator, click Simulator and Debug from the drop-down list at the top of the Xcode window, and choose the device you want to test it on. 2. Build the application. Click the Build button , a button that resembles the traditional Play button, to compile and launch the application. This step could take a few minutes, you can monitor the progress in the toolbar. Once the application is ready, the iOS simulator will open and you can start testing your application. 3. Test your app on your own iPhone. Before you distribute the application for the testing phase, you can test it directly on your own phone (if you have one). First, connect your device to your computer with a USB cable. Close iTunes if it opens automatically. Click Device and Debug from the drop-down list, and then click the Build button . Wait a few seconds before the application launches on your iPhone. Test all features before closing the application. 4. Debug your application. If your application crashes, you have to find out what happened and why. This is a vast subject and there are hundreds of reasons that make your application crash. Open the Debugger and read the error messages. Most of the time they are rather incomprehensible. If you do not understand what the error means, try searching for the error message on Google. There is a good chance that you will find a topic on the Apple development forum where a developer friend posted the answer. Debugging can make you waste a lot of time and be very complicated. If you do not give up and persevere, you will improve. You will start to recognize the mistakes, you will find them quickly and you will even expect it sometimes. A common mistake is to free an object from memory more than once. Sometimes the developer forgets to allocate enough memory or to initialize an object before adding or assigning it. You will make fewer and fewer errors as you program applications. 5. Check the memory usage. The iPhone has a limited amount of memory. Each time you allocate memory to an object, you must release it when you are done to leave it available to other applications. Instruments is the development environment of the iPhone that allows you to see and analyze the use of memory, among others. By selecting Device and Debug , choose Run → Run with Performance Tool → Leaks . This action will launch Instruments and start the application on your device. Use the application as usual. You will get the impression that it is blocking from time to time, but it is only Instrument that records and analyzes memory usage. All memory problems will appear as red peaks on the chart provided by Instruments. The source of this problem will be displayed in the second half of the screen. By duplicating the detected problems, Instruments will try to redirect you to the part of the code that creates the problem. You can also click the small arrow in the address column to see the history. Sometimes, the place where a problem is detected is not necessarily the place from where it originated. If you can not get through, proceed by elimination. Put some parts of the code in comment or bypass them and launch your application. Sometimes you will get an idea of where the problem comes from and you will find it in this code area by elimination. When you locate it, you can repair it or rewrite it. Remember that it can be faster to use Google because it can often give you links to Apple forums or to the official documentation that handles this problem. 6. Distribute your app for testing by others. Even if you can make sure that your application works well and that the interface is pretty by running it on your own simulation environment, nothing beats checking your application by other users. Just make sure you've eliminated the most obvious bugs before sending your app to other users. When you want to distribute your application to other users, you must create an Ad-Hoc certificate on the iOS Dev Center site. External users can provide you with important information that you would not have found yourself. This can be all the more useful if you have a complex application. To authorize other users' devices, you must obtain the UDID number of each device. Choose a device from the drop-down list and click the Build icon . Navigate to the folder where your project is located and look for the "Ad-Hoc-iphoneos" folder. You will find an application inside. Copy the "AdHoc.mobileprovision" certificate that you received from the iOS Dev Center into this folder. Select the application and the certificate to compress them. You can give this archive to the testers. You must create a separate archive for each Ad-Hoc certificate. Publish your project 1. Create your distribution. Select Device and Release from the menu drop-down list. Click the Build icon . Then navigate to the folder of your project and look in the folder called "Release-iphoneos". You'll find an app in it. Compress it into an archive. For new apps to be validated by Apple, they must be optimized for iOS 8 and Retina display. 2. Open the iTunes Connect dashboard. You can access it from the iOS Dev Center. If there are still steps before finishing the configuration, they will appear at the top of the page. Make sure you have entered all the information about your bank account number. 3. Enter all information about your application. Click Manage Your Applications , and then select Add a new Application. Fill in the application name, the SKU number and choose the bundle ID. Select your application package from the drop-down list. Fill out the form where your application description, keywords, application-related website, category, contact email address, copyright information, etc. will appear. Fill out the copyright and price forms. Prepare your artwork for iTunes. You must create a 512 x 512 vector image, as well as screenshots of your application. You can make screenshots from the iPhone simulator by pressing ⌘ Command+ ⇧ Shift+ 4or by dragging the viewfinder over this area. Make sure the simulator is configured for a 320 x 480 iPhone. Screenshots are an important part of an application's mark-up, so make sure they show the most interesting parts. 4. Upload your application. Click on Ready to Upload Binary and you will be automatically sent back to the page where you can download the application upload tool. Download it and click Done . Install and launch the upload tool. The first time you open this program, it will prompt you to fill in your iTunes login credentials. The upload tool will check your iTunes account for applications with binaries ready to be uploaded. They will be displayed in a drop-down list. Select the one you want, click the zip file of the distribution you created earlier and put it online. The uploader will check various internal information about the packet and return an error if it finds any problem, for example an incorrect version number, a missing icon, and so on. If everything is in order, it will put the zip file online. 5. Wait for the returns. You have nothing else to do now but wait for the returns on your application. Apple will send you a message after a few days or weeks to inform you that your application is verified. Once the application is verified, the rest is done quickly. If she does not pass the first tests, you will receive a refusal email explaining why and who will give you suggestions for correcting your application. If your application passes this inspection, Apple will send you a message indicating that your application is ready to be sold. It should then appear on the App Store. 6. Advertise your app. Now that your brand new application is available, it's time to get to know it. Use social networks, send articles to Apple-specific websites, make videos for YouTube, do everything in your power to let people talk about your app. You can send a free copy to testers who will then talk about your app on their websites or on their YouTube channel. If you manage to get your application into the hands of famous testers, you will greatly increase your sales. 7. Monitor your sales. Download the free iTunes Connect Mobile app for iPhone. Use the application every day and check your sales, markets and countries where sales are made. This is the most fun time! Apple will send you emails from time to time containing links to keep you informed of your sales. You can download them for your personal accounts.