5 Ways iOS is better and worse than Flash

2,371 views

Published on

Comparing iOS and Flash development.

Published in: Technology
  • Be the first to comment

5 Ways iOS is better and worse than Flash

  1. 1. 5 Ways iOS is better and worse than Flash<br />Arpit Mathur<br />Philadelphia Flex User Group<br />
  2. 2. Some introductions…<br />Software Engineer at Comcast Innovation Labs<br />Flash/Flex developer for 5 years<br />Experience with very different UI technologies including Java Swing/AWT, SWT, JavaScript/DHTML, etc<br />Developer on the XfinityTV Application<br />
  3. 3. Setting the stage <br />Xcode ~ Flex Builder<br />Interface Builder ~ Flash IDE<br />Objective C ~ ActionScript<br />Core Graphics ~ flash.graphics.*<br />Core Animation ~ TweenLite / fl.transitions.*<br />XIBs ~ Flash Symbols<br />UIKit ~ Flex / Fl Component Framework<br />
  4. 4. iOS Application Architecture<br />Application<br />(UIApplicationDelegate)<br />XIBs<br />View Controllers<br />(UIViewController)<br />Models<br />Views<br />(UIViews)<br />
  5. 5. Quick Example<br />
  6. 6. The Good<br />
  7. 7. #1: Enforced MVC<br />
  8. 8. UIView<br />
  9. 9. UIViewController<br />
  10. 10. #2: NSNotificationCenter<br />
  11. 11. #2: NSNotificationCenter<br />
  12. 12. BEWARE OVERUSE !!!<br />
  13. 13. #3 User Interface Experience Framework<br />
  14. 14. #3 User Interface Experience Framework<br />
  15. 15. “Make Designing the right way the path of least resistance.”<br />
  16. 16. #4 Animation Blocks and Core Animation<br />
  17. 17. Core Animation<br />Layer Backed (cache’s the last appearance of the view)<br />Potentially thousands of layers<br />Filters, Transitions<br />OpenGL backed<br />Don’t clip to bounds by default!<br />While animating, it’s the cached image that’s moving around. So unlike Flash, you cant interact with it.<br />
  18. 18. #5 Objective C Gravy<br />Class + Interface Declarations<br />Enums<br />Messaging null objects (mixed feelings)<br />Key Value Observing (a-la AS2 watch)<br />
  19. 19. The Bad<br />
  20. 20. #1: Device Provisioning<br />http://www.bunnyhero.org/2011/02/21/an-ios-dev-comic/<br />
  21. 21. #2: No guaranteed constructor<br />Init<br />InitWithNibName<br />InitWithFrame<br />InitWithRect<br />InitWithCoder<br />
  22. 22. #3: Memory Management<br />
  23. 23. Retain<br />Copy<br />Object<br />Assign<br />
  24. 24. #4: Touch Event Propagation<br />
  25. 25. #5: Tooling<br />Device testing against multiple OS versions<br />Interface Builder craziness<br />Window management<br />.projfile conflicts<br />Folders in Xcode<br />Download size<br />
  26. 26. Links<br />http://goo.gl/ZBsYC<br />
  27. 27. Thanks<br />Twitter: @arpit<br />Blog: http://arpitonline.com/blog/<br />

×