<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Learning iPhone Apps Programming</title>
	<atom:link href="http://www.orangeherring.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.orangeherring.com</link>
	<description>Process of learning iPhone Application Programming from scratch</description>
	<lastBuildDate>Sun, 14 Mar 2010 10:28:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>What? English is not the only spoken language in the world?</title>
		<link>http://www.orangeherring.com/2010/03/14/what-english-is-not-the-only-spoken-language-in-the-world/</link>
		<comments>http://www.orangeherring.com/2010/03/14/what-english-is-not-the-only-spoken-language-in-the-world/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 08:11:17 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[Internationalization]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[multi languages]]></category>
		<category><![CDATA[NSLocalizedString]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=86</guid>
		<description><![CDATA[Nope and that&#8217;s why many developers are leaving behind a big chunk of potential users by providing their application in English only. That&#8217;s too bad because Apple is providing an easy way to present the application in multiple languages. It&#8217;s called Localization and Internationalization. Here is how it works at a very high level. A [...]]]></description>
			<content:encoded><![CDATA[<p>Nope and that&#8217;s why many developers are leaving behind a big chunk of potential users by providing their application in English only.<br />
That&#8217;s too bad because Apple is providing an easy way to present the application in multiple languages. It&#8217;s called Localization and Internationalization.<br />
Here is how it works at a very high level. A link to a tutorial is provided at the bottom of this post to go in more details:<br />
Internationalization (also called i18n) is the process of designing an app to facilitate localization. This part is the coding part done by developer.<br />
Localization (also called l10n) is the cultural and linguistic adaptation of an internationalized app. This task is performed by a translator (not a developer this time). The translated text is then integrated by the developer into the app.</p>
<p>Let&#8217;s say that my application has a setup screen for the user to change the app configuration. I would need to show the word &#8220;Setup&#8221; on the screen but this won&#8217;t work in other languages obviously. The translation in French for example is &#8220;Configuration&#8221; (used in English also btw).<br />
So instead of hard coding the word, on the screen, I create a bundle for English and a bundle for French and will populate a token string with their respective translation. I decided to name all my tokens with the english word in upper case followed by &#8220;_TOKEN. In our example, the token would be named &#8220;SETUP_TOKEN&#8221;. This allow me to easily understand in the code what word the token represents.</p>
<p>In the english bundle:<br />
  &#8220;SETUP_TOKEN&#8221; = &#8220;Setup&#8221;<br />
In the French bundle:<br />
  &#8220;SETUP_TOKEN&#8221; = &#8220;Configuration&#8221;</p>
<p>I can then use NSLocalizedString to replace the token with the work &#8220;Setup&#8221; in the appropriate language. In this case, adding new languages is just the matter of adding new bundles and translating the words or sentences.<br />
It may also be required to have 1 nib per language. In this case it&#8217;s better to wait till the application is finished to copy the existing nib and adapting it to the new language.</p>
<p>How do you what is the preferred spoken language for the iPhone user and which bundle should we use? This is handled behind the scene by the SDK. The SDK is looking up the preferred language on the user iPhone (changeable in the Settings section) and then chooses the most appropriate language. If the user is having the iPhone in French then French will be chosen. If the user is having the iPhone in English (American, British, &#8230;) then English will be chosen. If the user&#8217;s iPhone is in a different language not supported by the application (let&#8217;s say German) then a default language (in my case English) will be chosen by the SDK. </p>
<p>As I mentioned in a previous post, for my App#1, I&#8217;m planning to build it to support multiple languages as my future app will be used in multiple countries around the world. Being English/French bilingual, I&#8217;ll do it in both languages right away. Later on, if enough people download the application, I&#8217;ll work with people fluent in other languages (Spanish, Russian, Chinese,&#8230;) to add those languages to the application.<br />
In general, it is easier to start the Internationalization of your application when you start it rather than adding it when the app is done so do it right away if you know that your app may be in multiple languages. Even if you&#8217;re not sure, it&#8217;s not a lot of extra work to add the internationalization right away.<br />
Having to go through multiple tutorials to understand how to setup i18n and l10n, I found this <a target="_blank" href="http://www.skylarcantu.com/blog/2009/08/19/localization-your-iphone-os-applications-in-xcode/">localization tutorial</a> to be the best.<br />
Have fun! Amusez vous!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/03/14/what-english-is-not-the-only-spoken-language-in-the-world/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Starting my first real iPhone application for the App Store</title>
		<link>http://www.orangeherring.com/2010/03/13/starting-first-major-iphone-application-project-for-the-app-store/</link>
		<comments>http://www.orangeherring.com/2010/03/13/starting-first-major-iphone-application-project-for-the-app-store/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 06:56:28 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[Core Data]]></category>
		<category><![CDATA[Core Location]]></category>
		<category><![CDATA[In App Purchase]]></category>
		<category><![CDATA[Internationalization]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[localization]]></category>
		<category><![CDATA[MapKit]]></category>
		<category><![CDATA[NSURLConnection]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Tab Bars]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=93</guid>
		<description><![CDATA[I think that it&#8217;s time to apply what I learn on a real project. I have several ideas of applications that didn&#8217;t really exist yet but was more excited about one of them so I&#8217;m starting with this one. I&#8217;ll call this the App#1 as it&#8217;s the first real one. I prefer not talking about [...]]]></description>
			<content:encoded><![CDATA[<p>I think that it&#8217;s time to apply what I learn on a real project. I have several ideas of applications that didn&#8217;t really exist yet but was more excited about one of them so I&#8217;m starting with this one. I&#8217;ll call this the App#1 as it&#8217;s the first real one.<br />
I prefer not talking about it on the blog yet before it&#8217;s released on the app store. I&#8217;m new at iPhone programming and will take time to build this first application so sharing my idea on the web may result in someone else doing it before me. Not cool don&#8217;t u think? That being said, I&#8217;ll share on this blog the process of creating it so others can learn from it.<br />
At a high level, this application will present data in table views and maps to users to help them use a service provided by cities around the world (no, it&#8217;s not the subway). It&#8217;s a good project for me to apply what I learned in books so far. The project will help me cover quite a few areas of the iPhone programming as well as web programming. The list below gives an overview but I&#8217;ll go in detail for each of them and share in this blog what source I used to code them.</p>
<p><strong>Building REST server</strong><br />
IThe data that will be displayed on the application exist in different format on the web. Some through web service APIs (by far the easiest to access), some through regular web sites. In order to cover many cities, I&#8217;ll be building my own REST server. This server will be in charge of extracting data from all cities (regardless of the way the data is presented) and presenting it to my iPhone application using JSON.</p>
<p><strong>Accessing data from web asynchronously</strong><br />
I&#8217;ll need to be able to access my REST server asynchronously to download the data and present them on the iPhone and will use NSURLConnection for that.</p>
<p><strong>Localization and Internationalization</strong><br />
The service I&#8217;m talking about here is in multiple cities and multiple countries so it&#8217;s important for me to build an application in multiple languages right away. Being fluent in English and French, I&#8217;ll start with those 2 languages before I add more.</p>
<p><strong>Data persistence using Core Data</strong><br />
Some data will need to be saved locally on the iPhone application and I&#8217;m planning to use core data for this.</p>
<p><strong>Tab Bars</strong><br />
The application will have multiple screens so I decided to use tab bars to provide an easy navigation between the screens to the users.</p>
<p><strong>Maps using MapKit</strong><br />
Some data will need to be located on maps to MapKit will be good to use. </p>
<p><strong>Core Location</strong><br />
I&#8217;ll need to show the users where they are on the map and will use Core Location to do so. This will return me the latitude and longitude of the </p>
<p><strong>iPhone 3.0 and above</strong><br />
Core data and MapKit being introduced with the SDK 3.0, this will be a requirement to have this SDK and above to use the application.  This is limiting the number of users but I&#8217;m ok with it as it&#8217;s allowing me to user features that are important in iPhone programming.</p>
<p><strong>In App Purchase</strong><br />
I&#8217;m planning to sell the application for a few bucks but also to have a free version to people can use a limited version of the application and buy it if they like it. Many developers are doing this by having 2 versions of the same application (a &#8220;Lite&#8221; one and a &#8220;Full Version&#8221; one). Apple introduced few months ago the &#8220;In App Purchase&#8221; features which allow developers to build one single application that let users download a free application and they upgrade without having to download a different version.</p>
<p>I&#8217;m sure that this list is not complete and that I&#8217;m forgetting things along the way. But there is enough in this list to keep me working for a while. Let&#8217;s just hope that at the end at least 1 person will buy my app&#8230; <img src='http://www.orangeherring.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/03/13/starting-first-major-iphone-application-project-for-the-app-store/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPhone Simulator Screen Capture</title>
		<link>http://www.orangeherring.com/2010/02/10/iphone-simulator-screen-capture/</link>
		<comments>http://www.orangeherring.com/2010/02/10/iphone-simulator-screen-capture/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:52:51 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[capture me]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mac screenshot]]></category>
		<category><![CDATA[screen capture]]></category>
		<category><![CDATA[simulator]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=78</guid>
		<description><![CDATA[In order to share with you the applications I&#8217;m creating on the iPhone, I need to capture the iPhone screen. Not deploying them to a device yet, I need to capture the image from the simulator itself. The most common way to do so screen capture on Macs is to use a special combination of [...]]]></description>
			<content:encoded><![CDATA[<p>In order to share with you the applications I&#8217;m creating on the iPhone, I need to capture the iPhone screen. Not deploying them to a device yet, I need to capture the image from the simulator itself.<br />
The most common way to do so screen capture on Macs is to use a special combination of keys (Command-Shift-4) and then use the mouse to select the area to capture. More details <a target="_blank" href="http://graphicssoft.about.com/od/screencapturemac/ht/macscreenshot.htm">here</a>.<br />
This way works fine but requires me to be very accurate in the way I select the area to capture each time that I need to capture a new screen.<br />
Looking online, I found a better, easier and still free way using a tool called &#8220;<a target="_blank" href="http://www.chimoosoft.com/products/captureme/">Capture me</a>&#8220;.  When you start it, it gives you a transparent window that you can resize and place on top of the iPhone simulator. Then, you just have to click in the middle to capture the screen and save the picture on your hard drive. The good thing with it is that you can keep the capture area the way it is for all capture and don&#8217;t have to resize it each time.<br />
Here is how it looks below:<br />
<a target="_blank" href="http://www.orangeherring.com/wp-content/uploads/2010/02/CaptureMeScreen.jpg"><img src="http://www.orangeherring.com/wp-content/uploads/2010/02/CaptureMeScreen-e1265841991521.jpg" alt="" title="CaptureMeScreen" width="300" height="466" class="aligncenter size-full wp-image-79" /></a> </p>
<p>In case you need to capture the screen of your iPhone or iPod then you can use the tool provided by XCode called organizer: more details <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/Xcode/Conceptual/iphone_development/128-Managing_Devices/devices.html#//apple_ref/doc/uid/TP40007959-CH4-SW19">here</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/02/10/iphone-simulator-screen-capture/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>First small project with iPhone Flickr API and JSON</title>
		<link>http://www.orangeherring.com/2010/02/10/first-small-project-with-iphone/</link>
		<comments>http://www.orangeherring.com/2010/02/10/first-small-project-with-iphone/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 22:28:42 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[Flickr Set]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[REST]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=52</guid>
		<description><![CDATA[As I said in my previous post, I worked on a small project to apply some of what I learned, the &#8220;Simple Flickr&#8221; application. What this application is doing is very simple: it allows me to browse my public pictures on the iPhone. I&#8217;m an amateur photograph and posted my pictures on Flickr some time [...]]]></description>
			<content:encoded><![CDATA[<p>As I said in my previous post, I worked on a small project to apply some of what I learned, the &#8220;Simple Flickr&#8221; application. What this application is doing is very simple: it allows me to browse my public pictures on the iPhone. I&#8217;m an amateur photograph and posted my pictures on Flickr some time ago to get other people&#8217;s reviews. I decided back then to organize my photos by sets which is a way to group photos on Flickr (flower set, landscape set,&#8230;). What this simple flickr application is doing is presenting all the sets with their main screen&#8230;<br />
<a target="_blank" href="http://www.orangeherring.com/wp-content/uploads/2010/02/simpleFlickrscreen1.jpg"><img class="aligncenter size-full wp-image-53" title="Main Window: Set List" src="http://www.orangeherring.com/wp-content/uploads/2010/02/simpleFlickrscreen1-e1265838976199.jpg" alt="Main Window: Set List" width="300" height="566" /></a><br />
&#8230; and give the ability for the user to click on a set and get the list of pictures within the selected set: <br />
<a target="_blank" href="http://www.orangeherring.com/wp-content/uploads/2010/02/simpleFlickrscreen2.jpg"><img src="http://www.orangeherring.com/wp-content/uploads/2010/02/simpleFlickrscreen2-e1265839188132.jpg" alt="Sub Window: Photo List from Set" title="Sub Window: Photo List from Set" width="300" height="566" class="aligncenter size-full wp-image-54" /></a> <br />
This project is obviously too simple to be a candidate for the App Store but it was good to apply what I learned. While doing it I realized that some concepts were not clear and I had to go back to the head first book and get help online to clarify things which is a good thing.<br />
My code is very much based on the 3 parts tutorial mentioned in the prior post <a target="_blank" href="http://iphonedevelopertips.com/networking/iphone-json-flickr-tutorial-part-1.html">JSON/Flickr Tutorial</a>. What is different is that it&#8217;s getting my pictures and not pictures from others based on keywords.<br />
Code wise, the author of the tutorial created multiple arrays to store the picture names, small and medium photos (large one don&#8217;t fit in the iPhone). My approach was a bit different and I decided instead to create 1 single array of a dictionary which allowed me to have all the data in 1 single object.<br />
The data and pictures are extracted dynamically using the Flickr API. I do a REST call to get data and ask for a json format back as it&#8217;s very easy in Objective-C to fit in NSArrays or NSDictionaries.<br />
I&#8217;m using the flickr.photosets.getList API to get the list of sets and their picture:<br />
<code>@"http://api.flickr.com/services/rest/?method=flickr.photosets.getList&#038;api_key=%@&#038;user_id=%@&#038;format=json&#038;nojsoncallback=1"<br />
</code>I&#8217;m then using the flickr.photosets.getPhotos API to get the list of photos for a particular set:<br />
<code>@"http://api.flickr.com/services/rest/?method=flickr.photosets.getPhotos&#038;api_key=%@&#038;photoset_id=%@&#038;user_id=%@&#038;format=json&#038;nojsoncallback=1"</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/02/10/first-small-project-with-iphone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Second phase of iPhone Application training</title>
		<link>http://www.orangeherring.com/2010/02/01/second-phase-of-iphone-application-training/</link>
		<comments>http://www.orangeherring.com/2010/02/01/second-phase-of-iphone-application-training/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 06:36:06 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[CS193P]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[head first]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone application]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[stanford]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=39</guid>
		<description><![CDATA[Being now done with my first iPhone technical book (referring to my first post below: first blog post) called Head First iPhone Development, I now feel that I have the basic skills required to do simple applications (we all have to start somewhere). To put this knowledge in practice, I&#8217;ve decided to build a simple [...]]]></description>
			<content:encoded><![CDATA[<p>Being now done with my first iPhone technical book (referring to my first post below: <a target="_blank" href="http://www.orangeherring.com/2010/01/25/iphone-apps-programming-kickoff/">first blog post</a>) called <a href="http://www.amazon.com/Head-First-iPhone-Development-Applications/dp/0596803540" target="_blank">Head First iPhone Development</a>, I now feel that I have the basic skills required to do simple applications (we all have to start somewhere).<br />
To put this knowledge in practice, I&#8217;ve decided to build a simple application that will display my pictures from flickr on the iPhone. Keeping the pictures grouped in &#8220;Sets&#8221;, I plan to list the sets in a table view with the ability to drill-down and see the images in larger format. This is actually requiring to use web services which is not covered at all in the Head First book but I found a tutorial on the web talking about it. This tutorial is showing how to call the flickr API from the iPhone using JSON: <a target="_blank"  href="http://iphonedevelopertips.com/networking/iphone-json-flickr-tutorial-part-1.html">JSON/iPhone tutorial</a></p>
<p>While the Head First book gave me some good foundation on iPhone programming with Objective-C and the Cocoa touch framework, I still feel unclear certain areas, so I&#8217;ve decided to dig deeper by going back to 2 other training materials that I found earlier which are:</p>
<ul>
<li> The videos of iPhone programming class given at Stanford university. Believe it or not but the class is being taught right now by Apple developers and and made available for free on iTunes University: <a target="_blank" href="http://deimos3.apple.com/WebObjects/Core.woa/Browse/itunes.stanford.edu.3124430053.03124430055.3141732992?i=1140748164">CS 193P iPhone Application Programming(Stanford University)</a></li>
<li>The apple documentation itself that can be found online: <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html">iPhone Application Programming Guide</a>, as well as <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html">the iPhone Human Interface Guidelines</a> which helps application developers prepare their applications in accordance with the guidelines set by Apple.</li>
</ul>
<p>This is a lot of material to go through and this will take quite some time. Talking like a real geek, I&#8217;ve planned to multithread this by continuing my training with the material above while doing gradually more sophisticated projects so we&#8217;ll see how it goes. This allows me to deepen my technical knowledge while keeping my hands dirty. Let&#8217;s see how it goes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/02/01/second-phase-of-iphone-application-training/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Numbers around iPhone Business</title>
		<link>http://www.orangeherring.com/2010/02/01/numbers-around-iphone-business/</link>
		<comments>http://www.orangeherring.com/2010/02/01/numbers-around-iphone-business/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:40:51 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[att]]></category>
		<category><![CDATA[gigaom]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[part manufacturer]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=35</guid>
		<description><![CDATA[This story, published on the gigaom blog, shows how Apple but also companies linked to the iPhone (AT&#38;T, iPhone parts manufacturers,&#8230;) benefit from its success. http://gigaom.com/2009/12/09/who-is-getting-rich-off-the-iphone/]]></description>
			<content:encoded><![CDATA[<p>This story, published on the gigaom blog, shows how Apple but also companies linked to the iPhone (AT&amp;T, iPhone parts manufacturers,&#8230;) benefit from its success.</p>
<p><a target="_blank" href="http://gigaom.com/2009/12/09/who-is-getting-rich-off-the-iphone/"> http://gigaom.com/2009/12/09/who-is-getting-rich-off-the-iphone/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/02/01/numbers-around-iphone-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone Application Programming Kickoff</title>
		<link>http://www.orangeherring.com/2010/01/25/iphone-apps-programming-kickoff/</link>
		<comments>http://www.orangeherring.com/2010/01/25/iphone-apps-programming-kickoff/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 22:01:33 +0000</pubDate>
		<dc:creator>The Orange Herring</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[developpement]]></category>
		<category><![CDATA[head first]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod touch]]></category>
		<category><![CDATA[object oriented programming]]></category>
		<category><![CDATA[programmation]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.orangeherring.com/?p=16</guid>
		<description><![CDATA[Hello World! That&#8217;s it. After 15 years of diverse programming and software management experience, I&#8217;ve decided to find a new challenge and start iPhone programming from scratch. My main motivations are: - Embark on this rapidly growing business which is to sell iPhone applications - Use my creativity to come up with new applications which [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Hello World!</strong><br />
That&#8217;s it. After 15 years of diverse programming and software management experience, I&#8217;ve decided to find a new challenge and start iPhone programming from scratch.<br />
My main motivations are:<br />
- Embark on this rapidly growing business which is to sell iPhone applications<br />
- Use my creativity to come up with new applications which haven&#8217;t been thought of yet (hopefully, there are still some left <img src='http://www.orangeherring.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  )<br />
- Spend more time coding and less time managing. I do both in my current day job but I feel the need to immerse myself deeply in a new technology and become an expert at it.<br />
iPhone programming is pretty hot right now, so I think that sharing my experience and learnings in a blog may help others achieve similar goals.</p>
<p><strong>Learning process</strong><br />
People have different preferences to learn new technology. For me, I need to have hands on experience quickly while learning the fundamentals of the technology. After comparing books on Amazon, I came up with a great book called:<br />
<a target="_blank" href="http://www.amazon.com/Head-First-iPhone-Development-Applications/dp/0596803540/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1264454965&#038;sr=1-1">&#8220;Head First iPhone Development&#8221;</a><br />
It&#8217;s not my first book from the head first edition (I went through HTML/XHTML, Java and Object Oriented Programming books before). What I like about these books is that they give u a way to create small projects quickly while gradually introducing more complex concepts at the same time. This is again the case for this iPhone book which lets you build simple iPhone projects while teaching you what you need to know about Objective-C, Cocoa Touch framework and programming design patterns.</p>
<p>The first prerequisite for this book to have done some programming, especially object oriented programming. If you&#8217;re completely new to it, then the book will be overwhelming quickly. If that&#8217;s the case for you, this book: <a target="_blank"  href="http://www.amazon.com/Head-First-Object-Oriented-Analysis-Design/dp/0596008678/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1264455386&#038;sr=1-1">Head First Object Oriented Analysis and Design (OOAD)</a> can help you with Object Oriented concepts.<br />
The second prerequisite is to have a mac. Apple has its own IDE (Integrated Development Environment) called XCode which only runs on Macs. So if you&#8217;re serious about iPhone Apps programming, then there is no other than going to your closest Apple store and getting yourself a Mac.<br />
Getting an iPhone/iPod Touch is actually not necessary on day 1 but will be required for future testing. The whole head first book can actually be done using the simulator that runs on mac too.<br />
Once you&#8217;re have a device and want to deploy your new project on it, you&#8217;ll need to sign up for the iPhone Developer Program which is $99 per year. If you don&#8217;t have an iPhone yet and don&#8217;t want to buy one, you can still deploy your apps to an iPod Touch instead. It will work fine and will just require a wifi connection to be able to connect to the internet. The only limitations are some features available on iPhone and not on iPodTouch (GPS, 3G network, Camera,&#8230;).<br />
That&#8217;s pretty much it for the prerequisites.<br />
In my case, I don&#8217;t have an iPhone yet and will be using an iPod Touch for testing. For now, I test the small apps that I have to write from the book on the simulator only and will sign up for the iPhone Developer program once I&#8217;m done with the book.<br />
My goal right now, is to finish this head first book and do all the exercises by the end of 01/12/2010 (6 days away). I started 10 days ago and I&#8217;m already through 2/3 of the book so it&#8217;s achievable.<br />
At this point, I feel like I already have a good understanding of how to do simple TableView based applications so that&#8217;s rewarding.  By the time I&#8217;m done with this first book, I should have a good understanding of the major concepts. After that, I plan to go deeper with other materials (no books this time) which I&#8217;ll cover later on in this blog. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.orangeherring.com/2010/01/25/iphone-apps-programming-kickoff/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

