Galaxy grab

Post on 26-May-2015

408 views 0 download

Tags:

description

This presentation by Steve Easley, lead developer for RedMinnow Interactive, LLC, explains how to become an iOS developer and take a Flash application and convert it to an iOS app to be sold on the Apple App Store.

Transcript of Galaxy grab

About Me• Lead Developer Red Minnow Interactive

• Co-own the company with Duane Andrews

• Flash developer for 13 years

• Flex developer for 3 years

• Have created marketing games for:

About Presentation

2 Parts1. Becoming iOS developer, retrieving

files needed and publish a Flash app to iOS

About Presentation

2 Parts1. Becoming iOS developer, retrieving

files needed and publish a Flash app to iOS

2. Device Agnostic• Optimizing apps for mobile• Design/develop for multiple screen sizes and

processor capabilities• What you can and can’t do on devices

About Galaxy Grab

Initially created for ActiveDen last summer

• Flash component

About Galaxy Grab

Initially created for ActiveDen last summer

• Flash component

• Created for designers to modify and make own game

About Galaxy Grab

Initially created for ActiveDen last summer

• Flash component

• Created for designers to modify and make own game

• Can be resized to designer’s needs– This would be start for multiple screen sizes

About Galaxy Grab

Initially created for ActiveDen last summer

• Flash component

• Created for designers to modify and make own game

• Can be resized to designer’s needs– This would be start for multiple screen sizes

• Can change properties in Component Inspector

About Galaxy Grab

Initially created for ActiveDen last summer

• Flash component

• Created for designers to modify and make own game

• Can be resized to designer’s needs– This would be start for multiple screen sizes

• Can change properties in Component Inspector

• tiny.cc/activeDen

Galaxy Grab to iOS

Goal• Learn the process• Take current game straight to iOS to see how it

performs• Have an app on Apple App store

iOS Development

Quick Start Guide

• Join iOS Developer Program (min. $99/yr)– developer.apple.com

• iProvisioning Portal– developer.apple.com/ios/manage/overview/

• Tutorials:– tiny.cc/iOStutorial (pictures)– tiny.cc/adobeIOShelp– tiny.cc/adobePackagerForum

Galaxy Grab to iOSInitial Results – the good

• Mouse Down, Move and Release worked

Galaxy Grab to iOSInitial Results – the good

• Mouse Down, Move and Release worked

• Text Entry worked well

Galaxy Grab to iOSInitial Results – the good

• Mouse Down, Move and Release worked

• Text Entry worked well

• SharedObjects worked (surprisingly)

Galaxy Grab to iOSInitial Results – the good

• Mouse Down, Move and Release worked

• Text Entry worked well

• SharedObjects worked (surprisingly)

• Background music with on/off button worked

Galaxy Grab to iOSInitial Results – the good

• Mouse Down, Move and Release worked

• Text Entry worked well

• SharedObjects worked (surprisingly)

• Background music with on/off button worked

• And it actually ran on an iPad!

Galaxy Grab to iOSInitial Results – the bad

• Game play was not so good – animation jerky

Galaxy Grab to iOSInitial Results – the bad

• Game play was not so good – animation jerky

• Tested several projects and all were S-L-O-W

Galaxy Grab to iOSInitial Results – the bad

• Game play was not so good – animation jerky

• Tested several projects and all were S-L-O-W

• Online search revealed similar results from others

Galaxy Grab to iOSInitial Results – the bad

• Game play was not so good – animation jerky

• Tested several projects and all were S-L-O-W

• Online search revealed similar results from others

• Shelved idea but came back to it a few weeks later

Galaxy Grab to iOSInitial Results – the bad

• Game play was not so good – animation jerky

• Tested several projects and all were S-L-O-W

• Online search revealed similar results from others

• Shelved idea but came back to it a few weeks later

• Goal: optimize game as much as possible and change game play to run better

Optimizing Apps for Mobile

What works for web may not work for mobile• Vector vs. Bitmap

– Processor intensive vs. file size– Animation – Blitting over Tweening– Animation only when needed and when little else is

going on

Optimizing Apps for Mobile

What works for web may not work for mobile• Vector vs. Bitmap

– Processor intensive vs. file size– Animation – Blitting over Tweening– Animation only when needed and when little else is

going on

• OOP vs. fast code– Big MVC architectures slow down mobile apps– Balance between reusable code and performance

Optimizing Apps for Mobile

What works for web may not work for mobile• Vector vs. Bitmap

– Processor intensive vs. file size– Animation – Blitting over Tweening– Animation only when needed and when little else is

going on

