SlideShare a Scribd company logo
1 of 32
Download to read offline
Cross-platform Development 
Introducing the Haxe Toolkit 
by Romuald Halasz, 02.08.2014
A little bit about me 
- started work with QuickBasic, BPascal, C++ 
- Visual Studio 2005, OpenGL, DirectX 
- PHP, HTML, CSS, JavaScript 
- Flash, Flex 
- Haxe, NME 
- currently hosting TGD Meetup
Presentation structure 
Introduction to Haxe 
- language features 
Cross-platform aspects 
- specific APIs 
- target specific platforms
Getting acquainted with Haxe 
A bit of history: 
22 October 2005 by French developer Nicolas Cannasse 
Haxe 2.0 was released in July 2008, 
Haxe 3 was released in May 2013 
open source 
Toolkit: 
- language 
- standard library 
- compiler
Language Specifics 
- based on ECMAScript standard, similar to ActionScript 
- strictly typed 
- object oriented 
- conditional compilation 
- inline calls 
- metadata 
- type params, constraints, variance 
- etc. (pattern matching, abstract types, string interpolation …) 
- more info: http://haxe.org/documentation/introduction/language-features.html
What does it look like ? 
class Test { 
static function main():Void { 
var people:Array = [ 
"Elizabeth" => "Programming", 
"Joel" => "Design" 
]; 
for (name in people.keys()) { 
var job = people[name]; 
trace('$name does $job for a living!'); 
} 
} 
}
Language Architecture 
- Haxe API 
- platform-specific APIs 
- libraries 
- frameworks
Haxe Standard Library 
- general classes 
- system (requires platform compilation) 
- target specific APIs 
(cpp, cs, flash, php etc.)
Haxelib 
- library manager 
- CLI tool 
- browse and download libraries: 
http://lib.haxe.org/
Haxe and multiple platforms 
Going cross-platform! 
Let’s dive right into it. 
first, a bit of context...
Targets and Use Cases 
Name Kind Static typed Sys Use Cases 
Flash byte code Yes No Games, Mobile 
Neko byte code No Yes Web, CLI 
ActionScript 3 source Yes Yes Games, Mobile, API 
JavaScript source No No Web, Desktop, API 
PHP source No Yes Web 
C++ source Yes Yes Games, CLI, Mobile, Desktop 
Java source Yes Yes CLI, Mobile, Desktop 
C# source Yes Yes Mobile, Desktop 
Python source No Yes CLI, Web, Desktop
Platform Use Cases 
We will focus on: 
- Mobile 
- Desktop 
- Web 
- Games!
Library Spotlight: Lime 
“A foundational Haxe framework for cross-platform 
native development.” 
- abstraction layer 
- compile code to C++, JavaScript etc. 
Structure 
- CLI tools - platform-specific process 
- native layer (C++, Objective-C, Java) 
- Haxe wrapper
OpenFl, NME 
- provide support for creating 
cross-platform interfaces 
- flash-like API (display, events, 
text, external, net etc.)
Supported platforms 
Take your pick!
OpenFl in practice 
Targets: 
Desktop: Windows, Mac, Linux 
Mobile: iOS, Android, BlackBerry 
Web: Tizen, Emscripten, HTML5 
Exposes: 
OpenGL, Audio, Input 
Windowing 
Useful native features
Haxe and Mobile 
Targets: C++, HTML5 
Tools: 
- cross-platform APIs 
- libraries: StablexUI, HaxeUI 
For iOS and Android: Basis 
HTML5 target works with PhoneGap
Targeting iOS, Android, BlackBerry 
Android: 
- Android SDK/NDK, Apache ANT, Java JDK 
- supported by lime 
iOS: 
- Xcode required 
- target Flash, publish using AIR 
BlackBerry: 
- OpenFl is compatible with BlackBerry Tablet SDK 
- supported by lime
Desktop Targets 
Targets: C++, HTML5 
Tools: 
Libraries: Waxe (Haxe + wxW) 
HTML5 targets work with Node-socket 
- app runtime 
- based on Chromium and Node.js 
https://github.com/rogerwang/node-webkit
Targeting Windows, Mac, Linux 
Windows: 
- Neko (no dependencies) 
- C++, Visual Studio required 
Mac: 
- Neko 
- C++, requires Xcode 
Linux: 
- g++, gcc-multilib required 
!! Targeting restricted to current platform
Haxe on the Web 
Client targets: 
- JavaScript, ActionScript 3 
Server targets: 
- PHP, Node, Neko
Haxe Web - clients 
Haxe and jQuery: 
- Haxe js.jQuery API 
- jQueryExternForHaxe (library) 
- more recent jQuery version 
- https://github.com/andyli/jQueryExternForHaxe
jQuery Example 
$(document).ready(function(){ 
$("#myDiv").hide(); 
}); 
import JQuery; 
class Main { 
static public function main():Void { 
new JQuery(function():Void { 
new JQuery("#myDiv").hide(); 
}); 
} 
}
Haxe Web - servers 
Haxe JS Kit 
https://github.com/clemos/haxe-js-kit 
includes Node.js 
- NPM libraries: 
Mongoose, Connect.js, Express.js, Socket.io, Passport.js, 
Atom-shell 
Haxenode 
- Node.js port for Haxe 
http://haxenode.herokuapp.com/
Haxenode Example (node) 
Node.js: 
var http = require('http'); 
var server = http.createServer( 
function (req, res) { 
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end('Hello Worldn'); 
} 
); 
server.listen(1337, "127.0.0.1"); 
console.log('Server running at http://127.0.0.1:1337/');
Haxenode Example (haxe) 
import js.Node; 
class Haxenode { 
public static function main() { 
var server = Node.http.createServer(function(req:NodeHttpServerReq, res: 
NodeHttpServerResp) { 
res.setHeader("Content-Type","text/plain"); 
res.writeHead(200); 
res.end('Hello Worldn'); 
} 
); 
server.listen(1337,"localhost"); 
trace('Server running at http://127.0.0.1:1337/'); 
} 
}
And last but not least, Games! 
Libraries: 
Frameworks: HaxeFlixel, awe6, HaxePunk
A close look at HaxePunk
More information 
haxe.org 
openfl.org 
haxepunk.com
Thank you very much !

