iPhone Development
      PiTechnologies


                        Ahmed Yossef
                       16th July, 2011
About Me
     Ahmed Yossef
Agenda

The Amazing Apple
iPhone Market - The App Store
Your Opportunity
You Career
Kick Off iPhone Development
Apple Story
Start

1976
Steve Jobs
Same like Google and HP
Garage ... again
How ?
                         fund/
  idea      Prototype               Company
                        marketing

  1,000        1 What about Us ?
                            0          0

1,000,000     100
Stack Completed
       Devices              Software


Computers        iDev   Mac OS         iOS

 MacPRO      iPhone
                         MAC            iOS
 MacMini      iPad
                         Apps          Apps
MacBook        iPod
MacServer
Product Line

Apple I
Apple II and Apple III
MAC
So on ...
The Secrets
Rules of Success


Rule #1 : Never lose a customer                         all
                                              . ..   at
Rule #2 : Never forget rule #1
                                         easy
                                     not
                               It is
Customer Satisfaction

Performance
Stability
Reliability
Parallel Innovation - like nothing else
Customer Satisfaction

Revolutions
iPod
iPhone
iPad
iPhone Market
Apple Amazing Idea

App Store
Gather every parties in one market
Exclusive market
Exclusive but good - remember it !
The Amazing Store
How store work
   Shares per download
   Ratings and reviews
Volume of work                      Disappointed?
                                         Never
   15,000 app submissions a week
   100,000,000,000 downloads in first 90 days
