9
enabling great content on any device 5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 1

Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Embed Size (px)

DESCRIPTION

Single platform development is often considered a more simple and straightforward approach to game development. Well, it’s important to understand that a single platform means a single source of income, this approach also means developers lack the flexibility and ability to try new platforms. What if I say you can go cross-platform at the same code complexity not even changing the toolset and instruments you got used to? How can cross platform development become any close to a single platform approach, you ask! If you already have a project written for iOS, what is the easiest way to port it to Android and beyond? All of these excellent questions and more will be covered in the Marmalade SDK presentation.

Citation preview

Page 1: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

enabling great content on any device

5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 1

Page 2: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Marmalade Juice

Rapidly recompile iOS games for Android and beyond !   Removes the need to manually port code away from Objective-C,

saving porting time and unlocking legacy iOS-only apps !   Fast conversion – Objective-C and iOS API calls re-targeted !   High performance without overhead of virtual machine or

transcoding !   Adds Marmalade support for ‘clang’ compiler, Core Apple APIs &

Xcode / iOS configuration files !   Fully open architecture

–  Apply Android-specific optimisations within original codebase –  Major components are all open source

5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 2

Page 3: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

iOS Framework imports

Juice MKB Project Juice Projects

!   A script generates a standard Marmalade MKB Project from your Xcode iOS project:

–  Finds and includes source code

–  Includes Xcode “resources” as Marmalade “assets”

–  Sets compiler to Marmalade CLANG

–  Includes implementations of major iOS APIs

–  These can optionally be either source or library versions

iOS Xcode Project

Juice implementation of iOS Frameworks

and static libs

App’s original Objective-C/C++ source code: mostly remains unchanged

iOS static libs and features user wants

to exclude

Resources/assets (images, music, data, .plist, etc.)

New Marmalade code for new

features

Page 4: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Juice MKB Project

Juice: How it works

!   Develop in Objective-C and C++ !   Use typical iOS frameworks !   Add any normal Marmalade C++

APIs !   Ships with open source

implementations of iOS frameworks on top of Marmalade:

–  Cocotron (Cocoa Touch) –  Chameleon (UI Kit)

!   Some framework API gaps in initial version - filled with each new Juice release, or users can fill gaps themselves.

Open Source implementations of iOS Frameworks

and static libs

Objective-C/C++ source code

New Marmalade code for new

features

Assets: images, music, data, .plist…

Page 5: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Marmalade Juice: Software stack

new code - iOS or Marmalade APIs

Chameleon: UI Kit

original Objective-C/C++ game code

Cocotron: Cocoa Touch

implement more frameworks

Game code and iOS frameworks

open source code bundled with Juice

new or existing user code

Cocos2d

Graphics Cross Platform API Marmalade System

OS Drivers OpenGL ES Device

Page 6: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Juice Deployment and Platform Support

!   Once your original iOS-Xcode project has been converted to Marmalade Juice, deployment works just like a standard Marmalade project.

!   You still get a single platform-agnostic app binary, but with the iOS framework implementations compiled into it.

!   Differences: –  The compiler is a specific

bundled version of CLANG –  Visual Studio for PC is not

yet supported Android

App

Desktop Simulator

BB10 Loader

BB10 App

Clang

Marmalade Juice Project

Single App Binary

Scons

Other Os App

Other Os Loaders Deploy Tool

Xcode

Android Loader

Page 7: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Marmalade Juice: Development Environment

!   Build in Xcode or from Command line

!   Use standard Marmalade Simulator and Deploy Tool

!   In Xcode, use regular iOS UI builder interface. Create xib files for new resolutions (Android tablet, BB10, etc) or use existing with stretch/align

Page 8: Marmalade: Get more from your existing iOS apps by recompiling them for Android. Real time demonstration

Made with Marmalade

5/15/14 © Marmalade. Trademarks belong to their respective owners. All rights reserved. 8

© Marmalade. Trademarks belong to their respective owners. All rights reserved.