Difference between revisions of "Make an iPhone App"

Kipkis (Kipkis | contribs)
 
Kipkis (Kipkis | contribs)
m (Text replacement - "[[Category:I" to "[[Category: I")
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{fa}}The app market is changing and shifting constantly, and the success stories are big enough to catch anyone's eye. Do you think you have the Next Big Idea for an iPhone app? It may be easier to make than you think. Although you'll need to learn some coding, much of the interface work can be done graphically. Creating an app will take time, learning, and patience but maybe you can make the next Flappy Bird! See Step 1 below to get started.
+
The app market is changing and shifting constantly, and the success stories are big enough to catch anyone's eye. Do you think you have the Next Big Idea for an iPhone app? It may be easier to make than you think. Although you'll need to learn some coding, much of the interface work can be done graphically. Creating an app will take time, learning, and patience but maybe you can make the next Flappy Bird! See Step 1 below to get started.
[[Category:IPhone Applications]]
+
[[Category: IPhone Applications]]
 
== Steps ==
 
== Steps ==
 
===Setting Up Your Development Environment===
 
===Setting Up Your Development Environment===
Line 13: Line 13:
 
#*There are a variety of tutorials available online, as well as a wealth of information to be found in various books about Objective-C or Swift. If iPhone app development is something you want to take seriously, you'll be well-served by having some resources handy.
 
#*There are a variety of tutorials available online, as well as a wealth of information to be found in various books about Objective-C or Swift. If iPhone app development is something you want to take seriously, you'll be well-served by having some resources handy.
 
#*Some of the more popular online Objective-C and Swift communities include the Apple Developer Forums, the iPhoneSDK Google Group, and StackOverflow.
 
#*Some of the more popular online Objective-C and Swift communities include the Apple Developer Forums, the iPhoneSDK Google Group, and StackOverflow.
#Consider outsourcing development. If you simply don't have any interest in learning Objective-C or Swift or don't have an artistic bone in your body, there are a large number of freelancers and development teams out there that may be able to take on various aspects of your project for you. Outsourcing your development is a complicated process, but can save you lots of headaches if you're not the programming type. Make sure that everyone involved signs a Non-Disclosure Agreement, and that pay structures are in place before any work begins.<ref>http://www.smashingmagazine.com/2009/08/11/how-to-create-your-first-iphone-application/</ref>
+
#Consider outsourcing development. If you simply don't have any interest in learning Objective-C or Swift or don't have an artistic bone in your body, there are a large number of freelancers and development teams out there that may be able to take on various aspects of your project for you. Outsourcing your development is a complicated process, but can save you lots of headaches if you're not the programming type. Make sure that everyone involved signs a Non-Disclosure Agreement, and that pay structures are in place before any work begins.<ref name="rf15438">http://www.smashingmagazine.com/2009/08/11/how-to-create-your-first-iphone-application/</ref>
 
#*ODesk and Elance are two of the most popular freelancing services on the Internet, and both have hundreds of developers and artists of all skill levels.
 
#*ODesk and Elance are two of the most popular freelancing services on the Internet, and both have hundreds of developers and artists of all skill levels.
 
#Create a development account. In order to distribute your app on the App Store or give it to others to test, you will need to sign up for an Apple Developer account. The account costs $99 per year and will require you to enter in tax and bank account information.
 
#Create a development account. In order to distribute your app on the App Store or give it to others to test, you will need to sign up for an Apple Developer account. The account costs $99 per year and will require you to enter in tax and bank account information.
Line 58: Line 58:
 
#*More screens are added by dragging and dropping view controller objects onto blanks parts of your canvas. If you can't find a blank spot to drop it, click the "zoom out" button until you find empty areas. Make sure to drop the view controller onto the canvas and not onto an existing screen.
 
#*More screens are added by dragging and dropping view controller objects onto blanks parts of your canvas. If you can't find a blank spot to drop it, click the "zoom out" button until you find empty areas. Make sure to drop the view controller onto the canvas and not onto an existing screen.
 
