SYDJS July 2011. What is HaXe? Multi-platform language Open source (www.haxe.org) Community driven Version 2.07 (around since 2005) Single syntax for.

Slides:



Advertisements
Similar presentations
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
Advertisements

Other Web Application Development Technologies. PHP.
12 October 2011 Andrew Brown IMu Technology EMu Global Users Group 12 October 2011 IMu Technology.
Introduction to HaXe For Flash and JavaScript Developers David Dominic De Dean
Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Mobile App Development Using: Presented by Tyler Richey Images from
Amanda Silver Director of Program Management Visual Studio Tools for Client Applications Cross-Platform Development using Visual Studio.
Designer’s Challenge – Web-based Applications using Adobe Flex and OpenInsight Clay Borne President CLB IT.
1 GWT Google Web Toolkit Build AJAX apps in the Java language
Rapid Game Development with Corona SDK - Altaf Rehmani.
Do We Really Need Rich-Interface Technologies? Yifan Zhang
Development of mobile applications using PhoneGap and HTML 5
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
UNIT4 BUSINESS ANALYTICS. page WHAT IS THE PRODUCT? 2 A business intelligence tool kit, specializing in Coporate Performance Management An application.
ECLIPSE IDE N AME : A SHOK P ADMARAJU C OURSE : T OPICS ON S OFTWARE E NGINEERING I NSTRUCTOR : D R. S ERGIU D ASCALU.
Intelligent Tutoring System Mobile Communication Team Drew Boatwright Nakul Dureja Richard Liou.
JavaScript Demo Presented by … Jaisingh Sumit jain Sudhindra Taran Deep arora.
Bertrand Bellenot root.cern.ch ROOT I/O in JavaScript Reading ROOT files from any web browser ROOT Users Workshop
ITM352 PHP and Dynamic Web Pages: Server Side Processing.
HTML5 GAMING By Scott Benton. HTML5 New HTML Standard Previous Version of HTML, HTML 4.01, Released in 1999 Not an Official Standard Yet No Browsers Have.
Lightning Talk Fred Rodriguez Nguyen Do CPSC 473 May 6, 2012.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.

JavaScript, jQuery & AJAX. What is JavaScript? An interpreted programming language with object oriented capabilities. Not Java! –Originally called LiveScript,
Title slide to be used at the start of a module. Developing Mobile Apps Roland Guijt
Introduction to ArcGIS API for JavaScript
Creating and Running Your First C# Program Svetlin Nakov Telerik Corporation
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
1 Producing Rich Internet Applications with an Open Source Platform Martin Cadirola Ecotronics.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Cross Site Integration “mashups” cross site scripting.
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Jianfeng Liu, eBay Justin Early, eclipse.org/vjet/
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
Game on! With Nativescript
KAASHIV INFOTECH Presents INTEL XDK For Inplant Training / Internship, please download the "Inplant training registration form" from our website
Javascript Static Code Analyzer
Fall 2004CSI University of Ottawa Introduction to PHP Basic principles and syntax.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
TypeScript for Alfresco and CMIS Steve Reiner CTO Integrated Semantics.
Google Web Toolkit for Mobile Applications Development INGENUITY AT ITS BEST……………….
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
Top 5 IDE that Simplifies PHP Development Biztech IT Consultancy Pvt. Ltd. | |
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
ANGULAR JS 2.0 Revolutionizes UI/UX Development. A CONTEMPORARY FRAMEWORK  Open Source Web Application Framework  Renowned, Established & Stable Frontend.
Best Web Technologies for
CSCI 3100 Tutorial 5 JavaScript & Ajax Jichuan Zeng Department of Computer Science and Engineering The Chinese University of Hong.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
QML and JavaScript for Native App Development Michael Tims Jen Trieu.
A little more App Inventor and Mind the GAP!
ITM352 PHP and Dynamic Web Pages: Server Side Processing 1.
Angular 4 + TypeScript Getting Started
Apache Cordova Overview
3 Things Everyone Knows About Node JS That You Don't
CMPE419 Mobile Application Development
Top 5 Front End Development Tools. 1. Sublime Text Sublime Text may be a super quick and have packed text and development editor. If you're about to be.
Not Your Grandparent’s PowerOn
.NET and .NET Core Foot View of .NET Pan Wuming 2017.
Introduce to Angular 6 Present by: Võ Văn Hào
CMPE419 Mobile Application Development
Presentation transcript:

SYDJS July 2011

