ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Overview of iPhone application development

Updated on August 6, 2011

Developing software on the IPhone has become a very attractive platform for developers. The reason is not only because nearly everyone owns an IPhone, it is because there is a rich and comprehensive, yet easy to use development kit for the iPhone. The framework for the iphone is provided by apple, and is called the Iphone software development kit, or SDK for short. These frame works contain all the code that your iphone needs to perform any functions or process.

Frameworks

The iphone SDK framework has been designed to easily allows you to intergrate any code for your specific functions for your application. A framework is basically a library of all the data functionality that your iphone can handle, include in the software and the hardware of the iphone.

The iphone framework is also excellent at controlling the flow of control and execution of your program. This means that you won't have to program the order that your functions should happen, this is taken care of by the SDK. You also as an iphone programmer, are able to just skip programming parts such as what data is sent where, and how to react to someone touching the button. All of this fucntionality is easily taken care of again with the SDK framework of the Iphone.

Its this reason that we are always hearing about apple games and programs being developed ina matter of a couple of weeks. Programming the iphone has been made as easy as posiible so you get to concentrate on eactly what your content application is.

The framework of the Iphone helps comelete large amounts of functionality including starting your application, and displaying it correctly on the screen. The SDK also takes care of the interface functionality, such as menu scrolling, when you touch the screen. Loading up to external internet sites and displaying data through your application is also taken care of, this is great when you are developing a high score table for a game. This data can easily be loaded up from your website.

Media handling is also taken care of, so as long as you supply the video and the audio that your application uses, then the iphone will handle how it is displayed on the screen, and also how the audio is played.

Using Design Patterns

The way that the iphone sdk framework is presented is through a concept called design patterns. Design patterns help you understand how to actually read the framework better, and learn how it is structured. They also indicate how your own application code should be written.

With iphone designs patterns you can think of them like the roadmap between all the individual functionality and objects of the frame work. The design patterns describe the relationships between the classes and the objects that you will be working with.

Design patterns come in 3 different varieties, and they include the MVC (Model view controller, delegation, and the target action.

The Model-View-Controller (MVC) pattern

The framework for the Iphone is what is known as object orientated. This is a type of programming style which basically breaks all your data, and process down to objects. These objects can then be controlled, via a relationship model, to indicate how they should react together. This might seem like the obvious way to program, but programming like this is relativly recent, compared to the very first programming languages that didn't require this degree of complexity. In saying that, using OOP is a far better way, and helps you understand your application writing much easier. Its also great for trouble shooting too, as problems can be tied to speciif areas, and functions.

Another great conecpt of OOP is that the code that you use is easily re-usable, and can be deployed elsewhere, and even easily extended. The best way to help you develop your mind to get used to this method of programming is just to consider the real world. Take an animal for instance. A cow is an object. It has a number of functions including eating grass. This function of eating grass would then start a relationship function with the ground. The ground would be an object itself. Different functions would take place with the ground, when the cow either eats it, or stands on it.

Something that also helps me when programming is think of what what is required if you lift the cow up into the air. The space between the ground and the cow is now up to you to decide what will happen. You could have the cow turning pink, if it touches the ground, or exploding if it eats the grass. This is an example of changing the functionality of the objects. Yet in both the examples the two objects, the cow and the ground, remained the same. The only change was the functions that held those relationships together.

The MVC of the Iphone SDK is a method to group your application functions into objects. This would mean in our example that we could group the first functions into a group called normal, and then the funny actions into a group called funny. They are then now objects, and could be applied to other objects. If you add a cat, you can now have the cat, being affected by both of these function objects, and you won't have to write any new code for the cat. Well, you might have to write a little function that the cat is sick when it eats the grass, that's what my cat always done!

The MVC pattern helps create an application that has three parts to it, as well as the responsibility of these three parts, and how they interact.

There are:

Model objects, and these are made up of the logic and data that your application is dealing with. This would include the color of the grass, the size of the cow, and how to know that the cow has begun eating the grass.

The model objects will have no objection to what you do with it, and will only supply the data that you ask for. It won't make decisions about what you are doing with that data.

There are also:

View objects, which are used to display what you want on the iphone screen, and how your application will respond to these actions. Anything that can be touched on the iphone will have an equivalent view object. The view object will collect any required data from the model objects, such as the color to display the cow in the funny example. The model will tell it pink, and the view object will then take care of changing the cow to a pink cow.

Now the final object is:

Controller object, which is the easiest object type to understand. The controller object is like the office temp, it does all your running around for you. Since the model objects and the view objects need to communicate information the controller will go between them and pass the data. How does the iPhone know what the color pink actually is, and where to paint it? well the controller object will retrieve this information from the Model objects, and pass it to the display, and everyone is happy.

working

This website uses cookies

As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://corp.maven.io/privacy-policy

Show Details
Necessary
HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
LoginThis is necessary to sign in to the HubPages Service.
Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
AkismetThis is used to detect comment spam. (Privacy Policy)
HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
Features
Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
MavenThis supports the Maven widget and search functionality. (Privacy Policy)
Marketing
Google AdSenseThis is an ad network. (Privacy Policy)
Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
Index ExchangeThis is an ad network. (Privacy Policy)
SovrnThis is an ad network. (Privacy Policy)
Facebook AdsThis is an ad network. (Privacy Policy)
Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
AppNexusThis is an ad network. (Privacy Policy)
OpenxThis is an ad network. (Privacy Policy)
Rubicon ProjectThis is an ad network. (Privacy Policy)
TripleLiftThis is an ad network. (Privacy Policy)
Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
Statistics
Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
ClickscoThis is a data management platform studying reader behavior (Privacy Policy)