More Related Content

What's hot

.NET Core in the Real World
.NET Core in the Real World.NET Core in the Real World
.NET Core in the Real WorldNate Barbettini
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php PresentationAlan Pinstein
 
Front End Development Automation with Grunt
Front End Development Automation with GruntFront End Development Automation with Grunt
Front End Development Automation with GruntLadies Who Code
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk CacheChang W. Doh
 
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki
 
Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalInna Tuyeva
 
PHP presentation - Com 585
PHP presentation - Com 585PHP presentation - Com 585
PHP presentation - Com 585jstout007
 
.Net introduction
.Net introduction.Net introduction
.Net introductionSireesh K
 

What's hot (15)

Super combinators
Super combinatorsSuper combinators
Super combinators
 
.NET Core in the Real World
.NET Core in the Real World.NET Core in the Real World
.NET Core in the Real World
 
Lean Php Presentation
Lean Php PresentationLean Php Presentation
Lean Php Presentation
 
Front End Development Automation with Grunt
Front End Development Automation with GruntFront End Development Automation with Grunt
Front End Development Automation with Grunt
 
Cache in Chromium: Disk Cache
Cache in Chromium: Disk CacheCache in Chromium: Disk Cache
Cache in Chromium: Disk Cache
 
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
Voxxed Days Thessaloniki 2016 - Web assembly : the browser vm we were waiting...
 
Net core
Net coreNet core
Net core
 
Php
PhpPhp
Php
 
Tech talk php_cms
Tech talk php_cmsTech talk php_cms
Tech talk php_cms
 
Drupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs DrupalDrupal Camp2009 Asp.Net Vs Drupal
Drupal Camp2009 Asp.Net Vs Drupal
 
Tech talk: PHP
Tech talk: PHPTech talk: PHP
Tech talk: PHP
 
Presentation php
Presentation phpPresentation php
Presentation php
 
JS 4 U
JS 4 UJS 4 U
JS 4 U
 
PHP presentation - Com 585
PHP presentation - Com 585PHP presentation - Com 585
PHP presentation - Com 585
 
.Net introduction
.Net introduction.Net introduction
.Net introduction
 

Similar to Haxe Toolkit for cross-platform applications development

Haxe Toolkit and Game Development
Haxe Toolkit and Game DevelopmentHaxe Toolkit and Game Development
Haxe Toolkit and Game DevelopmentRomuald Halasz
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkecker
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Pierre Joye
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar SlidesDuraSpace
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_ChesnokovVladimir Chesnokov
 
