Cross-platform development on mobile devices

1,922 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,922
On SlideShare
0
From Embeds
0
Number of Embeds
1,029
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Cross-platform development on mobile devices

  1. 1. CROSS-PLATFORMDEVELOPMENT ONMOBILE DEVICESTakaaki MizunoDeNA
  2. 2. Takaaki Mizuno• 15 years experience in Engineering.• Works to DeNA Co., Ltd and Oceans Inc.
  3. 3. How to develop the app both foriOS/Android ?There are 2 options:• Develop for both separately with different languages ( Objective-C / Java )• Use cross-platform development environment and develop for both platform at once
  4. 4. Cross-Platform developmentenvironments
  5. 5. Are cross-platform dev denelopmentenvivonments workable ? Business • Not good at least now Apps • It’s ok for simple apps Games • Not so bad
  6. 6. Most important thing is…To know the characteristics of each environment Your code Cross-platform Erase the difference But limit the capability Environment layer sometimes Native Layer
  7. 7. Business Apps• Pros • Write once, run on both devices • No need to pass Apple’s review• Cons • UI of both environments are totally different • Really slow
  8. 8. UI of both environments are different• Android have “hardware back key” and “Menu”• Positions of Tab Bar are different• Android devices have so many aspect ratios and screen sizes.• You have to care about such differences in your code
  9. 9. Difficult to catch up with interface trends.• Pull to refresh• Side menu
  10. 10. UIWebView based application for iOS Really Slow
  11. 11. Why ?• Apple doesn’t allow to use JIT strategy
  12. 12. Chrome iOS version is SLOW
  13. 13. Facebook Application for iOS
  14. 14. Facebook will return to native
  15. 15. Game• Pros • Write once, run on both devices • No need to pass Apple’s review• Cons • UI of both environments are totally different • Really slow • Use JavaScript
  16. 16. User Interface• You don’t need to use native-like user interface
  17. 17. Speed• Compiling code to native ( Unity )• Preparing alternative Canvas ( appMobi )• Use OpenGL directly ( ngCore )
  18. 18. JavaScript• JavaScript for mobile application is totally different from web app’s one ( such as using jQuery ).• JavaScript is not suitable for large scale development. • Because it is difficult to find a bug.
  19. 19. But if you want to use JavaScript still…
  20. 20. Closure Compiler• Google’s answer for large scale JavaScript development• It optimizes the code and finds error in code.
  21. 21. DeNA’s answer
  22. 22. ngCore• JavaScript based Game development environment.• Try ⇛ https://developer.mobage.com/
  23. 23. JSX• a faster, safer, easier alternative to JavaScript• JSX compilers compiles JSX code into JavaScript interface Flyable { abstract function fly() : void; } abstract class Animal { function eat() : void { log "An animal is eating!”; } } class Bat extends Animal implements Flyable { override function fly() : void { log "A bat is flying!”; } }
  24. 24. JSX we are observing 4% to 27% increase in performance
  25. 25. Try it http://jsx.github.com/
  26. 26. Arctic.js• Game engine for smartphone web browsers written in JavaScript with HTML5 Canvas.• It provides ActionScript3 friendly APIs which Flash developers are familiar to.var keyFrame = new arc.anim.KeyFrameAnimation(12, 5, [ new arc.anim.Timeline(this._yellowImg, { 1 : {visible:true}, 3 : {visible:false} }), new arc.anim.Timeline(this._orangeImg, { 1 : {visible:true}, 5 : {visible:false} }), new arc.anim.Timeline(this, { 1 : {scaleX:0.5, scaleY:0.5, transition:arc.anim.Transition.SINE_OUT}, 5 : {scaleX:3, scaleY:3} })]);
  27. 27. Try it http://denadev.github.com/Arctic.js/
  28. 28. ExGame• Converts Flash Lite 1.1 SWF into JavaScript and make it executable on iOS/Android devices.
  29. 29. How to use ExGame• DeNA provides ExGame to the partner developers.• Please access to our development sites: http://developer.dena.jp/mbga/en/

×