#*You can change the initial screen by selecting the view controller you want to lead with from the project outline. Click the Attribute Inspector button and check the "Is Initial View Controller" box. For example, if you are making a to-do list, you'll want the actual list to be the first thing the user sees when the app is launched.
 
#*You can change the initial screen by selecting the view controller you want to lead with from the project outline. Click the Attribute Inspector button and check the "Is Initial View Controller" box. For example, if you are making a to-do list, you'll want the actual list to be the first thing the user sees when the app is launched.
#Add a navigation bar. Now that you have two screens in your app, it's time to make it so that the user can move back and forth between them. You can do this through the use of a Navigation Controller, which is a specialized View Controller. This controller adds a navigation bar to the top of your app that allows user to move back and forth between screens.<ref>http://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1</ref>
+
#Add a navigation bar. Now that you have two screens in your app, it's time to make it so that the user can move back and forth between them. You can do this through the use of a Navigation Controller, which is a specialized View Controller. This controller adds a navigation bar to the top of your app that allows user to move back and forth between screens.<ref name="rf15439">http://www.raywenderlich.com/1797/ios-tutorial-how-to-create-a-simple-iphone-app-part-1</ref>
 
#*Your navigation controller should be added to your initial view so that it can control all subsequent screens.
 
#*Your navigation controller should be added to your initial view so that it can control all subsequent screens.
 
#*Select your initial view in the project outline.
 
#*Select your initial view in the project outline.
Line 67: Line 67:
 
#*Add a navigation button. Open the Objects library if its not already open and find the Bar Button Item. Click and drag it to the navigation bar. Typically, buttons that move you "forward" in the app are placed to the right, and buttons that move you "back" are placed to the left.
 
#*Add a navigation button. Open the Objects library if its not already open and find the Bar Button Item. Click and drag it to the navigation bar. Typically, buttons that move you "forward" in the app are placed to the right, and buttons that move you "back" are placed to the left.
 
#*Give the button a property. Buttons can be configured to have specific properties that make them easy to adapt to the circumstance. For example, if you are creating a to-do list, you'll want an "Add" button to create a new entry. Select the button, and open the Attribute Inspector. Find the Identifier menu and choose "Add". The button will change to a "+" logo.
 
#*Give the button a property. Buttons can be configured to have specific properties that make them easy to adapt to the circumstance. For example, if you are creating a to-do list, you'll want an "Add" button to create a new entry. Select the button, and open the Attribute Inspector. Find the Identifier menu and choose "Add". The button will change to a "+" logo.
#Link your new button to an existing screen. In order for your button to function, you will need to connect it to another screen. In our to-do list example, the button is located on the overall list, and needs to be linked to the entry screen. To link the button, hold the Ctrl and drag the button onto the second screen.<ref>https://developer.apple.com/library/iOS/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.html#//apple_ref/doc/uid/TP40011343-CH3-SW1</ref>
+
#Link your new button to an existing screen. In order for your button to function, you will need to connect it to another screen. In our to-do list example, the button is located on the overall list, and needs to be linked to the entry screen. To link the button, hold the Ctrl and drag the button onto the second screen.<ref name="rf15440">https://developer.apple.com/library/iOS/referencelibrary/GettingStarted/RoadMapiOS/FirstTutorial.html#//apple_ref/doc/uid/TP40011343-CH3-SW1</ref>
 
#*When you release the mouse button, the Action Segue menu will appear with a list of options. Choose "Push" to use the push transition when moving between screens. You can also choose "Modal", which will open the screen as a self-contained action as opposed to a sequence.
 
#*When you release the mouse button, the Action Segue menu will appear with a list of options. Choose "Push" to use the push transition when moving between screens. You can also choose "Modal", which will open the screen as a self-contained action as opposed to a sequence.
 
#*If you use Push, a navigation bar will be added automatically to your second screen and a "back" button will be automatically created. If you choose modal, you will need to manually insert a second navigation bar as well as add a "Cancel" and "Done" button (for a to-do list; the labels of your buttons will change depending on the needs of your app).
 
