Beginning Mobile App Development with Corona

Beginning Mobile App Development with Corona
By:
Brian G. Burton, Ed.D. 
Copyright: 2011, 2019, 2020

Publisher: Burton’s Media Group
Pages: 342 386 v.1.8.4 (2/2020)
Formats: eTextbook: $24.99 (ePub, mobi, pdf)
ISBN: 978-1-937336-02-8

File Type :

Spanish

Contact sales@BurtonsMediaGroup.com for more information or volume purchases.

Free updates for the life of the eBook!
Schools and bookstores should contact sales@BurtonsMediaGroup.com for volume pricing or review copy requests.

Corona SDK is now Solar2D and Open Source! You can use Beginning Mobile App Development to learn Solar2D.

 Download a Sample Chapter

 Download Code Samples & Resource Files

Description:

Corona SDK allows the mobile app and game developer to create for multiple platforms at the same time.  With the ability to develop for Apple iOS, Android, Windows Desktop, and Mac, you can turn your idea into the next best selling app! Create apps in less time for multiple markets and mobile devices without tedious rewriting.  Includes multiple app examples and how to make top-down and tower defense games!
Beginning Mobile App Development with Corona
is designed to be used as a textbook in college or advanced High School course.

Updates:

Version 1.011 – Minor formatting improvements in ePub & mobi versions and typo fix. Replaced .strokeWidth for lines with .stroke in chapter 5.

Version 1.01-  Updated name change from Ansca Mobile to Corona Labs.  Removed references in chapter 14 to Papaya and Virtual Credits that have been depreciated in current version of Corona SDK. Minor corrections (no program changes) to fix typos.

Version 1.5 – MAJOR UPDATE: Updates to Pedagogy/andragogy & clarity improved throughout the textbook; Update to Widgets chapter to Widgets 2.0; Updates for API changes; Update to new Sprite API.
New Content: How to add Custom Fonts; New Chapter on System Events, GPS, Accelerometer, Compass, and other system tools; New example on working with JSON Files.

Version 1.6 – Updated to Graphics 2.0 (1/12/2014)
Version 1.61 – Minor update to ch. 5 & 17 for Graphics 2.0 (2/8/2014)
Version 1.7 – Update to chapter 7 (composer), update to ch. 16, and new chapter on Graphics 2.0 (9/2014)
Version 1.8 – Many small updates through-out the book.
Version 1.8.02 – Minor updates to structure and updating of external links.
Version 1.8.3 – Added additional tutorial on picker wheel widget
Version 1.8.4 – Minor update fixing a broken link

Chapters:

Chapter 1: Hello World: Setup and Get Going!

What this book is not
Getting Started
Corona: Some background
Software: Corona
Software: Android
Examples and Graphics
Software: iOS
Development Hardware: Corona
Development Hardware: Test Devices
Android
iOS
Publishing Considerations
Android (Google)
iOS (Apple)
Programming in Corona: Lua
Programming in Corona: Editors
Configuring Corona
Macintosh
Windows
Programming in Corona: Hello World (V1.0)
Project 1.0: Hello World
Project Setup
Project 1.1: Hello World (v2.0)
Objects
Summary
Assignments

Chapter 2:Buttons and Text

Know your Boundaries
Project 2: Button Fun
Functions
Project 2.1: Button Fun V2
Getting Fancy!
How Corona reads your main.lua file
Summary
Assignments

Chapter 3: Animation, Alpha & Orientation

Project 3: Basic Animation
Now You See It, Now You Don’t
Project 3.1: Alpha Fun
Orientation change
Project 3.2: A New Orientation
Summary
Assignments

Chapter 4:Fill in the Blanks

TextField
Project 4: Simple Calculator
Device Builds
Apple iOS
iOS Simulator Build
Apple iOS Device Build
Android OS Device Build
Summary
Assignments

Chapter 5: All Things Graphic

Vector Graphics
Project 5: Vector Shapes.
Bitmap Graphics
Resolution
Scaling
Masking
Sprite Sheets
Project 5.1: Uniform Sprites
Project 5.3 Sprite Animation
Sprite Control Methods
Sprite Properties
Sprite Event Listeners
Other Uses of Image/Sprite Sheets
Summary
Assignments

Chapter 6: User Interface

Resources
build.settings
config.lua
Dynamic Content Alignment
Dynamic Image Resolution
Adding Sound
Sound File Types
Timing Is Everything
Streams and Sounds
Project 6.0: Beat-box
config.lua file
build.settings file
Custom Fonts
Project 6.1 Custom Fonts
Summary
Assignments

