29
CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICES Takaaki Mizuno DeNA

Cross-platform development on mobile devices

Embed Size (px)

Citation preview

Page 1: Cross-platform development on mobile devices

CROSS-PLATFORM DEVELOPMENT ON MOBILE DEVICESTakaaki Mizuno

DeNA

Page 2: Cross-platform development on mobile devices

Takaaki Mizuno• 15 years experience in Engineering.• Works to DeNA Co., Ltd and Oceans Inc.

Page 3: Cross-platform development on mobile devices

How to develop the app both for iOS/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

Page 4: Cross-platform development on mobile devices

Cross-Platform development environments

Page 5: Cross-platform development on mobile devices

Are cross-platform dev denelopment envivonments workable ?

• Not good at least now• It’s ok for simple apps

Business Apps

• Not so badGames

Page 6: Cross-platform development on mobile devices

Most important thing is…

To know the characteristics of each environment

Native Layer

Cross-platformEnvironment layer

Your code

Erase the differenceBut limit the capability sometimes

Page 7: Cross-platform development on mobile devices

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

Page 8: Cross-platform development on mobile devices

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

Page 9: Cross-platform development on mobile devices

Difficult to catch up with interface trends.

• Pull to refresh• Side menu

Page 10: Cross-platform development on mobile devices

UIWebView based application for iOS

Really Slow

Page 11: Cross-platform development on mobile devices

Why ?• Apple doesn’t allow to use JIT strategy

Page 12: Cross-platform development on mobile devices

Chrome iOS version is SLOW

Page 13: Cross-platform development on mobile devices

Facebook Application for iOS

Page 14: Cross-platform development on mobile devices

Facebook will return to native

Page 15: Cross-platform development on mobile devices

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

Page 16: Cross-platform development on mobile devices

User Interface• You don’t need to use native-like user interface

Page 17: Cross-platform development on mobile devices

Speed• Compiling code to native ( Unity )• Preparing alternative Canvas ( appMobi )• Use OpenGL directly ( ngCore )

Page 18: Cross-platform development on mobile devices

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.

Page 19: Cross-platform development on mobile devices

But if you want to use JavaScript still…

Page 20: Cross-platform development on mobile devices

Closure Compiler• Google’s answer for large scale JavaScript development• It optimizes the code and finds error in code.

Page 21: Cross-platform development on mobile devices

DeNA’s answer

Page 22: Cross-platform development on mobile devices

ngCore• JavaScript based Game development environment.

• Try https://developer.mobage.com/⇛

Page 23: Cross-platform development on mobile devices

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!”;}

}

Page 24: Cross-platform development on mobile devices

JSX

we are observing 4% to 27% increase in performance

Page 25: Cross-platform development on mobile devices

Try it

http://jsx.github.com/

Page 26: Cross-platform development on mobile devices

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}

})]);

Page 27: Cross-platform development on mobile devices

Try it

http://denadev.github.com/Arctic.js/

Page 28: Cross-platform development on mobile devices

ExGame• Converts Flash Lite 1.1 SWF into JavaScript and make it

executable on iOS/Android devices.

Page 29: Cross-platform development on mobile devices

How to use ExGame• DeNA provides ExGame to the partner developers.• Please access to our development sites:

http://developer.dena.jp/mbga/en/