SlideShare a Scribd company logo
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Optimized Cross Platform
Development
Markku Kero / Job and Esther Technologies
June 2014 / Softech.ph
Optimized Cross Platform Development
(DESKTOP)
Optimized Cross Platform Development
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
What does that mean for
software developers?
C++ JS ObjC
Swift
C/C#
JS C
Java
Java C
C++
C#
C++ C
C++
C#
ObjC
Swift
→ You need to have some kind of strategy to deal with this
Cross platform development tools
One codebase; target
multiple platforms
Many existing tools on the
market
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Common sentiment: “Cross
platform tools do not work.
Writing native code is the best
(only) way.”
(= writing the same application several times, once
per platform)
Commonly encountered issues
Large installer size
Excessive memory use
Low performance
Limited API access
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Source code
targeting a
specific
platform
Tool
Source / byte
code and
interpreter or
VM for iOS
Source / byte
code and
interpreter or
VM for Android
Run in
browser
Android
app
iOS
app
Runtime /
Virtual
machine
(Java, JavaScript,
Lua, Ruby, C#, ..)
A common cross platform tool
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Operating system
Language interpreter / runtime
APIs and libraries Application code
A common cross platform tool
Architecture
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
A common cross platform tool
Architecture
Operating system
Language interpreter / runtime
APIs and libraries Application code Makes application
installers bigger
Increases memory
usage
Reduces runtime
performance
Applications can only
access selected
parts of the native API
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Another popular architecture
Source
Code in
HTML, CSS,
JavaScript
Tool
Libraries
C code
That opens a
Browser and
Displays the
program
Java code
That opens a
Browser and
Displays the
program
Android
SDK
Android
installer
iOS
SDK
iOS
installer
Run in
browser
HTML5 / “embed a web browser”
Commonly encountered issues
Large installer size
Excessive memory use
Low performance
Limited API access
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
The C++ approach
C++
application
code
SDK /
compiler
Run in
browser
Android
application
iOS
Objective-C
runtimeC++ class
library
BlackBerry
10 application
Windows
Phone
app
iOS
Swift
runtime
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
These approaches can
produce working
applications, but the
approach can be improved
Programming language conversion
(Source code)
Small Installers Optimal memory use
No API access limitationsNative performance
www.eqela.com
GAMES
BUSINESS
SYSTEMS
WEBSITES
TOOLS
class Main : LayerWidget
{
public void initialize() {
base.initialize();
add(LabelWidget.instance().set_text(“Hello World”));
}
}
Main.eq
Eqela
Compiler
LayerWidget,
LabelWidget
Main.java,
LayerWidget.java,
LabelWidget.java
Android
SDK
Android
application
A sample Eqela application
class Main : LayerWidget
{
public void initialize() {
base.initialize();
add(LabelWidget.instance().set_text(“Hello World”));
}
}
package mk.test;
public class Main extends eq.gui.LayerWidget
{
@Override
public void initialize() {
super.initialize();
((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge
t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_
StringStatic_for_strptr("Hello world"))));
}
public Main() {
}
}
(EQELA)
(JAVA)
class AndroidHTTPGet
{
public static bool execute(String url) {
embed “java” {{{
org.apache.http.client.methods.HttpUriRequest hur =
new org.apache.http.client.methods.HttpGet(url.to_strptr());
android.net.http.AndroidHttpClient hc =
android.net.http.AndroidHttpClient.newInstance(“testing”);
org.apache.http.HttpResponse resp = hc.execute(hur);
if(resp == null) {
return(false);
}
}}}
return(true);
}
}
→ All platform specific features / APIs
are accessible
Embedding other languages
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Comparison: A “hello world” application
First approach (virtual machine / interpreter)
Tool A: 8MB installer
Tool B: 4MB installer
The “embed a web browser” approach:
~300KB installer
The “source code conversion” approach:
96KB installer
Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved.
Given the right technical
architecture, cross platform
applications can be optimized
markku.kero@jobandesther.com
www.eqela.com

More Related Content

PPTX
Creating iOS and Android Apps with Visual Studio and C#
PDF
Flutter A year of creativity!
PPTX
API Craft : Building Autodesk Forge APIs
PPT
Silverlight 2 with Visual Studio 2008 and Expression Blend
PDF
Hire expert swift developer
PDF
IPhone Web Development With Grails from CodeMash 2009
PDF
Building Successful Apps with Google Firebase
PDF
Build beautiful native apps in record time with flutter
Creating iOS and Android Apps with Visual Studio and C#
Flutter A year of creativity!
API Craft : Building Autodesk Forge APIs
Silverlight 2 with Visual Studio 2008 and Expression Blend
Hire expert swift developer
IPhone Web Development With Grails from CodeMash 2009
Building Successful Apps with Google Firebase
Build beautiful native apps in record time with flutter