Chapter 7: Application Views

Hiding the Status Bar
Groups
Project 7: Group Movement
Modules and Packages
Project 7.1: External Library
External Libraries
Composer
Project 7.2: Creating a Splash Screen
Summary
Assignments

Chapter 8: Phun with Physics

Turn on Physics
Scaling
Bodies
Body Types
Density, Friction, and Bounce
Body Shapes
Body Properties
Body Methods
Project 8: Using Force
Gravity
Ground and Boundaries
Project 8.1: Playing with Gravity
Collision Detection
Sensors
Joints
Common Methods and Properties for Joints
Project 8.2: Wrecking Ball
Trouble Shooting Physics
Summary
Assignments

Chapter 9: Creating a Game with Corona

Game Design
Dragging Objects
Collision Detection
Take Your Best Shot
Reducing Overhead
Game Loop
Summary
Assignments

Chapter 10: Star Explorer Continued

Configuring the App for Multiple Device
Splash Screen
Improving Performance
Varying Difficulty
Increasing Game Speed
A Little Variety
Summary
Assignments

Chapter 11: Media Makes the World Go Round

Working with Sound
Basic Audio Controls
Duration Audio Controls
Volume Controls
Audio Channels
Sound File Types (Revisited)
Where did I put that file?
Multimedia API
Recording Audio
Project 11: Simple Audio Recorder
Video Playback
Camera
Project 11.1 X-Ray Camera
Summary
Assignments

Chapter 12: File Storage & SQLite
File IO Considerations
Reading Data
Implicit vs. Explicit File Manipulation
Implicit Read
Explicit Read
Writing Data
Implicit
Explicit
JSON
Project 12: JSON Read & Write
SQLite
LuaSQLite Commands
Project 12: Reading a SQLite Database
Project 12.1 Writing to a SQLite Database
Summary
Assignments

Chapter 13: Waiting on Tables
Table vs. Table: Clearing up the Confusion
Tools for Tables
Project 13: Creating a Simple Table View
Project 13.1:  Table View From SQLite
Summary
Assignments

Chapter 14: It’s Who you Know: Networking
Web Services
HTTP
Project 14: Picture Download – Via Network Library
Socket
Project 14a: Picture Download – Via Socket Library
Tracking Network Status
Uploading to a Webserver
3-Tier Architecture
Post Example 1: Uploading Form Data
Post Example 2: Uploading Files or Images
Connecting to Proprietary Networks
Facebook
Facebook Example
Advertising Networks
Game Services
Apple Game Center
Google Play Game Services
Pubnub
Project 14.1 Multi-User App
Summary
Assignments

Chapter 15: Working with Widgets & Popups
Mock-ups and pre-design tools
Widgets
Making Your Widgets Look Good
widget.newButton
Project 15.0 widget.newButton Example
widget.newPickerWheel
Project 15.1 widget.newPickerWheel Example|
Project 15.2 Loading a Picker Wheel from a SQLite Database
widget.newProgressView
widget.newSlider
Project 15.3 Widget Slider & Progress View Example
widget.newScrollView
widget.newSegmentedControl
widget.newSpinner
widget.newStepper
widget.newSwitch
widget.newTableView
Project 15.4 Widget.newTableView Example
widget.newTabBar
Project 15.5 Widget Tab Bar Example
Removing Widgets
Web Popups
Web Popup Example
Summary
Assignments

Chapter 16: Rotten Apple – a Tower Defense Game

Rotten Apples – Inspiration and Resources
Adding Sprite Animations
I Need a Map!
Two Roads Diverged
Space, The Final Frontier
Rat Race.
On Your Mark
Reducing Collisions
Collision Worksheet
Take the Shot – Taking Care of Collisions
Are We There Yet? – adding the clubhouse
Adding Towers: Dragging Towers to the Screen
What’s the Score?
Let’s Get this Game Going!
Closures
Initialization
Loop-De-Loop!
Level and Wave Control
Noises Off!
Suspense is Killing Me!  – adding suspend/resume/save options
It’s a Splash – add splash screen
Summary
Assignments

Chapter 17: System Events & Tools

System Events
Accelerometer
Project 17.0 Accelerometer
Gyroscope
Project 17.1 Gyroscope
Alerts
GPS
Project 17.2 GPS
Maps
Map Object
Map Address
Map Location
Project 17.3 Maps
Summary
Assignments

Chapter 18: Graphics 2.0

Chapter 19: Additional Resources

Useful Websites
Free Isometric images
Music
Sound effects
Tutorials

Appendix A: The Lua Language

Appendix B: Advanced Lua