About the Course
In this series of tutorials on iOS app development, I will take the user through the basics of setting up their development environment and creating their first basic iOS application. This includes a general understanding of all sections of the iOS SDK. By the end of this course you’ll learn how to make iPhone and iPad apps.
We will be creating applications for the iPhone and iPad using iOS 5.1. We will also be looking at Storyboards and many of the new features within iOS 5 such as Twitter integration and notification centre.
This course will cover multiple application builds including the basic 'hello world' application, interaction with web services and other features such as Core Data, Location Services and NSUserDefaults.
We will also cover the differences between iPhone and iPad development. You will learn to adapt to and take advantage of the different screen sizes and how to maximise the opportunity of the larger iPad display.
This course requires an Apple Macintosh Computer that has Mac OS X Lion installed.
You will need to have Xcode 4 and the iOS 5 SDK (This will be covered at the beginning)
If you do not have a Mac and do not wish to buy one, then you can always rent a mac in the link here: http://www.macincloud.com/
This is an introduction to the iPhone & iPad Development Course.
In this presentation, I will explain what features we will be looking over and the content that we will be covering through out the course.
I will talk about some specific core features that we will cover from the iOS 5 SDK as well.
I also discuss the requirements of the course.
In this video I will show you where to download Xcode from for OS X Lion and previous versions.
Mac OS X Lion
Xcode 4.3.3 can be downloaded from the Mac App Store, this will come complete with all the required features and tools for the lectures, this includes iOS 5.1 as well.
Mac OS X Snow Leopard and Before
Xcode 3.2.6 can be downloaded from developer.apple.com under the iOS Dev Centre. This does not have iOS 5.1 and you will not be able to follow the lectures fully.
Link to the iOS Dev Centre (Must be logged in): https://developer.apple.com/devcenter/ios/index.action
In this video I will be showing around Xcode.
I will be showing you how to creating you first application ready for us to start coding.
Areas within Xcode where you can get help and where you can go for extra help if needs be. https://developer.apple.com/devcenter/ios/index.action
I will dicuss the different sections within the Xcode interface and what they are used for.
In this lecture, I take you through creating your first application with Xcode.
We create our first application, in this application we drag out a label from the library files provided to us from the SDK and place it within the iPhone view on the stage.
We then change the text inside the label and change the size and any colours that you may wish to change as well.
We talk about position the label and using the blue guide lines to help centre and locate you library files not too close to the boundaries of the application.
This is a presentation walking you through the first steps to create yourself an iOS 5 application. This is just a helping reference to make sure that you are able to follow and repeat the steps to be able to create applications on your own.
In this lecture I am going to introduce two new UI elements, the UITextField and the UIButton.
We are going to create another small application with these two new UI elements. We will use the UITextField to enable us to enter some text and then once we click the UIButton, the contents of the UITextField will go into the UILabel that will be onscreen.
We will also be going through the header and method files (.h and .m)
I will then explain and show you how to Synthesize properties and what they are used for and what happens if you fail to do so.
In this lecture, we will cover how to create a public instance method.
This lecture continues from the previous lecture on Using UITextField and UIButton.
I will show you how we can create a public method to do the required task of changing the contents of the label and then calling this method once the UIButton had been pressed.
This will achieve the same result as before but a short and easy introduction to creating methods.
In this lecture I will show you how to hide the keyboard.
We will go through how to hide the keyboard when the background of the application is touched and we will also look at how to hide the keyboard when the "Return/Done" button on the keyboard has been pressed.
To do this we need to connect the delegates of the UITextField and the UIView needs to be changed to a UIControl to allow us to detect if the background of the application has been touched / pressed.
I have provided the code for the previous example that we created for anyone who wishes to use it.
Please try to avoid just copping and pasting the code, its much better if you write out the code as we go via the screencast.
This source code includes comments about all the sections of the code and explains everything you need to know about creating your own methods.
In this lecture I will talk about how we can create multiple view controllers and then how we can transition between the two view controllers.
We can very simply create a segue between two view controllers, by holding down "control" and dragging from our UIButton that we create to our new view controller and selecting the Push segue.
This can only be done if the view controllers are part of a navigation controller, this is only the case for segue, a modal can be presented without having a navigation controller.
A modal limits to only one overlay and cannot present a deeper flow of views where as a segue can go down and down, multiple views and levels.
In this lecture I will show you how we perform a Segue from code without having to click and drag from our views in the storyboard mode.
This is rare and not used very often to segue but nevertheless, it is a useful trick to be able to perform and know about if needs be.
To perform this type of segue (A Push Segue). Your view that you want to push off from must be within a Navigation Controller, or this will not work.
This lecture includes how to go about creating a segue from one View Controller to another View Controller.
We will then go onto how to embed the View Controllers within a UINavigationController, this is required if we want to perform a segue with the "Push" style.
In this lecture I will cover one simple way of how we pass data between two View Controllers, using the method prepareForSegue.
This method is used to determine the segue that is occurring and to then pass data along with the segue.
We can also use delegation to get data from each of the View Controllers and we could even make ourselves a DataSource, we will go into further detail later in the course about these two methods.
In this lecture I will overview UITableViews and how they work and what they are useful for, I will show you the types of UITableViews and how we can customise them to get our desired affect.
We look at the different style of UITableViews and talk about which is used when and why we use them in those cases.
We then look deeper into the Static UITableView in our demo and I will show you how we setup UITableViews in general, how to drag them onto our storyboard then we always create a new TableViewController Objective-C class and then change our UITableViews class to our newly created class.
This is a short introduction into UITableViews, I will go through the various types of UITableViews, What they are best used for and the styles we can have.
We will also discuss where UITableViews should be used and how efficient UITableViews are.
In this lecture, we will discuss the important properties of the UITableView class and what the properties do and mean. The DataSource and the Delegate.
We then go straight into our demo and create a new application, set up our UI and create our new Objective-C class for our UITableViewController.
I will show you how to setup the UITableView and the UITableViewCell, we have to always remember to use a Reuse Identifier when creating a Dynamic UITableView.
We will then dive into the code and create our NSMutableArray (This means we can change and add objects to the array after initialisation).
We will use some lazy instantiation to make sure that our array cannot be nil.
We will make sure we implement the three main methods and then I will show you how we can segue from the UITableView when the user clicks on a cell.
In this lecture I will show you how we can enable our UITableView to go into Edit mode, which will allow us to remove objectives from our NSMutableArray and delete them from the UITableView with animation.
Once we have done this using the code that was commented out, I will then move on to how we can go about adding new objects to our NSMutableArray.
We will also create our two buttons for Editing and Adding via code, this will demonstrate a new way of creating your UI.
In this lecture, I will start off by showing you how we can enable the users to rearrange the UITableViewCells, we will not save the new order of the UITableViewCells as we are using a static dataset that we define each time the application loads.
We will move into saving the new order when we move onto the web services chapter of the course.
We then move onto the prepareForSegue method and I will show you how we pass data from the UITableView to the DetailViewController when the user segues from one of the UITableView rows.
We have now covered all of the main methods in the UITableView class. We will take these into further lectures and make them more advanced later on.
In this file, I have included all of the features, methods and events that we covered for the Dynamic UITableView project.
This source code includes code comments to help you understand where everything has come from, as well as all the fully finished code so that you can see what needs to be done if you were not able to fully follow the videos.
Please only use this code as a reference and do not just copy and paste, type the code out and you will retain how everything was done and then be able to re-create this in the future.
In this lecture we will look at creating a new application within Xcode to enable us to create a UITableView with some data and look to add the search functionality later. This lecture has been recorded using iOS 6 SDK and the latest Xcode 4.6.
This application will be built upon a UINavigationController to allow us to segue to the detail view of the application, providing the end user with much more information about the contents of the UITableView.
In this lecture we will continue with the application that we started in the previous lecture, implementing the search feature this time.
We shall require a few additions to our code, dragging out our UISearchBar with Display Controller and then configuring the delegate.
Then once this has been done, we simply need to check in a few methods to see if we are in the normal UITableView or if we are in the UISearchBarTableView, depending on which, will depend upon the number of rows we need to return and the results as well.
Source code is available to download, please try to write out the code if you do download, it will help the code sink in.
In this PDF slide show, I will outline the six main UIGestureRecognizers that we are going to be covering in the chapter of the course.
I will briefly talk about where you would find these gestures and what features we can change on them to make them unique to our applications.
In this lecture I will show you how we can enable Pinch Gestures, to do this we must enable our view / image to receive a gesture. This is done using the UIGestureRecognizer.
We then make an IBAction to control what happens when we get a UIPinchGestureRecognizer. From here we change the view to the new scale once we have finished pinching the screen.
Link to Udemy Logo: Udemy Logo
The link above is where I got the logo for the project demo.
We will also look at how to rotate the device in the simmulator and how to test the pinch gesture.
In this lecture, I will show you have we can use the UITapGestureRecognizer to create a "game" like application, where we create an image to tap, keep track of the number of taps that have occurred and a UILabel to display this result.
We do this by incrementing the count of taps by 1 after each tap has been recognised. We then update the UILabel display and show the user how many taps have occurred.
In this lecture, I will show you quickly how to use the UIRotateGestureRecognizer to detect for a rotation gesture and allow our UIImageView to rotate.
In this lecture, I will show you how we can use the UIPanGestureRecognizer to 'drag' a UIImageView around the screen into a new location. With this we could quickly build up a complex app that requires us to place objects on the correct point.
In this lecture, we take a look at the Long Press Gesture, we will use this long press gesture to open up an action sheet that appears up from the bottom of the view.
We will then go into some detail about UIActionSheets and how we use them. I will go through how we can create an action sheet and create all the buttons and how to trigger to action sheet on the long press gesture.
We will go into further detail later on about how we can use the buttons within the UIActionSheet.
In this lecture, I will show you how we setup the swipe gesture. We will set the gesture to detect different directions (left, right etc) and then we will NSLog the output to let us know that we have detected the swipe.
That concludes all of the UIGestureRecognizers, please feel free to ask some questions and review all of the lectures within the chapter and get familiar with all the methods.
In this file, I have included the source code for all of the six gestures within one project, Please use this to help your understanding, do not just copy and paste.
These are the basic steps to creating a gesture.
In this lecture, I explain how we are going to be creating in our first large project.
We will be creating an RPN Calculator, this is where operations and operands are pulled off of a stack and the calculations of 3 + 4 look like this (3 4 +, this is the order you enter them).
We will go into more depth on how this type of a calculator works.
We start off by designing our UI and setting up the main parts of the application, getting the digits to be pressed and appear on the display.
In this lecture, I will show you how we create a Model for our RPN Calculator.
This model will be the "brain" as we call it for our calculator, it will handle pushing and popping operations and operands off the stack. We will then check to see what type of operation was pressed and then send this to our model to calculate our result.
This result will be pushed back onto the stack for more operations to take place on the result.
In this lecture, we will finish up our model and then include it within our CalculatorViewController. We will then create a Private property of our CalculatorBrain and lazy instantiate it.
We will then finish up the operationPress and enterPressed methods using the model we have created to simply push the operands and perform the operations.
I will then add one more operation and leave the divide and subtract operations for you to try out yourselves. I will add another lecture just to show you how we finish up the application after you have tried the task yourself first.
In this quick lecture, we will go over the couple of tasks that I set for you to try and solve for yourself. These are a little trick to try a possibly catch some of you out.
We will also review quickly what we have gone over and just to end the chapter.
The source code will be available for you to download and use, but please again, do not just copy and paste the code into your projects, try to retype the code and almost do it without looking. This will get you the best practise and help you develop you iOS programming skills.
The source code is fully commented so please use to full advantage.
I have provided the source code for all of you to use, please do not just copy and paste the contents, this will not benefit for you. Typing out the code will be of great use and benefit to your learning.
I have commented the whole code so that you are able to follow what I have done within the lectures.
In this lecture, I will introduce the new main UI element that you will be using when designing and creating iPad applications. This is known as the UISplitViewController. It allows for the display of two view controllers at the same time.
We will creating a project and go through how we create a Split View Controller and some steps that we must follow everything we create one, I will also explain the benefits and examples where the Split View Controller is used.
We will learn about the button dance and once we have created our iPad application, we will convert one of our existing or future projects into a Universal applications and recreate the storyboard for the iPad to enhance the application.
In this lecture, I will explain again what the Button dance is and how we go about implementing the button dance. This is very simple and a quick lecture just to emphasise what is required to do this.
We require just two methods to perform this and we will go into depth about them.
In this lecture, I will be showing you how we finish up the iPad application, and we will discuss how we pass data from the Master to the Detail view controller via Delegation.
We will create our array and add some objects and then put them in our UITableView, once these objects are pressed, we will set the property from the DetailViewController via delegation in the didSelectRowAtIndexPath method.
We will also talk about struts and springs, to make sure that the elements in our UI are correctly position and stay attached to the correct areas of the screen.
I have provided the source code for the UISplitViewController application that we have been working on over the previous lectures. This is for reference only, please do not just copy and paste the code as this will not help you.
This concludes the iPad application development and we will do some more when we upgrade one of the future applications to a Universal application and create a new storyboard for the iPad part of the application.
In this lecture, I will show you how we can include the Twitter Framework in our projects and send a Tweet directly from our applications to Twitter.
I will then show you how we log into our Twitter accounts on the iOS Simulator, this will allow us to directly send the Tweet when we click the send Tweet button.
I will then show you how we can attach a URL to our Tweet, very simple steps and powerful implementation with a few lines of code.
This is the source code to the previous application we made that included the Twitter Framework and sending a Tweet via our application in the iOS Simulator.
Please only use this for reference and try not to copy and paste the code, you will not learn from this and it will have no benefit. Writting out the code again is much better and you will take it in more.
In this lecture, I will show you how we can simply use our NSUserDefaults to save properties and values to the iPhones memory storage so that it can be used all the time without having to set the value.
We will create a simple application that sets the value of our NSUserDefaults key and then gets the value, we will then close our application and restart it and get the value without setting it again.
This is often used within apps that require specific settings, such as music on or off and other features like that.
This is the source code for the previous NSUserDefaults lecture that I went through. Please only use this code for reference and do not just copy and paste the code into your project, this will have no benefit to yourself.
In this lecture we will be discussing what our application will be doing and then we will be getting into Xcode and creating our simple UI and creating some of the properties and methods that we are going to be needing.
We will also be using multiple View Controllers and going over all of the previous topics we have learnt and incorporating them into one project.
We will be searching the Google Search API, and getting a JSON result and then parsing this result with the built in iOS 5 JSON parser.
In the next lecture we will look at getting the JSON data from the Google Search API and then parsing it with the built in iOS 5 JSON Parser.
In this lecture, I will show you how we setup our method for getting the JSON data from the Google API, we will discuss the built in method within iOS 5 that allows us to parse the JSON data.
We will also check some of the other features we built into the application and add support for hiding the keyboard and prepare our UI for creating the UITableView with our results.
In the next lecture we will finish up the JSON data and fill the UITableView with this data and then segue and make our UIWebView.
In this lecture, I will be showing you how we get the items from each of the arrays into the UITableViewCells, using objectAtIndex and objectForKey. We will also use this when passing the data from the selected row to the GoogleDetailViewController.
We will then setup our UIWebView on our GoogleDetailViewController and setup the required properties, then I will show you how we convert out NSString that contains our URL into the web request that the UIWebView requires.
Once we have done this, we will review what we have done in this sub series on Web Services and discuss what will be coming up next.
This is the source code for the Web Services application that we created in the previous lectures, I have included comments of everything that we have done, so that you are able to follow and understand.
Please do not just copy and paste this, try to type it out and this way you will take in the code and understand what is going on and be able to repeat it again later on.
Hey Guys, I’m Josh! My background is in programming and coding. I am really in to learning and using new languages and developing new technologies.
I am the Co-Founder of a Web Development and Marketing company called Surf Track, We specialize in high quality web design using the latest innovative technologies. We also create custom web based business solutions designed to be accessible by mobile and fixed devices.
iOS Application Development is at the front of our development, smartphone apps are rapidly becoming the main way we interact with our digital environment.
I have been developing iOS applications for iPhone and iPad for 3 years now. I have a lot of experience with many other programming languages and I am always learning about new ways to take the web forward.