What's hot (20)

PDF
Introduction to Flutter - truly crossplatform, amazingly fast
PDF
Animations in Flutter
ODP
Hybrid application development
PPTX
PHP And Silverlight - DevDays session
PPTX
ios app development
PPTX
Comparison between Eclipse and Android Studio for Android Development
PDF
ML Kit , Cloud FF GDSC MESCOE.pdf
PDF
C# everywhere
PDF
What is a Native Application and Why We Need Them
PDF
Phonegap presentation
PPTX
Xamarin Best Cross Platform Mobile App Development Solution
PPTX
Introduction to Apache Cordova (Phonegap)
PPTX
Cross Platform Application Development Using Flutter
PPTX
Windows Development Story with Xamarin
PPT
PDF
Flutter state management from zero to hero
PPT
Synapseindia android app programming
PDF
Cross-Platform App Development with Flutter, Xamarin, React Native
PPTX
iOS Development, with Swift and XCode
PDF
[Android] Introduction to Android Programming
Introduction to Flutter - truly crossplatform, amazingly fast
Animations in Flutter
Hybrid application development
PHP And Silverlight - DevDays session
ios app development
Comparison between Eclipse and Android Studio for Android Development
ML Kit , Cloud FF GDSC MESCOE.pdf
C# everywhere
What is a Native Application and Why We Need Them
Phonegap presentation
Xamarin Best Cross Platform Mobile App Development Solution
Introduction to Apache Cordova (Phonegap)
Cross Platform Application Development Using Flutter
Windows Development Story with Xamarin
Flutter state management from zero to hero
Synapseindia android app programming
Cross-Platform App Development with Flutter, Xamarin, React Native
iOS Development, with Swift and XCode
[Android] Introduction to Android Programming
Ad

Similar to Optimized Cross Platform Development (20)

ODP
Introduction to Eqela development
PDF
Code and Conquer with Globe Labs, October 27, 2012
PPTX
Cross platform mobile app development tools review
PDF
Embarcadero's Connected Development
PDF
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
PDF
OGDC 2014: Cross Platform Mobile Game Application Development
PPTX
Progamming Path.pptx
PPTX
Developing a Modern Mobile App Strategy
PPTX
Cross-Platform Development using Angulr JS in Visual Studio
PPTX
Mobile Development with Visual Studio by Sergey Seletsky
PPTX
Mobile development with visual studio
PPTX
Android Web app
PPTX
Native App + Wep App = ? (Hybrid Applications)
PDF
Shoukry Kattan - Titanium Mobile. Cross Platform Mobile Apps
KEY
Development workflow
PDF
Ten compelling reasons to learn .net framework
PPTX
Dload mobile development
PDF
Hybrid App Development, Redefined
PPTX
Mobile application development platform
PPT
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Introduction to Eqela development
Code and Conquer with Globe Labs, October 27, 2012
Cross platform mobile app development tools review
Embarcadero's Connected Development
OGDC 2014_Cross platform mobile game application development_Mr. Makku J.Kero
OGDC 2014: Cross Platform Mobile Game Application Development
Progamming Path.pptx
Developing a Modern Mobile App Strategy
Cross-Platform Development using Angulr JS in Visual Studio
Mobile Development with Visual Studio by Sergey Seletsky
Mobile development with visual studio
Android Web app
Native App + Wep App = ? (Hybrid Applications)
Shoukry Kattan - Titanium Mobile. Cross Platform Mobile Apps
Development workflow
Ten compelling reasons to learn .net framework
Dload mobile development
Hybrid App Development, Redefined
Mobile application development platform
JQuery Mobile vs Appcelerator Titanium vs Sencha Touch
Ad

More from jobandesther (7)

PDF
Hackers vs Hackers
PDF
Automated testing of mobile applications on multiple platforms
PDF
Mobile Game Development With Eqela (March 2014)
ODP
Graphical User Interface Development with Eqela
ODP
Networking and Data Access with Eqela
ODP
Eqela Core API and Utilities
PDF
Cross Platform Game Development with GDAP, December 2012
Hackers vs Hackers
Automated testing of mobile applications on multiple platforms
Mobile Game Development With Eqela (March 2014)
Graphical User Interface Development with Eqela
Networking and Data Access with Eqela
Eqela Core API and Utilities
Cross Platform Game Development with GDAP, December 2012

Recently uploaded (20)

PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Digital Strategies for Manufacturing Companies
PDF
medical staffing services at VALiNTRY
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
System and Network Administration Chapter 2
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Essential Infomation Tech presentation.pptx
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
AI in Product Development-omnex systems
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Reimagine Home Health with the Power of Agentic AI​
How to Migrate SBCGlobal Email to Yahoo Easily
Design an Analysis of Algorithms I-SECS-1021-03
VVF-Customer-Presentation2025-Ver1.9.pptx
Digital Strategies for Manufacturing Companies
medical staffing services at VALiNTRY
Adobe Illustrator 28.6 Crack My Vision of Vector Design
How to Choose the Right IT Partner for Your Business in Malaysia
Wondershare Filmora 15 Crack With Activation Key [2025
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Navsoft: AI-Powered Business Solutions & Custom Software Development
System and Network Administration Chapter 2
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Which alternative to Crystal Reports is best for small or large businesses.pdf
PTS Company Brochure 2025 (1).pdf.......
Essential Infomation Tech presentation.pptx
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
AI in Product Development-omnex systems
Odoo POS Development Services by CandidRoot Solutions
2025 Textile ERP Trends: SAP, Odoo & Oracle
Reimagine Home Health with the Power of Agentic AI​

Optimized Cross Platform Development

  • 1. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Optimized Cross Platform Development Markku Kero / Job and Esther Technologies June 2014 / Softech.ph
  • 5. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. What does that mean for software developers?
  • 6. C++ JS ObjC Swift C/C# JS C Java Java C C++ C# C++ C C++ C# ObjC Swift → You need to have some kind of strategy to deal with this
  • 7. Cross platform development tools One codebase; target multiple platforms Many existing tools on the market
  • 8. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Common sentiment: “Cross platform tools do not work. Writing native code is the best (only) way.” (= writing the same application several times, once per platform)
  • 9. Commonly encountered issues Large installer size Excessive memory use Low performance Limited API access
  • 10. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Source code targeting a specific platform Tool Source / byte code and interpreter or VM for iOS Source / byte code and interpreter or VM for Android Run in browser Android app iOS app Runtime / Virtual machine (Java, JavaScript, Lua, Ruby, C#, ..) A common cross platform tool
  • 11. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Operating system Language interpreter / runtime APIs and libraries Application code A common cross platform tool Architecture
  • 12. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. A common cross platform tool Architecture Operating system Language interpreter / runtime APIs and libraries Application code Makes application installers bigger Increases memory usage Reduces runtime performance Applications can only access selected parts of the native API
  • 13. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Another popular architecture Source Code in HTML, CSS, JavaScript Tool Libraries C code That opens a Browser and Displays the program Java code That opens a Browser and Displays the program Android SDK Android installer iOS SDK iOS installer Run in browser HTML5 / “embed a web browser”
  • 14. Commonly encountered issues Large installer size Excessive memory use Low performance Limited API access
  • 15. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. The C++ approach C++ application code SDK / compiler Run in browser Android application iOS Objective-C runtimeC++ class library BlackBerry 10 application Windows Phone app iOS Swift runtime
  • 16. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. These approaches can produce working applications, but the approach can be improved
  • 17. Programming language conversion (Source code) Small Installers Optimal memory use No API access limitationsNative performance
  • 20. class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } Main.eq Eqela Compiler LayerWidget, LabelWidget Main.java, LayerWidget.java, LabelWidget.java Android SDK Android application A sample Eqela application
  • 21. class Main : LayerWidget { public void initialize() { base.initialize(); add(LabelWidget.instance().set_text(“Hello World”)); } } package mk.test; public class Main extends eq.gui.LayerWidget { @Override public void initialize() { super.initialize(); ((eq.gui.ContainerWidget)this).add(((eq.gui.Widget)eq.widget.LabelWidge t.eq_widget_LabelWidget_instance().set_text(eq.api.StringStatic.eq_api_ StringStatic_for_strptr("Hello world")))); } public Main() { } } (EQELA) (JAVA)
  • 22. class AndroidHTTPGet { public static bool execute(String url) { embed “java” {{{ org.apache.http.client.methods.HttpUriRequest hur = new org.apache.http.client.methods.HttpGet(url.to_strptr()); android.net.http.AndroidHttpClient hc = android.net.http.AndroidHttpClient.newInstance(“testing”); org.apache.http.HttpResponse resp = hc.execute(hur); if(resp == null) { return(false); } }}} return(true); } } → All platform specific features / APIs are accessible Embedding other languages
  • 23. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Comparison: A “hello world” application First approach (virtual machine / interpreter) Tool A: 8MB installer Tool B: 4MB installer The “embed a web browser” approach: ~300KB installer The “source code conversion” approach: 96KB installer
  • 24. Copyright (c) 2014 Job and Esther Technologies, Inc. All Rights reserved. Given the right technical architecture, cross platform applications can be optimized markku.kero@jobandesther.com www.eqela.com