Embed Size (px)


Cross-platform development on mobile devices

Cross-platform development on mobile devicesTakaaki MizunoDeNATakaaki Mizuno15 years experience in Engineering.Works to DeNA Co., Ltd and Oceans Inc.

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

Cross-Platform development environments

4Are cross-platform dev denelopment envivonments workable ?Most important thing isTo know the characteristics of each environmentNative LayerCross-platformEnvironment layerYour codeErase the differenceBut limit the capability sometimesErase the differenceBit limit the capability sometimes6Business AppsProsWrite once, run on both devicesNo need to pass Apples review

ConsUI of both environments are totally differentReally slow

UI of both environments are differentAndroid have hardware back key and MenuPositions of Tab Bar are differentAndroid devices have so many aspect ratios and screen sizes.You have to care about such differences in your codeDifficult to catch up with interface trends.Pull to refreshSide menuUIWebView based application for iOSReally SlowWhy ?Apple doesnt allow to use JIT strategyChrome iOS version is SLOW

Facebook Application for iOS

Facebook will return to native

GameProsWrite once, run on both devicesNo need to pass Apples review

ConsUI of both environments are totally differentReally slowUse JavaScriptUser InterfaceYou dont need to use native-like user interfaceSpeedCompiling code to native ( Unity )Preparing alternative Canvas ( appMobi )Use OpenGL directly ( ngCore )JavaScriptJavaScript for mobile application is totally different from web apps one ( such as using jQuery ).JavaScript is not suitable for large scale development.Because it is difficult to find a bug.

But if you want to use JavaScript stillClosure CompilerGoogles answer for large scale JavaScript developmentIt optimizes the code and finds error in code.DeNAs answerngCoreJavaScript based Game development environment.


JSXa faster, safer, easier alternative to JavaScriptJSX 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!;}}JSX

we are observing 4% to 27% increase in performanceTry it 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}})]);Try it

ExGameConverts Flash Lite 1.1 SWF into JavaScript and make it executable on iOS/Android devices.

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