Open Source Flash 2010
Open Source Flash 2010Open Source Flash 2010
Open Source Flash 2010Gaurav Saxena
 
Node.js an introduction
Node.js   an introductionNode.js   an introduction
Node.js an introductionMeraj Khattak
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScriptOleg Podsechin
 
API Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionAPI Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionLes-Tilleuls.coop
 
full-stack web developer (6).pdf
full-stack web developer (6).pdffull-stack web developer (6).pdf
full-stack web developer (6).pdfShubhamSaini950258
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnishRajnish Kalla
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentTilak Joshi
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitIgalia
 
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...Flink Forward
 
AJAX Frameworks
AJAX FrameworksAJAX Frameworks
AJAX Frameworksshank
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRfunkatron
 

Similar to Haxe Toolkit for cross-platform applications development (20)

Haxe Toolkit and Game Development
Haxe Toolkit and Game DevelopmentHaxe Toolkit and Game Development
Haxe Toolkit and Game Development
 
HaXe Demo
HaXe DemoHaXe Demo
HaXe Demo
 
qooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Frameworkqooxdoo - Open Source Ajax Framework
qooxdoo - Open Source Ajax Framework
 
Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18Webdevcon Keynote hh-2012-09-18
Webdevcon Keynote hh-2012-09-18
 
2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides2.28.17 Introducing DSpace 7 Webinar Slides
2.28.17 Introducing DSpace 7 Webinar Slides
 
.NET Core on Mac
.NET Core on Mac.NET Core on Mac
.NET Core on Mac
 
20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov20160201_resume_Vladimir_Chesnokov
20160201_resume_Vladimir_Chesnokov
 
Open Source Flash 2010
Open Source Flash 2010Open Source Flash 2010
Open Source Flash 2010
 
World of Node.JS
World of Node.JSWorld of Node.JS
World of Node.JS
 
Node.js an introduction
Node.js   an introductionNode.js   an introduction
Node.js an introduction
 
The future of server side JavaScript
The future of server side JavaScriptThe future of server side JavaScript
The future of server side JavaScript
 
API Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework ResurrectionAPI Platform: Full Stack Framework Resurrection
API Platform: Full Stack Framework Resurrection
 
full-stack web developer (6).pdf
full-stack web developer (6).pdffull-stack web developer (6).pdf
full-stack web developer (6).pdf
 
.Net overviewrajnish
.Net overviewrajnish.Net overviewrajnish
.Net overviewrajnish
 
Webhouse
WebhouseWebhouse
Webhouse
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...
Flink Forward Berlin 2018: Robert Bradshaw & Maximilian Michels - "Universal ...
 
AJAX Frameworks
AJAX FrameworksAJAX Frameworks
AJAX Frameworks
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIRBuilding Desktop RIAs with PHP, HTML & Javascript in AIR
Building Desktop RIAs with PHP, HTML & Javascript in AIR
 

Recently uploaded

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile EnvironmentVictorSzoltysek
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 

Recently uploaded (20)

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT  - Elevating Productivity in Today's Agile EnvironmentHarnessing ChatGPT  - Elevating Productivity in Today's Agile Environment
Harnessing ChatGPT - Elevating Productivity in Today's Agile Environment
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 

