Do you like Apple ? Yes Does not matter !No If you like Apple .... develop for iPhone If you do NOT like Apple ... develop for iPhoneIf you want to be a mobile applications developer develop for all working mobile phones
Mobile, web and desktop developmentTime of development: varies according the application itself, but ingeneral, mobile applications development is the fastest.Customers: mobile users are more than web and desktop applicationsusers.Job availability: it is more likely to develop mobile applications asfreelancer than web and desktop development.Mobility is a feature.
Development Environment iPhone, iPad and Mac applications development is restricted, only certain IDE on a certain OS works. In order to develop for iPhone you have to get Mac machine Developer license iOS SDK XCode
How to get a MACYou have two options Buy a Mac Try Hackintosh for Intel Install native Use a virtual machine
Native VS VirtualNative is faster than virtual installation in general, becauseall machine resources are fully dedicated.Virtual is more mobile and easier to distribute just exportand import
VM OverviewVirtual Machine: is a software simulated machine on yourhost PCBasic Operations: Create a machine Import a machine Export an existing machine Run a machine
VM ... How?There are two main applications for VMVMWare To create use: the “work station”, it is not free To run use: the “player”, it is freeVirtualBox By Sun, you can do it all with a free single application
Developer licenseRegistration is optional when you develop, but it is a must ifyou want to put your apps on the store.When you are registered you can download your developmenttools for freeYou register for an iPhone developer license for 99$ per year.You are in Egypt, so you have to send a fax, you can’t registeronline... even after 25Jan
iOS SDKiOS SDK: enables you to develop iPhone applications onXCode, as XCode is used to develop by default applicationsfor Mac OSiOS SDK Contains: XCode iOS Simulator iOS developer documentation
XCodeXCode: is your soulmate IDE XCode 3 is free, XCode 4 is not To download or buy, you must have an iTunes accountIt contains: iPhone simulator, for simulating your applications Instruments, for testing the performance of your application running on a physical device
iOS for all iDevicesThe duel interface layer that makes our apps runnableamong different HW architecture, is useless when HW doesnot support certain featureEx: Your image capture program should work on differentdevices, BUT they must have a camera
Identifying your HWIf you want to make a real full portable application for iOSyou have to check HW features ﬁrst.You can run the same app on iPhone and iPod, but don’texpect the same result if you use iPhone’s camera while iPoddoesn’t has camera
iOS Layers Cocoa Touch Layer Media Layer Core Service Layer Core OS Layer
iOS Layers Cocoa Touch Layer It is Objective-C layer Media Layer Most used by developers Core Service Layer Core OS Layer
iOS Layers Cocoa Touch Layer Media Layer It is Objective-C layer Contains Audio and Core Service Layer Video libraries Core OS Layer
iOS Layers Cocoa Touch Layer Media Layer Core Service Layer It is C layer Contains low level Core OS Layer operations
iOS Layers Cocoa Touch Layer Media Layer Core Service Layer It is C layer Core OS Layer Contains the C libs for the OS kernel
LayerIn general you don’t use all layers, you also don’t use allframeworks in certain used layer.Layer is a group of frameworks, has common purpose.
What is Framework ?Framework: is a directory that contains a dynamic sharedlibrary and the resources (such as header ﬁles, images,helper applications, and so on) needed to support thatlibrary.Framework: helps you to write applications independent ofthe hardware.
Finally, if you want to do something start it today tomorrow never comes