Course APP105
iPhone and iPad Graphics Programming
Workshop Overview
iPhone and iPad Graphics Programming
This is an intensive hands on workshop for those who are already have experience of Objective C and Cocoa Touch programming. This course concentrates on graphics programming for iPad and iPhone devices. More specifically it is a course concerned with interactive graphics programming. Interactive graphics programming encompasses not only computer games programming but the whole genre of interactive graphics media. This includes applications such as interactive comics and story books, interactive brochures (e.g. furniture catalogs, fitted kitchen catalogs, brochures describing particular models of car ...) It also includes interactive guidance and help systems such as guides to museums and art galleries.
Course Objectives
The course will teach;
- The principles of interactive graphics design and implementation
- Techniques for gesture driven programming based on the touch, tap and accelerometer movement gestures supported by iPhone and iPad devices
- Techiques for storing, transmitting, loading and manipulating images and video
- Virtual reality application development using the GPS and Map Kit functions
- iOS Core Graphics
- Quartz 2D programming
- Cocos 2D programming
- OpenGL ES 2.0 programming
- Animation programming
The case studies covered will include:
- A GPS tool
- A 2D computer game
- An interactive brochure
Target audience
Experienced programmers interested in iPhone application development
Prerequisites
Delegates must have a good knowledge of Objective C programming as well as working knowledge of the Cocoa Touch framework and of Interface Builder. Knowledge of C++ would also be useful, although, all necessary C++ concepts will be covered.
Course Contents
Overview of iPhone and iPad SDK programming
- XCode and Interface Builder
- Delegates and delegation
- Accessing variables as properties
- View Controllers
- Navigation
- Tab bar controllers
- File I/O
- Preferences
- Core Data
- Networking and Internet programming
Overview of iPhone and iPad Media and Interactive Application Support
- Video and Audio
- Events, multi-touch and gestures
- Accessing variables as properties
- Accelerometer
- iPhone Location API
- Map Kit
- File I/O
- Preferences
- Core Data
- Networking and Internet programming
Overview of iOS Graphics Support
- iOS Core Graphics
- iOS Core Animation
- Quartz 2D
- Drawing in Custom Views
- Vector model
- Paths
- Graphics context
- Redisplaying views
- Drawing Images and Photos
- Displaying an Image
- Customising an Image
- Image picking using Image Picker
- Basic Video Capture
- Core Animation
- Overview of the core animation framework
- Animating UIViews
- Layers
- OpenGL ES 2.0
- Photo Library
- Retina - Resolution Independence
Cocos2D Programming
- Overview of the Cocos2D framework
- Adding sprites, moving them with actions, and playing sound effects
- Working with sprite sheets and animations, and moving characters via the accelerometer
- Overview of the Cocos2D Chipmunk game physics library
- Chipmunk joints, impulses, and forces
- Creation and manipulation of large, explorable scrolling worlds using tile maps
- Basics of game creation and design
More Advanced Interactive Programming
- Gestures and Views
- Split views and Popover's
- Discrete vs. Continuous Gestures
- Taps, multiple touches and swipes
- Gestures and the View Hierarchy
- Custom Gestures and Recognisers
- Custom Keyboards
- Web and Media
- Movie Player
- HTTP Live Streaming
- Displaying Content on Another Screen
- Connecting Devices
- Document manipulation, distribution and generation
OpenGL ES2.0 Programming
- Overview of OpenGL ES2.0 for the iPhone
- Introduction to the OpenGL ES2.0 Arachitecture
- Overview of mixed Objective C and C/C++ Programming
- Gentle Introduction to 3D Geometry
- Transformations and Matrices - for non-mathematicians
- Overview of the OpenGL ES2.0 Programmable Pipeline
- OpenGL programs and Shaders
- Understanding and using the OpenGL ES Shading Language
- Textures and Texture Mapping
- Interleaving Per-Vertex Data
- Introduction to Animation - the Principles
- Keyframe Animation
- Quaternions and their uses - a pragmatic approach