Haxe Toolkit for cross-platform applications development

  • 1. Cross-platform Development Introducing the Haxe Toolkit by Romuald Halasz, 02.08.2014
  • 2. A little bit about me - started work with QuickBasic, BPascal, C++ - Visual Studio 2005, OpenGL, DirectX - PHP, HTML, CSS, JavaScript - Flash, Flex - Haxe, NME - currently hosting TGD Meetup
  • 3. Presentation structure Introduction to Haxe - language features Cross-platform aspects - specific APIs - target specific platforms
  • 4. Getting acquainted with Haxe A bit of history: 22 October 2005 by French developer Nicolas Cannasse Haxe 2.0 was released in July 2008, Haxe 3 was released in May 2013 open source Toolkit: - language - standard library - compiler
  • 5. Language Specifics - based on ECMAScript standard, similar to ActionScript - strictly typed - object oriented - conditional compilation - inline calls - metadata - type params, constraints, variance - etc. (pattern matching, abstract types, string interpolation …) - more info: http://haxe.org/documentation/introduction/language-features.html
  • 6. What does it look like ? class Test { static function main():Void { var people:Array = [ "Elizabeth" => "Programming", "Joel" => "Design" ]; for (name in people.keys()) { var job = people[name]; trace('$name does $job for a living!'); } } }
  • 7. Language Architecture - Haxe API - platform-specific APIs - libraries - frameworks
  • 8.
  • 9. Haxe Standard Library - general classes - system (requires platform compilation) - target specific APIs (cpp, cs, flash, php etc.)
  • 10. Haxelib - library manager - CLI tool - browse and download libraries: http://lib.haxe.org/
  • 11. Haxe and multiple platforms Going cross-platform! Let’s dive right into it. first, a bit of context...
  • 12.
  • 13. Targets and Use Cases Name Kind Static typed Sys Use Cases Flash byte code Yes No Games, Mobile Neko byte code No Yes Web, CLI ActionScript 3 source Yes Yes Games, Mobile, API JavaScript source No No Web, Desktop, API PHP source No Yes Web C++ source Yes Yes Games, CLI, Mobile, Desktop Java source Yes Yes CLI, Mobile, Desktop C# source Yes Yes Mobile, Desktop Python source No Yes CLI, Web, Desktop
  • 14. Platform Use Cases We will focus on: - Mobile - Desktop - Web - Games!
  • 15. Library Spotlight: Lime “A foundational Haxe framework for cross-platform native development.” - abstraction layer - compile code to C++, JavaScript etc. Structure - CLI tools - platform-specific process - native layer (C++, Objective-C, Java) - Haxe wrapper
  • 16. OpenFl, NME - provide support for creating cross-platform interfaces - flash-like API (display, events, text, external, net etc.)
  • 18. OpenFl in practice Targets: Desktop: Windows, Mac, Linux Mobile: iOS, Android, BlackBerry Web: Tizen, Emscripten, HTML5 Exposes: OpenGL, Audio, Input Windowing Useful native features
  • 19. Haxe and Mobile Targets: C++, HTML5 Tools: - cross-platform APIs - libraries: StablexUI, HaxeUI For iOS and Android: Basis HTML5 target works with PhoneGap
  • 20. Targeting iOS, Android, BlackBerry Android: - Android SDK/NDK, Apache ANT, Java JDK - supported by lime iOS: - Xcode required - target Flash, publish using AIR BlackBerry: - OpenFl is compatible with BlackBerry Tablet SDK - supported by lime
  • 21. Desktop Targets Targets: C++, HTML5 Tools: Libraries: Waxe (Haxe + wxW) HTML5 targets work with Node-socket - app runtime - based on Chromium and Node.js https://github.com/rogerwang/node-webkit
  • 22. Targeting Windows, Mac, Linux Windows: - Neko (no dependencies) - C++, Visual Studio required Mac: - Neko - C++, requires Xcode Linux: - g++, gcc-multilib required !! Targeting restricted to current platform
  • 23. Haxe on the Web Client targets: - JavaScript, ActionScript 3 Server targets: - PHP, Node, Neko
  • 24. Haxe Web - clients Haxe and jQuery: - Haxe js.jQuery API - jQueryExternForHaxe (library) - more recent jQuery version - https://github.com/andyli/jQueryExternForHaxe
  • 25. jQuery Example $(document).ready(function(){ $("#myDiv").hide(); }); import JQuery; class Main { static public function main():Void { new JQuery(function():Void { new JQuery("#myDiv").hide(); }); } }
  • 26. Haxe Web - servers Haxe JS Kit https://github.com/clemos/haxe-js-kit includes Node.js - NPM libraries: Mongoose, Connect.js, Express.js, Socket.io, Passport.js, Atom-shell Haxenode - Node.js port for Haxe http://haxenode.herokuapp.com/
  • 27. Haxenode Example (node) Node.js: var http = require('http'); var server = http.createServer( function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello Worldn'); } ); server.listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/');
  • 28. Haxenode Example (haxe) import js.Node; class Haxenode { public static function main() { var server = Node.http.createServer(function(req:NodeHttpServerReq, res: NodeHttpServerResp) { res.setHeader("Content-Type","text/plain"); res.writeHead(200); res.end('Hello Worldn'); } ); server.listen(1337,"localhost"); trace('Server running at http://127.0.0.1:1337/'); } }
  • 29. And last but not least, Games! Libraries: Frameworks: HaxeFlixel, awe6, HaxePunk
  • 30. A close look at HaxePunk
  • 31. More information haxe.org openfl.org haxepunk.com
  • 32. Thank you very much !