Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Galaxy grab

592 views

Published on

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.

Published in: Technology
  • Be the first to comment

Galaxy grab

  1. 1.
  2. 2. About Me<br />Lead Developer Red Minnow Interactive<br />Co-own the company with Duane Andrews<br />Flash developer for 13 years<br />Flex developer for 3 years<br />Have created marketing games for:<br />
  3. 3. About Presentation<br />2 Parts<br />Becoming iOS developer, retrieving files needed and publish a Flash app to iOS<br />
  4. 4. About Presentation<br />2 Parts<br />Becoming iOS developer, retrieving files needed and publish a Flash app to iOS<br />Device Agnostic<br />Optimizing apps for mobile<br />Design/develop for multiple screen sizes and processor capabilities<br />What you can and can’t do on devices<br />
  5. 5. About Galaxy Grab<br />Initially created for ActiveDen last summer<br />Flash component<br />
  6. 6. About Galaxy Grab<br />Initially created for ActiveDen last summer<br />Flash component<br />Created for designers to modify and make own game<br />
  7. 7. About Galaxy Grab<br />Initially created for ActiveDen last summer<br />Flash component<br />Created for designers to modify and make own game<br />Can be resized to designer’s needs<br />This would be start for multiple screen sizes<br />
  8. 8. About Galaxy Grab<br />Initially created for ActiveDen last summer<br />Flash component<br />Created for designers to modify and make own game<br />Can be resized to designer’s needs<br />This would be start for multiple screen sizes<br />Can change properties in Component Inspector<br />
  9. 9. About Galaxy Grab<br />Initially created for ActiveDen last summer<br />Flash component<br />Created for designers to modify and make own game<br />Can be resized to designer’s needs<br />This would be start for multiple screen sizes<br />Can change properties in Component Inspector<br />tiny.cc/activeDen<br />
  10. 10. Galaxy Grab to iOS<br />Goal<br />Learn the process<br />Take current game straight to iOS to see how it performs<br />Have an app on Apple App store<br />
  11. 11. iOS Development<br />Quick Start Guide<br />Join iOS Developer Program (min. $99/yr)<br />developer.apple.com<br />iProvisioning Portal<br />developer.apple.com/ios/manage/overview/<br />Tutorials:<br />tiny.cc/iOStutorial (pictures)<br />tiny.cc/adobeIOShelp<br />tiny.cc/adobePackagerForum<br />
  12. 12. Galaxy Grab to iOS<br />Initial Results – the good<br /><ul><li>Mouse Down, Move and Release worked
  13. 13. Text Entry worked well
  14. 14. SharedObjects worked (surprisingly)
  15. 15. Background music with on/off button worked
  16. 16. And it actually ran on an iPad!</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the good<br /><ul><li>Mouse Down, Move and Release worked
  17. 17. Text Entry worked well
  18. 18. SharedObjects worked (surprisingly)
  19. 19. Background music with on/off button worked
  20. 20. And it actually ran on an iPad!</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the good<br /><ul><li>Mouse Down, Move and Release worked
  21. 21. Text Entry worked well
  22. 22. SharedObjects worked (surprisingly)
  23. 23. Background music with on/off button worked
  24. 24. And it actually ran on an iPad!</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the good<br /><ul><li>Mouse Down, Move and Release worked
  25. 25. Text Entry worked well
  26. 26. SharedObjects worked (surprisingly)
  27. 27. Background music with on/off button worked
  28. 28. And it actually ran on an iPad!</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the good<br /><ul><li>Mouse Down, Move and Release worked
  29. 29. Text Entry worked well
  30. 30. SharedObjects worked (surprisingly)
  31. 31. Background music with on/off button worked
  32. 32. And it actually ran on an iPad!</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the bad<br /><ul><li>Game play was not so good – animation jerky
  33. 33. Tested several projects and all were S-L-O-W
  34. 34. Online search revealed similar results from others
  35. 35. Shelved idea but came back to it a few weeks later
  36. 36. Goal: optimize game as much as possible and change game play to run better</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the bad<br /><ul><li>Game play was not so good – animation jerky
  37. 37. Tested several projects and all were S-L-O-W
  38. 38. Online search revealed similar results from others
  39. 39. Shelved idea but came back to it a few weeks later
  40. 40. Goal: optimize game as much as possible and change game play to run better</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the bad<br /><ul><li>Game play was not so good – animation jerky
  41. 41. Tested several projects and all were S-L-O-W
  42. 42. Online search revealed similar results from others
  43. 43. Shelved idea but came back to it a few weeks later
  44. 44. Goal: optimize game as much as possible and change game play to run better</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the bad<br /><ul><li>Game play was not so good – animation jerky
  45. 45. Tested several projects and all were S-L-O-W
  46. 46. Online search revealed similar results from others
  47. 47. Shelved idea but came back to it a few weeks later
  48. 48. Goal: optimize game as much as possible and change game play to run better</li></li></ul><li>Galaxy Grab to iOS<br />Initial Results – the bad<br /><ul><li>Game play was not so good – animation jerky
  49. 49. Tested several projects and all were S-L-O-W
  50. 50. Online search revealed similar results from others
  51. 51. Shelved idea but came back to it a few weeks later
  52. 52. Goal: optimize game as much as possible and change game play to run better</li></li></ul><li>Optimizing Apps for Mobile<br />What works for web may not work for mobile<br />Vector vs. Bitmap<br />Processor intensive vs. file size<br />Animation – Blitting over Tweening<br />Animation only when needed and when little else is going on<br />
  53. 53. Optimizing Apps for Mobile<br />What works for web may not work for mobile<br />Vector vs. Bitmap<br />Processor intensive vs. file size<br />Animation – Blitting over Tweening<br />Animation only when needed and when little else is going on<br />OOP vs. fast code<br />Big MVC architectures slow down mobile apps<br />Balance between reusable code and performance<br />
  54. 54. Optimizing Apps for Mobile<br />What works for web may not work for mobile<br />Vector vs. Bitmap<br />Processor intensive vs. file size<br />Animation – Blitting over Tweening<br />Animation only when needed and when little else is going on<br />OOP vs. fast code<br />Big MVC architectures slow down mobile apps<br />Balance between reusable code and performance<br />Gaming and Optimization Techniques<br />8bitrocket.com<br />moock.org<br />gskinner.com/blog<br />tiny.cc/adobeMobileOptimization<br />
  55. 55. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />
  56. 56. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />Data type variables – Double Advantage<br />App runs faster and takes up less memory<br />
  57. 57. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />Data type variables – Double Advantage<br />App runs faster and takes up less memory<br />Vectors vs. Array<br />
  58. 58. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />Data type variables – Double Advantage<br />App runs faster and takes up less memory<br />Vectors vs. Array<br />Object Pooling<br />If it has been made. Don’t delete and recreate if needed<br />Creating/Destroying objects is memory intensive and slows system down<br />
  59. 59. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />Data type variables – Double Advantage<br />App runs faster and takes up less memory<br />Vectors vs. Array<br />Object Pooling<br />If it has been made. Don’t delete and recreate if needed<br />Creating/Destroying objects is memory intensive and slows system down<br />Drawing API is slow – try not to use<br />
  60. 60. Optimizing Apps for Mobile<br />Some ideas will help any app - mobile or online<br />Declaring variables before loops<br />Data type variables – Double Advantage<br />App runs faster and takes up less memory<br />Vectors vs. Array<br />Object Pooling<br />If it has been made. Don’t delete and recreate if needed<br />Creating/Destroying objects is memory intensive and slows system down<br />Drawing API is slow – try not to use<br />Avoid filters – create bitmaps for them instead<br />
  61. 61. Galaxy Grab Game Changes<br /><ul><li>Changed all vectors to bitmaps
  62. 62. Limit moving items on screen
  63. 63. New items “transport” in (used blitting)
  64. 64. Created Test to check speed of processor
  65. 65. Math problem run 1 million times
  66. 66. Returns how long it took to run
  67. 67. Based on testing of devices, number indicates how many items to animate on-screen at once
  68. 68. Tested on several different devices:
  69. 69. iPhone 3G (900ms)
  70. 70. iPhone 3GS (600ms)
  71. 71. iPhone(300ms)
  72. 72. iPad(300ms)</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Changed all vectors to bitmaps
  73. 73. Limit moving items on screen
  74. 74. New items “transport” in (used blitting)
  75. 75. Created Test to check speed of processor
  76. 76. Math problem run 1 million times
  77. 77. Returns how long it took to run
  78. 78. Based on testing of devices, number indicates how many items to animate on-screen at once
  79. 79. Tested on several different devices:
  80. 80. iPhone 3G (900ms)
  81. 81. iPhone 3GS (600ms)
  82. 82. iPhone(300ms)
  83. 83. iPad(300ms)</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Changed all vectors to bitmaps
  84. 84. Limit moving items on screen
  85. 85. New items “transport” in (used blitting)
  86. 86. Created Test to check speed of processor
  87. 87. Math problem run 1 million times
  88. 88. Returns how long it took to run
  89. 89. Based on testing of devices, number indicates how many items to animate on-screen at once
  90. 90. Tested on several different devices:
  91. 91. iPhone 3G (900ms)
  92. 92. iPhone 3GS (600ms)
  93. 93. iPhone(300ms)
  94. 94. iPad(300ms)</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Changed all vectors to bitmaps
  95. 95. Limit moving items on screen
  96. 96. New items “transport” in (used blitting)
  97. 97. Created Test to check speed of processor
  98. 98. Math problem run 1 million times
  99. 99. Returns how long it took to run
  100. 100. Based on testing of devices, number indicates how many items to animate on-screen at once
  101. 101. Tested on several different devices:
  102. 102. iPhone 3G (900ms)
  103. 103. iPhone 3GS (600ms)
  104. 104. iPhone 4 (300ms)
  105. 105. iPad(300ms)</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Created 2 sizes of game pieces
  106. 106. Resize Handler functions load the correct size for screen size
  107. 107. Added resize listener to have the app change size based on size of screen in app</li></ul> - This.stage.addEventListener(Event.RESIZE, resizeHandler)<br /><ul><li>Event.Resize over StageDisplayState.FULL_SCREEN</li></ul> - Host doing vs. App doing<br /> - FULL_SCREEN has limited keyboard control<br /><ul><li>Created Deployment – Apple App Store version
  108. 108. 6 days from submission to selling
  109. 109. No problems with submission (have heard horror stories)
  110. 110. Just released Blackberry Playbook version and Android version is coming soon</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Created 2 sizes of game pieces
  111. 111. Resize Handler functions load the correct size for screen size
  112. 112. Added resize listener to have the app change size based on size of screen in app</li></ul> - This.stage.addEventListener(Event.RESIZE, resizeHandler)<br /><ul><li>Event.Resize over StageDisplayState.FULL_SCREEN</li></ul> - Host doing vs. App doing<br /> - FULL_SCREEN has limited keyboard control<br /><ul><li>Created Deployment – Apple App Store version
  113. 113. 6 days from submission to selling
  114. 114. No problems with submission (have heard horror stories)
  115. 115. Just released Blackberry Playbook version and Android version is coming soon</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Created 2 sizes of game pieces
  116. 116. Resize Handler functions load the correct size for screen size
  117. 117. Added resize listener to have the app change size based on size of screen in app</li></ul> - This.stage.addEventListener(Event.RESIZE, resizeHandler)<br /><ul><li>Event.Resize over StageDisplayState.FULL_SCREEN</li></ul> - Host doing vs. App doing<br /> - FULL_SCREEN has limited keyboard control<br /><ul><li>Created Deployment – Apple App Store version
  118. 118. 6 days from submission to selling
  119. 119. No problems with submission (have heard horror stories)
  120. 120. Just released Blackberry Playbook version and Android version is coming soon</li></li></ul><li>Galaxy Grab Game Changes<br /><ul><li>Created 2 sizes of game pieces
  121. 121. Resize Handler functions load the correct size for screen size
  122. 122. Added resize listener to have the app change size based on size of screen in app</li></ul> - This.stage.addEventListener(Event.RESIZE, resizeHandler)<br /><ul><li>Event.Resize over StageDisplayState.FULL_SCREEN</li></ul> - Host doing vs. App doing<br /> - FULL_SCREEN has limited keyboard control<br /><ul><li>Created Deployment – Apple App Store version
  123. 123. 6 days from submission to selling
  124. 124. No problems with submission (have heard horror stories)
  125. 125. Just released Blackberry Playbook version and Android version is coming soon</li></li></ul><li>Galaxy Grab to iOS<br />Watch a video of Galaxy Grab on the iPad and iPhone<br />youtube.com/redMinnowInteractive<br />
  126. 126. What is Flash to iOS Good For<br /><ul><li>Games
  127. 127. Non Apple UI-based apps
  128. 128. Visualization/Aggregator from web data
  129. 129. Apps that don’t need to tap into device-specific functionality</li></li></ul><li>What is Flash to iOS Good For<br /><ul><li>Games
  130. 130. Non Apple UI-based apps
  131. 131. Visualization/Aggregator from web data
  132. 132. Apps that don’t need to tap into device-specific functionality</li></li></ul><li>What is Flash to iOS Good For<br /><ul><li>Games
  133. 133. Non Apple UI-based apps
  134. 134. Visualization/Aggregator from web data
  135. 135. Apps that don’t need to tap into device-specific functionality</li></li></ul><li>What is Flash to iOS Good For<br /><ul><li>Games
  136. 136. Non Apple UI-based apps
  137. 137. Visualization/Aggregator from web data
  138. 138. Apps that don’t need to tap into device-specific functionality</li></li></ul><li>What is Flash to iOS Good For<br /><ul><li>Games
  139. 139. Non Apple UI-based apps
  140. 140. Visualization/Aggregator from web data
  141. 141. Apps that don’t need to tap into device-specific functionality</li></ul>tiny.cc/comparisonChart<br />
  142. 142. Questions?<br />
  143. 143. Thank You!<br />Steve Easley<br />steve@redminnow.com<br />twitter: steveRedMinnow<br />blog: www.redminnow.com/blog<br />

×