Your Opportunity
Opportunity
          Job Opportunity

         Do you know C++ ?
                       80
      A Job Opportunity is here
                    19
                  :
                te/ month
              Da
          5,000$
           Please Apply :(

         Location: Newyork
Opportunities are based on




          AND
Interested ... Go on !

Opportunities in general are based on: time and place
Your opportunity is: NOW and in Egypt
   Growing market
   Rare developers
Real Opportunity

Why Egypt ?
Real opportunity after all this number of apps
Arabic content
Arabic category
Career Types
Career Categories
   Employed
   Own business
   Self-employed
                       Wrong Question
   Which is better ?
   It is about properties ... nothing
   fits all
Being an Employee

Part of the process
Guided
Fixed salary
Stable life
Running Your Own Business

Creating the process
Guiding and managing
No fixed income
    Poor like MARK - Facebook :(

Exciting life.
Starting Your Own Business

            HOW?
          A lot of money
                 OR
        Be a self employed
Being Self-Employed
                                  ITO Professional
Learn what you want
Work what you want
Work when you want
Then get paid, it is simple ...
It is not for All


Self motivation: You can't wait for an offer to be a freelancer.
Knowledge: It is hard to be a freelancer nuclear engineer.
Kick Off
Do you like Apple ?

               Yes Does not matter !No
         If you like Apple .... develop for iPhone
     If you do NOT like Apple ... develop for iPhone
If you want to be a mobile applications developer
     develop for all working mobile phones
Mobile Development ..
        why
Mobile, web and desktop development


Time of development: varies according the application itself, but in
general, mobile applications development is the fastest.
Customers: mobile users are more than web and desktop applications
users.
Job availability: it is more likely to develop mobile applications as
freelancer than web and desktop development.
Mobility is a feature.
iPhone Development ..
        why
iPhone development benefits
  Customers
     Every iPhone holder is a customer

  Ease of marketing
     Just upload to the store

     Customers are ready to try, you don’t have to convince
     them.
iPhone Development ..
        how
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 MAC

You have two options
   Buy a Mac

   Try Hackintosh for Intel
       Install native

       Use a virtual machine
Native VS Virtual

Native is faster than virtual installation in general, because
all machine resources are fully dedicated.
Virtual is more mobile and easier to distribute just export
and import
VM Overview
Virtual Machine: is a software simulated machine on your
host PC
Basic Operations:
   Create a machine

   Import a machine

   Export an existing machine

   Run a machine
VM ... How?
There are two main applications for VM
VMWare
   To create use: the “work station”, it is not free

   To run use: the “player”, it is free

VirtualBox
   By Sun, you can do it all with a free single application
Developer license
Registration is optional when you develop, but it is a must if
you want to put your apps on the store.
When you are registered you can download your development
tools for free
You register for an iPhone developer license for 99$ per year.
You are in Egypt, so you have to send a fax, you can’t register
online... even after 25Jan
iOS SDK
iOS SDK: enables you to develop iPhone applications on
XCode, as XCode is used to develop by default applications
for Mac OS
iOS SDK Contains:
   XCode

   iOS Simulator

   iOS developer documentation
XCode
XCode: is your soulmate IDE
   XCode 3 is free, XCode 4 is not

   To download or buy, you must have an iTunes account

It contains:
   iPhone simulator, for simulating your applications

   Instruments, for testing the performance of your application running on a
   physical device
Development Skills
Mobile App Dev Concepts

To develop for mobile devices you have to consider:
   Memory limitation
   Power limitation
   Processing limitation
Programming Languages

We can develop for iPhone in:
   Objective-c
   C#
   JavaScript and CSS
   .....
What is difference ?

Objective - C enables you to create native applications
Native:
   Faster
   Efficient
Makes you able to use Apple APIs
iOS Development
iOS development

It is iOS development not iPhone development
You develop and application for the iOS so every devices
runs iOS can run your application
This is called portability
What is “independent”?
       Independent


                        App


    Platform 2       Platform 1
Independent ... How?


                    App

    Platform 2   Platform 1
iOS for all iDevices

The duel interface layer that makes our apps runnable
among different HW architecture, is useless when HW does
not support certain feature
Ex: Your image capture program should work on different
devices, BUT they must have a camera
Identifying your HW

If you want to make a real full portable application for iOS
you have to check HW features first.
You can run the same app on iPhone and iPod, but don’t
expect the same result if you use iPhone’s camera while iPod
doesn’t has camera
iOS Architecture
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
Layer


In general you don’t use all layers, you also don’t use all
frameworks in certain used layer.
Layer is a group of frameworks, has common purpose.
What is Framework ?

Framework: is a directory that contains a dynamic shared
library and the resources (such as header files, images,
helper applications, and so on) needed to support that
library.
Framework: helps you to write applications independent of
the hardware.
Finally, if you want to do something
             start it today
       tomorrow never comes
Thank You :)

Developer's got talent iPhone

  • 1.
    iPhone Development PiTechnologies Ahmed Yossef 16th July, 2011
  • 2.
    About Me Ahmed Yossef
  • 3.
    Agenda The Amazing Apple iPhoneMarket - The App Store Your Opportunity You Career Kick Off iPhone Development
  • 4.
  • 5.
    Start 1976 Steve Jobs Same likeGoogle and HP Garage ... again
  • 6.
    How ? fund/ idea Prototype Company marketing 1,000 1 What about Us ? 0 0 1,000,000 100
  • 7.
    Stack Completed Devices Software Computers iDev Mac OS iOS MacPRO iPhone MAC iOS MacMini iPad Apps Apps MacBook iPod MacServer
  • 8.
    Product Line Apple I AppleII and Apple III MAC So on ...
  • 9.
  • 10.
    Rules of Success Rule#1 : Never lose a customer all . .. at Rule #2 : Never forget rule #1 easy not It is
  • 11.
  • 12.
  • 13.
  • 14.
    Apple Amazing Idea AppStore Gather every parties in one market Exclusive market Exclusive but good - remember it !
  • 15.
    The Amazing Store Howstore work Shares per download Ratings and reviews Volume of work Disappointed? Never 15,000 app submissions a week 100,000,000,000 downloads in first 90 days
  • 16.
  • 17.
    Opportunity Job Opportunity Do you know C++ ? 80 A Job Opportunity is here 19 : te/ month Da 5,000$ Please Apply :( Location: Newyork
  • 18.
  • 19.
    Interested ... Goon ! Opportunities in general are based on: time and place Your opportunity is: NOW and in Egypt Growing market Rare developers
  • 20.
    Real Opportunity Why Egypt? Real opportunity after all this number of apps Arabic content Arabic category
  • 21.
  • 22.
    Career Categories Employed Own business Self-employed Wrong Question Which is better ? It is about properties ... nothing fits all
  • 23.
    Being an Employee Partof the process Guided Fixed salary Stable life
  • 24.
    Running Your OwnBusiness Creating the process Guiding and managing No fixed income Poor like MARK - Facebook :( Exciting life.
  • 25.
    Starting Your OwnBusiness HOW? A lot of money OR Be a self employed
  • 26.
    Being Self-Employed ITO Professional Learn what you want Work what you want Work when you want Then get paid, it is simple ...
  • 27.
    It is notfor All Self motivation: You can't wait for an offer to be a freelancer. Knowledge: It is hard to be a freelancer nuclear engineer.
  • 28.
  • 29.
    Do you likeApple ? Yes Does not matter !No If you like Apple .... develop for iPhone If you do NOT like Apple ... develop for iPhone If you want to be a mobile applications developer develop for all working mobile phones
  • 30.
  • 31.
    Mobile, web anddesktop development Time of development: varies according the application itself, but in general, mobile applications development is the fastest. Customers: mobile users are more than web and desktop applications users. Job availability: it is more likely to develop mobile applications as freelancer than web and desktop development. Mobility is a feature.
  • 32.
  • 33.
    iPhone development benefits Customers Every iPhone holder is a customer Ease of marketing Just upload to the store Customers are ready to try, you don’t have to convince them.
  • 34.
  • 35.
    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
  • 36.
    How to geta MAC You have two options Buy a Mac Try Hackintosh for Intel Install native Use a virtual machine
  • 37.
    Native VS Virtual Nativeis faster than virtual installation in general, because all machine resources are fully dedicated. Virtual is more mobile and easier to distribute just export and import
  • 38.
    VM Overview Virtual Machine:is a software simulated machine on your host PC Basic Operations: Create a machine Import a machine Export an existing machine Run a machine
  • 39.
    VM ... How? Thereare two main applications for VM VMWare To create use: the “work station”, it is not free To run use: the “player”, it is free VirtualBox By Sun, you can do it all with a free single application
  • 40.
    Developer license Registration isoptional when you develop, but it is a must if you want to put your apps on the store. When you are registered you can download your development tools for free You register for an iPhone developer license for 99$ per year. You are in Egypt, so you have to send a fax, you can’t register online... even after 25Jan
  • 41.
    iOS SDK iOS SDK:enables you to develop iPhone applications on XCode, as XCode is used to develop by default applications for Mac OS iOS SDK Contains: XCode iOS Simulator iOS developer documentation
  • 42.
    XCode XCode: is yoursoulmate IDE XCode 3 is free, XCode 4 is not To download or buy, you must have an iTunes account It contains: iPhone simulator, for simulating your applications Instruments, for testing the performance of your application running on a physical device
  • 43.
  • 44.
    Mobile App DevConcepts To develop for mobile devices you have to consider: Memory limitation Power limitation Processing limitation
  • 45.
    Programming Languages We candevelop for iPhone in: Objective-c C# JavaScript and CSS .....
  • 46.
    What is difference? Objective - C enables you to create native applications Native: Faster Efficient Makes you able to use Apple APIs
  • 47.
  • 48.
    iOS development It isiOS development not iPhone development You develop and application for the iOS so every devices runs iOS can run your application This is called portability
  • 49.
    What is “independent”? Independent App Platform 2 Platform 1
  • 50.
    Independent ... How? App Platform 2 Platform 1
  • 51.
    iOS for alliDevices The duel interface layer that makes our apps runnable among different HW architecture, is useless when HW does not support certain feature Ex: Your image capture program should work on different devices, BUT they must have a camera
  • 52.
    Identifying your HW Ifyou want to make a real full portable application for iOS you have to check HW features first. You can run the same app on iPhone and iPod, but don’t expect the same result if you use iPhone’s camera while iPod doesn’t has camera
  • 53.
  • 54.
    iOS Layers CocoaTouch Layer Media Layer Core Service Layer Core OS Layer
  • 55.
    iOS Layers CocoaTouch Layer It is Objective-C layer Media Layer Most used by developers Core Service Layer Core OS Layer
  • 56.
    iOS Layers CocoaTouch Layer Media Layer It is Objective-C layer Contains Audio and Core Service Layer Video libraries Core OS Layer
  • 57.
    iOS Layers CocoaTouch Layer Media Layer Core Service Layer It is C layer Contains low level Core OS Layer operations
  • 58.
    iOS Layers CocoaTouch Layer Media Layer Core Service Layer It is C layer Core OS Layer Contains the C libs for the OS kernel
  • 59.
    Layer In general youdon’t use all layers, you also don’t use all frameworks in certain used layer. Layer is a group of frameworks, has common purpose.
  • 60.
    What is Framework? Framework: is a directory that contains a dynamic shared library and the resources (such as header files, images, helper applications, and so on) needed to support that library. Framework: helps you to write applications independent of the hardware.
  • 61.
    Finally, if youwant to do something start it today tomorrow never comes
  • 62.