• OOP vs. fast code– Big MVC architectures slow down mobile apps– Balance between reusable code and performance

• Gaming and Optimization Techniques– 8bitrocket.com– moock.org– gskinner.com/blog– tiny.cc/adobeMobileOptimization

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

2. Data type variables – Double Advantage– App runs faster and takes up less memory

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

2. Data type variables – Double Advantage– App runs faster and takes up less memory

3. Vectors vs. Array

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

2. Data type variables – Double Advantage– App runs faster and takes up less memory

3. Vectors vs. Array

4. Object Pooling– If it has been made. Don’t delete and recreate if

needed

– Creating/Destroying objects is memory intensive and slows system down

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

2. Data type variables – Double Advantage– App runs faster and takes up less memory

3. Vectors vs. Array

4. Object Pooling– If it has been made. Don’t delete and recreate if

needed

– Creating/Destroying objects is memory intensive and slows system down

5. Drawing API is slow – try not to use

Optimizing Apps for Mobile

Some ideas will help any app - mobile or online1. Declaring variables before loops

2. Data type variables – Double Advantage– App runs faster and takes up less memory

3. Vectors vs. Array

4. Object Pooling– If it has been made. Don’t delete and recreate if

needed

– Creating/Destroying objects is memory intensive and slows system down

5. Drawing API is slow – try not to use

6. Avoid filters – create bitmaps for them instead

Galaxy Grab Game Changes

• Changed all vectors to bitmaps

•-

•---

•----

Galaxy Grab Game Changes

• Changed all vectors to bitmaps

• Limit moving items on screen- New items “transport” in (used blitting)

•---

•----

Galaxy Grab Game Changes

• Changed all vectors to bitmaps

• Limit moving items on screen- New items “transport” in (used blitting)

• Created Test to check speed of processor- Math problem run 1 million times- Returns how long it took to run- Based on testing of devices, number indicates how many

items to animate on-screen at once

•----

Galaxy Grab Game Changes

• Changed all vectors to bitmaps

• Limit moving items on screen- New items “transport” in (used blitting)

• Created Test to check speed of processor- Math problem run 1 million times- Returns how long it took to run- Based on testing of devices, number indicates how many

items to animate on-screen at once

• Tested on several different devices: - iPhone 3G (900ms)- iPhone 3GS (600ms)- iPhone 4 (300ms)- iPad (300ms)

Galaxy Grab Game Changes

• Created 2 sizes of game pieces- Resize Handler functions load the correct size for screen

size

•---

Galaxy Grab Game Changes

• Created 2 sizes of game pieces- Resize Handler functions load the correct size for screen

size

• Added resize listener to have the app change size based on size of screen in app

- This.stage.addEventListener(Event.RESIZE, resizeHandler)

•---

Galaxy Grab Game Changes

• Created 2 sizes of game pieces- Resize Handler functions load the correct size for screen

size

• Added resize listener to have the app change size based on size of screen in app

- This.stage.addEventListener(Event.RESIZE, resizeHandler)

• Event.Resize over StageDisplayState.FULL_SCREEN - Host doing vs. App doing- FULL_SCREEN has limited keyboard control

•---

Galaxy Grab Game Changes

• Created 2 sizes of game pieces- Resize Handler functions load the correct size for screen

size

• Added resize listener to have the app change size based on size of screen in app

- This.stage.addEventListener(Event.RESIZE, resizeHandler)

• Event.Resize over StageDisplayState.FULL_SCREEN - Host doing vs. App doing- FULL_SCREEN has limited keyboard control

• Created Deployment – Apple App Store version- 6 days from submission to selling- No problems with submission (have heard horror stories)- Just released Blackberry Playbook version and Android

version is coming soon

Galaxy Grab to iOS

• Watch a video of Galaxy Grab on the iPad and iPhone

youtube.com/redMinnowInteractive

What is Flash to iOS Good For

• Games

What is Flash to iOS Good For

• Games

• Non Apple UI-based apps

What is Flash to iOS Good For

• Games

• Non Apple UI-based apps

• Visualization/Aggregator from web data

What is Flash to iOS Good For

• Games

• Non Apple UI-based apps

• Visualization/Aggregator from web data

• Apps that don’t need to tap into device-specific functionality

What is Flash to iOS Good For

• Games

• Non Apple UI-based apps

• Visualization/Aggregator from web data

• Apps that don’t need to tap into device-specific functionality

tiny.cc/comparisonChart

Questions?

Thank You!Steve Easleysteve@redminnow.com

twitter: steveRedMinnowblog: www.redminnow.com/blog