Course AND109
Android Graphics Programming and OpenGL ES2.0
Workshop Overview
Android Graphics Programming and OpenGL ES2.0
This is an intensive hands on workshop for those who are already have experience of Java and Android programming. This course concentrates on graphics programming for Android 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 Android devices
- Techiques for storing, transmitting, loading and manipulating images and video
- Virtual reality application development using the Android GPS and Map Kit functions
- Android 2D graphics
- OpenGL ES 1.0 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 Android graphics oriented application development
Prerequisites
Delegates must have a good knowledge of Java programming as well as working knowledge of the developing Java based Android applications.
Course Contents
Overview of Android programming
- Eclipse IDE for Android
- Overview of the Android SDK
- Android - Activities, Views and Resources
- Defining Views and Layouts using XML
- The Android Manifest file
- Intents and Services
- File I/O
- Content Provider Classes
- Core Data
- Networking and web services programming
- Notification and Alarms
Graphics and Animation
- Overview of the Android Graphics API
- XML Drawable Shapes - Drawing Graphics with XML
- Animation and the Android Graphics API
- 3D Graphics Programming with OpenGL ES 1.0
- NDK 3 and access to OpenGL ES 2.0
- OpenGL ES 1.0 and OpenGL ES 2.0 compared
Multimedia and Android
- Overview of the OpenCORE framework
- Playing Audio and Video
- Capturing media - Camera
- Capturing media - Audio
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 Gesture Recognisers
- Custom Keyboards
- Location
- Overview of Location Manager and Location Provider
- MapActivity, Map View and placing data on a map with an Overlay
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