What is HaXe? Multi-platform language Open source ( Community driven Version 2.07 (around since 2005) Single syntax for client-side, server-side & command line programming – ECMAScript based syntax is easy for JavaScript and ActionScript developers to work with Strictly typed (compile time checking) across all targets – Even for non compiled languages like JavaScript and PHP Lightning fast compilation – Even for large applications with multiple target/device outputs Excellent runtime performance on target platforms

What platforms can HaXe target? Client side – JavaScript (HTML, Canvas, WebGL) – Flash (AS2/3, AIR, Molehill) – C++ (desktop, mobile platforms like Android and iOS) Server side – PHP – Neko – NodeJS Command Line – Neko – C++ Java and C# (.NET) support coming soon!

How HaXe works The HaXe compiler translates source code into native source and/or bytecode – Source code like JavaScript, ActionScript, C++, PHP – Byte code like Flash, NekoVM HaXe Compiler HaXe Source Code HaXe Source Code Native Byte Codes Native Byte Codes Native Source Codes Native Source Codes

Hello World HelloWorld.hx class HelloWorld { static function main() { return new HelloWorld(); } public function new() { trace("Hello World!"); } haxe -x HelloWorld Demo

Hello [JavaScript] World index.html Hello World haxe –main -js HelloWorld.js Demo

Hello [Multi-Platform] World $ haxe build.hxml build.hxml # js -main HelloWorld -js HelloWorld.js --next # swf 9 -main HelloWorld -swf9 HelloWorld_9.swf --next # swf 8 -main HelloWorld -swf HelloWorld_8.swf haxe build.hxml --next # php -main HelloWorld -php build/php -cmd echo ”----- PHP-----” -cmd php build/php/index.php --next # neko -main HelloWorld -neko build/HelloWorld.n -cmd echo ”----- NEKO-----” -cmd neko build/HelloWorld.n --next # c++ -main HelloWorld -cpp build/cpp -cmd echo -cmd echo ”----- CPP-----” -cmd build/cpp/HelloWorld Demo

What HaXe has to offer Single Language and syntax enabled across all platforms Standard cross platform libraries work across all client and server targets (like Date, Xml, Math, Http, etc) Access full target platform APIs (JavaScript, Flash, etc) Interface with existing platform libraries (e.g. JQuery, Raphael, SWCs) Conditional compilation flags for targeting specific platforms (#if js ….) 3 rd Party HaXe libraries via HaxeLib (terrific open source community)

What HaXe has to offer JavaScript Developers? Compile time checking of your javascript code Advanced language features allow for beautiful, readable code Single syntax for client, server and command line applications Targeting new platforms is just looking up additional APIs, rather than learning entirely new languages Admittedly, the generated JavaScript is fast but not always pretty… use macros to easily extend or replace the default JS generator (using haXe of course!)

Cross Platform APIs var string = new String("foo"); var bool = new Bool(); var date = new Date(); var array = ["a", "b", "c"]; for(s in array) { trace(s); } var xml = Xml.parse(" "); var o:Dynamic = {}; var = new haxe.Http("

Example.hx Platform Specific APIs #if js import js.Dom; #else if flash import flash.display.Sprite; #end class Example { public function new() { #if js js.Lib.alert("foo"); #elseif flash flash.Lib.trace("foo"); #else trace("foo"); #end } Demo

Leveraging 3 rd Party APIs Use Extern Classes to define functions in external JavaScript libraries (or any other language) Compile time type checking on non typed runtime JavaScript APIs Many popular JS libraries already already have externs out there – e.g. jQuery, raphael, nodeJS, google-js Check out standard HaXe JS classes as examples Foo.hx extern class Foo { public function new(id:String):Void; public function bar():Void; public var visible(default, null):Bool }

build.hxml Using HaxeLib Libraries #flash -main Example -swf9 Example.swf --next # js --remap flash:jeash -main Example -lib jeash -js Example.js haxelib install jeash haxelib install nme haxelib install hxcpp --next # cpp --remap flash:nme -main Example -lib nme -lib hxcpp -cpp example-cpp -cmd example-cpp/Example

Example.hx Multi Platform UI import flash.display.Shape; import flash.display.Sprite; import flash.Lib; class Example extends Example { public static function main() { var example = new Example (); Lib.current.addChild(example); } public function new() { super(); var circle:Shape = new Shape( ); circle.graphics.beginFill( 0x7A9AA9, 1 ); circle.graphics.drawCircle( 0, 0, 40 ); addChild(circle); } Demo

Cross Platform Considerations Libraries like Jeash and NME make it simple to target multiple platforms using a single API But sometimes the flash API is overkill, and each library implements different subsets of it Your application will still require plenty of conditional compilation and package remapping The larger the project the more complex it is to manage cross platform implementations

Next Steps Download HaXe from Browse through Subscribe to the HaXe mailing list ( Enable your IDEs ( Follow people @andy_li) Start coding!

What we’ve been up to! Raxe (multi-platform build/release tool) MUnit (cross-platform unit testing framework/runner) Sublime Text Plugins (auto-completion, raxe integration) Massivision UI Framework

Thank You Any Questions? Massive is currently hiring: Follow Us @misprintt