Learning Mobile App & Game Dev with Corona
Learning Mobile Application and Game Development with Corona SDK
Textbook for Mobile Application Development
Author: Brian G. Burton, Ed.D.
Foreword by: Walter Luh, CEO of Corona Labs, Inc.
Status: Early release is now available. The first 10 chapters are now available for early purchase. As additional chapters become available, you will receive notices and be able to download the updates. The early release is still a work in progress thus is offered at a substantial discount and is only available as a PDF. When finalized, early release purchasers will have the option of also receiving the eTextbook in ePub or mobi.
Early Release: $29.99 PDF Only
Target Audience: High School/college students and others with little or no programming experience.
Format: PDF, ePub, mobi, iBook Interactive
Price: $39.99 for PDF, ePub, or mobi. iBook Interactive will be avail. through the Apple iBookstore for $44.99. .
Download Code Samples and Resource Files
Description:
Learning Mobile Application & Game Development with Corona SDK introduces programming concepts in an incremental, pedagogically friendly method. Additional topics include: how to identify the needs and create the user interface for apps, provide opportunities for students to collaborate on the projects, conduct research in the mobile industry, provide opportunities to exercise critical thinking skills, learn responsibilities as digital citizens, and gain additional technology skills.
This textbook is designed to teach programming skills and meet all curriculum requirements as proposed by the Texas Education Agency 9/2012 update, section 126.39 (T.E.A. §126.39).
Of course, the textbook isn’t exclusively intended for just Texas high school students. I am writing in a way that will hopefully make the book accessible to anyone who would like to learn to create mobile applications but has no previous programming experience.
As an added bonus, Learning Mobile Application & Game Development with Corona eTextbook includes an appendix on the new Corona Certified Developer Exam. All topics on the exam are covered in the eTextbook.
Table of Contents (may change as content is finalized):
Chapter 1: Introduction to Mobile App Development
Learning Objectives
Introduction to Mobile Application Development
First, an assumption
Mobile Operating Systems
Google Android
Apple iOS
Blackberry
Windows 8
Cross-Platform Development
One Last Note Before We Get Started
Developing Mobile Applications
Software That You Will Need
Setting Up Your Software
Setting up Your Hardware
Test Devices
Android
iOS
Book Examples and Graphics
Editors
Our First Project: Hello World
Project 1.0: Hello World
Project Setup
Debugging
Project 1.1: Hello World (v2.0)
Introducing Objects
Summary
Programming Vocabulary
Questions
Assignments
Chapter 2: Introduction to Functions
Learning Objectives
Name that Object
Local vs. Global Variables
How to Code Comments
Device Boundaries
Project 2.1 Display Size
Functions
Event Listeners
Project 2.1: Fun with Buttons
Project 2.2: Fun with Buttons
Throw in a Little Fancy
How Corona reads the main.lua file
API Documentation
Summary
Programming Vocabulary
Questions
Assignments
Chapter 3: Animation and Orientation
Learning Objectives
Animation
Boolean Practice
How to Code Decision Statements
if-then
if-then-else
if-then-elseif
if-then-elseif-else
Nested if-then
Loops
for-next
while-do
repeat-until
Nested Loops
Infinite Loops
Math API
Project 3.0: Basic Animation
Alpha
Now You See It, Now You Don’t
Project 3.1: Alpha Fun
Orientation change
Project 3.2: A New Orientation
Summary
Programming Vocabulary
Questions
Assignments
Practice
Chapter 4: Working with Data
Learning Objectives
TextField and TextBox
The String API
The Math API
Project 4.0: What’s Your Age?
Publishing to Device
Publishing to an Apple iOS Device
iOS Simulator Build
Apple iOS Device Build
Android OS Device Build
Summary
Programming Vocabulary
Questions
Assignments
Chapter 5 Working with Graphics
Learning Objectives
Vector Graphics
Project 5: Vector Shapes
Bitmap Graphics
Icons
Android
Apple
Build.Settings and Config.lua
build.settings
config.lua
Dynamic Content Scaling
Dynamic Image Resolution
Scaling
Masking
Project 5.1: Masks
Sprite Sheets
Project 5.2: Sprites
Project 5.3 Sprite Animation
Sprite Control Methods
Sprite Properties
Sprite Event Listeners
Other Uses of Image/Sprite Sheets
Summary
Assignments
Chapter 6: Creating the User Experience
Learning Objectives
The User Experience
Hiding the Status Bar
Custom Fonts
Project 6.0 Custom Fonts
Groups
Project 6.1: Group Movement
Modules and Packages
Storyboard
Project 6.2 A Simple Story
Project 6.3: Creating a Splash Screen
Summary
Assignments
Chapter 7: Working with Media
Learning Objectives
Audio
Sound File Types
Timing Is Everything
Streams and Sounds
Basic Audio Controls
Duration Audio Controls
Volume Controls
Audio Channels
Project 7.0: Beat-box
config.lua file
build.settings file
Where did I put that file?
Movies
Camera
Project 7.1 X-Ray Camera
Recording Audio
Summary
Assignments
Chapter 8: A Little Phun with Physics
Learning Objectives
Turn on Physics
Scaling
Bodies
Body Types
Density, Friction, and Bounce
Body Shapes
Body Properties
Body Methods
Gravity
Ground and Boundaries
Project 8.0: Playing with Gravity
Collision Detection
Sensors
Joints
Pivot Joint
Distance Joint
Piston Joint
Friction Joint
Weld Joint
Wheel Joint
Pulley Joint
Touch Joint
Common Methods and Properties for Joints
Project 8.1 Sample Physics Projects
8.1A: Touch Joint
8.1B: Pulley Joint
Project 8.2: Wrecking Ball
Trouble Shooting Physics
Summary
Assignments
Chapter 9: Mobile Game Design
Learning Objectives
Timers
More on Touch/Multi-touch
setFocus
Project 9.0: enterFrame Animation
Game Development
Design Inspiration
Dragging Objects
Collision Detection
Take Your Best Shot
Reducing Overhead
Game Loop
Summary
Assignments
Chapter 10: Tables and Arrays
Learning Objectives
Tables vs. Tables vs. Arrays
Introducing Arrays
Table API
Concatenation
Copy
indexOf
insert
Remove
Sort
Flexibility of Lua Array Tables
The 4th dimension and beyond
Project 10.1 Multi-dimensional Array
Project 10.2 Conway’s Game of Life
Summary
Assignments
Chapter 11: Widgets
Learning Objectives
Widgets
Making Your Widgets Look Good
widget.newButton
Project 10.0 widget.newButton Example
widget.newPickerWheel
Project 11.1 widget.newPickerWheel Example
widget.newProgressView
widget.newSlider
Project 11.2 Widget Slider & Progress View Example
widget.newScrollView
widget.newSegmentedControl
widget.newSpinner
widget.newStepper
widget.newSwitch
widget.newTableView
widget.newTableView Example
widget.newTabBar
Project 11.4 Widget Tab Bar Example
Removing Widgets
Summary
Assignments
Chapter 12: Exception Handling and System Events
Learning Objectives
System Events
Accelerometer
Project 12.0 Accelerometer
Gyroscope
Project 12.1 Gyroscope
GPS
Project 12.2 GPS
Maps
Map Object
Project 12.3 Maps
Summary
Assignments
Chapter 13: File Input/Output
File IO Considerations
Reading Data
Implicit vs. Explicit File Manipulation
Implicit Read
Explicit Read
Writing Data
Implicit
Explicit
JSON
Summary
Assignments
Chapter 14: Working with Databases
Learning Objectives
Database Defined
Database Software
How a Database is Structured
How to create a Database
Working with a Database
LuaSQLite Commands
Project 14.0: Reading a SQLite Database
Project 14.1 Writing to a SQLite Database
Summary
Assignments
Chapter 15: Network Communications
Async HTTP requests
Web Popups
Web Popup Example
Web Services
HTTP
Project 14: Picture Download – Via Network Library
Socket
Project 14a: Picture Download – Via Socket Library
Tracking Network Status
Uploading to a Web server
3-Tier Architecture
Post Example 1: Uploading Form Data
Post Example 2: Uploading Files or Images
Connecting to Proprietary Networks
Facebook
Facebook Example
inMobi
inMobi Example
Pubnub
Project 15.1 Multi-User App
Summary
Assignments
Chapter 16: Head in the Cloud
Chapter 17: Android Native Development
Chapter 18: Web-based app development
Chapter 19: Another Game
Chapter 20: Next Steps and 3rd Party Resources
Where do we go from here?
3rd Party Resources
IDE/Editors
Lua Glider IDE(Mac/Win) by M.Y. Developers
Outlaw IDE by J.A. Whye
Sublime Text
ZeroBane Debugger
Graphics/Physics/Level Editors
Amino (formerly Spriteloq)
Physics Editor by code’n’web – Andreas Löw
Spine by Esoteric Software
SpriteHelper & LevelHelper
Texture Packer by code’n’web – Andreas Löw
Audio
Bfxr
App Testing
TestFlight
HockeyKit
Appendix A: Installation of Corona SDK
Appendix B: Publishing to Apple
Appendix C: Publishing to Android
Appendix D: The Lua Language
Appendix E: Advanced Lua Language
Appendix F: The Path to Certification

7 Comments
[...] all of the curriculum requirements provided by the T.E.A. The working title for the textbook is Learning Mobile Application Development. The text will introduce programming concepts via making mobile apps (a previous course in [...]
This rocks!!!
This book will truly be released this year? The summary is that the post will be a great book. Congrats. Thanks
That is my goal. I will be using the book for a spring semester course, so I’m motivated!-) The writing is going very well so far.
do you have a release date yet, Dr. Burton? I need to begin working on a syllabus for my university that will rely very heavily on your new book. we will be purchasing your books possibly for the Spring quarter or Summer1 at the latest. thanks again!
Mike,
I’m sending you the early release of the text right now!
[...] Learning Mobile App & Game Dev with Corona [...]