#*If you use Push, a navigation bar will be added automatically to your second screen and a "back" button will be automatically created. If you choose modal, you will need to manually insert a second navigation bar as well as add a "Cancel" and "Done" button (for a to-do list; the labels of your buttons will change depending on the needs of your app).
 
#*"Cancel" and "Done" buttons can be created the same way that you created the "Add" button. Simply select "Cancel" or "Done" from the Identifier menu in the Attribute Inspector.
 
#*"Cancel" and "Done" buttons can be created the same way that you created the "Add" button. Simply select "Cancel" or "Done" from the Identifier menu in the Attribute Inspector.
#Add data handling capabilities. Up to this point, you've been able to create a basic navigable interface without the need for any coding. If you want to add any deeper functionality, such as data storage and handling user input, you'll need to get your hands dirty in the code. Coding is outside of the scope of this guide, but there are a large number of Objective-C tutorials available online.<ref>http://codewithchris.com/how-to-make-iphone-apps-with-no-programming-experience/</ref>
+
#Add data handling capabilities. Up to this point, you've been able to create a basic navigable interface without the need for any coding. If you want to add any deeper functionality, such as data storage and handling user input, you'll need to get your hands dirty in the code. Coding is outside of the scope of this guide, but there are a large number of Objective-C tutorials available online.<ref name="rf15441">http://codewithchris.com/how-to-make-iphone-apps-with-no-programming-experience/</ref>
 
#*You can use your navigable interface prototype to help you hire a developer. Having a working interface will make it much easier to explain what you need on the coding side of things.
 
#*You can use your navigable interface prototype to help you hire a developer. Having a working interface will make it much easier to explain what you need on the coding side of things.
 
===Testing the App===
 
===Testing the App===
Line 86: Line 86:
 
#*External testers can provide a lot of feedback that you wouldn't expect. This can be especially useful if you have a complex app.
 
#*External testers can provide a lot of feedback that you wouldn't expect. This can be especially useful if you have a complex app.
 
#*In order to authorize tester's devices, you will need each device's [[Obtain-the-Identifier-Number-%28UDID%29-for-an-iPhone%2C-iPod-or-iPad|UDID number]].
 
#*In order to authorize tester's devices, you will need each device's [[Obtain-the-Identifier-Number-%28UDID%29-for-an-iPhone%2C-iPod-or-iPad|UDID number]].
#*Choose Device from the drop down list and press the "Build" icon. In the Finder, navigate to your project's folder and look for the "Ad-Hoc-iphoneos" folder. Inside there will be an app. Copy your "AdHoc.mobileprovision" certificate you got from the iOS Dev Center into the same folder. Select the app and the certificate and zip them up. This archive can be given to your external tester. You will need to create a separate archive for each Ad-Hoc certificate.<ref>https://www.udemy.com/blog/how-to-build-an-iphone-app-from-scratch-for-non-technical-people/</ref>
+
#*Choose Device from the drop down list and press the "Build" icon. In the Finder, navigate to your project's folder and look for the "Ad-Hoc-iphoneos" folder. Inside there will be an app. Copy your "AdHoc.mobileprovision" certificate you got from the iOS Dev Center into the same folder. Select the app and the certificate and zip them up. This archive can be given to your external tester. You will need to create a separate archive for each Ad-Hoc certificate.<ref name="rf15442">https://www.udemy.com/blog/how-to-build-an-iphone-app-from-scratch-for-non-technical-people/</ref>
 
===Releasing Your Project===
 
===Releasing Your Project===
 
#Create your Distribution build. Select Device and Release from the drop-down menu. Press the "Build" icon. In the Finder, navigate to your project's build folder and look for the "Release-iphoneos" folder. Inside there will be an app. Zip it up into an archive.
 
#Create your Distribution build. Select Device and Release from the drop-down menu. Press the "Build" icon. In the Finder, navigate to your project's build folder and look for the "Release-iphoneos" folder. Inside there will be an app. Zip it up into an archive.