Your SlideShare is downloading. ×
Haxe & NME
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Haxe & NME

455
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
455
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Haxe17.04.2013 Florian Hofmann@_astrocreephttp://www.blackgoat.dehttp://www.playata.com
  • 2. Haxe als Programmiersprache● Klassisch OO, ähnlich Java oder ActionScript3● Strict Typed / Type inference
  • 3. Type Inference / Strict Typedvar i;$type(i); // Unknown(0)i = 1;$type(i); // Inti = "test"; // Error: String should be Int
  • 4. Haxe als Programmiersprache● Klassisch OO, ähnlich Java oder ActionScript3● Strict Typed / Type inference● Packages● Generics
  • 5. Genericsclass SomeClass<T> {public arr:Array<T>;public function new() {arr = new Array();}}var instance = new SomeClass<Sprite>();$type(instance.arr) // Array<flash.display.Sprite>
  • 6. Haxe als Programmiersprache● Klassisch OO, ähnlich Java oder ActionScript3● Strict Typed / Type inference● Packages● Generics● Inlining● Enums
  • 7. Enumsenum Suit {Clubs;Diamonds;Hearts;Spades;}class Card {public var suit:Suit;...
  • 8. Haxe als Programmiersprache● Klassisch OO, ähnlich Java oder ActionScript3● Strict Typed / Type inference● Packages● Generics● Inlining● Enums● Macros
  • 9. Macrosclass Test {macro public static function getBuildDate() {var date = Date.now().toString();return Context.makeExpr(date, Context.currentPos());}static function main() {trace(getBuildDate());}}
  • 10. Haxe als Programmiersprache● Klassisch OO, ähnlich Java oder ActionScript3● Strict Typed / Type inference● Packages● Generics● Inlining● Enums● Macros● SPOD Macros● Unit Testing● Externs● usw.
  • 11. Aufbau● Sprache für alle Plattformen gleich● Großes Paket an Standardbibliotheken (XML, Math, Crypto,Datastructures, usw.)● Plattformspezifische APIs (JS->DOM, AS->DisplayList usw.)
  • 12. ZielplattformenPlattformunabhängige Programmiersprache● Flash● Javascript● NekoVM● PHP● C++● (Java)● (C#)● (Objective-C)
  • 13. Haxe Workflow - allgemein● Code in .hx Files● Build-Config in .hxml Files● Haxe Compiler (2.10 stable, 3.0RC)● kommandozeilenlastig ;)
  • 14. Haxe Workflow - Entwicklungsumgebung● Flashdevelop (nur Windows)● SublimeText2 (als Package)● IntelliJ Idea Ultimate● FDT ab V4
  • 15. Haxe Workflow - GrafikKein definierter "Workflow". Hängt von der Zielplattform ab,prinzipiell kann jedes Tool benutzt werden.
  • 16. Haxe Workflow - DebuggingFlashFlash Debugger notwendig, dann geht das mit jedemDebugger/ProfilerJavascriptGenerierung von SourcemapsC++HXCPP Debugger (z.B. mit IntelliJ)
  • 17. Ressourcen & Doku● API auf haxe.org/api● Hauptfeatures sind gut dokumentiert auf: haxe.org/doc
  • 18. KostenCompiler selber ist kostenlos und als OpenSourceverfügbar!
  • 19. Zukunftssicherheit● OpenSource● Aktive Community● Haxe Foundation als Basis
  • 20. Schwächen● Keine eigene Zielplattform● Extrem schnelle Entwicklung● Mangelhafter MAC Support (IDE)● Aktuell keine plattformunabhängige 3D-Engine
  • 21. Stärken● Keine eigene Zielplattform● Extrem schnelle Entwicklung● Open-Source● AS3 wie es sein sollte● haxelib (Librarymanagement)
  • 22. haxelib● Kommandozeilentool zum Verwalten von Bibliotheken● haxelib install xy● haxelib remove xy● haxelib upgrade
  • 23. NME"Native" Crossplatform● Web (Flash oder HTML5)● iOS● Android● Windows● MAC● BlackBerry● Air
  • 24. NME im Vergleich zu "purem" HaxeNME stellt fast alle AS3 Pakete für sämtliche Zielplattformen zurVerfügung (z.B.: nme.display.*)Im Vergleich zu Haxe muss nicht für jede Zielplattform individuellerCode zur grafischen Anzeige geschrieben werden.
  • 25. NME WorkflowEigenes Paket an Kommandozeilentools● nme setup xy● nme test● nme buildEigenes Build-File-FormatDamit auch Zertifikate, ganze Ordner mit Assets etc. miteingebunden werden können.
  • 26. NMEStärken● Auf jeder Plattform die gleiche API● KommandozeilentoolsSchwächen● Overhead● Kleiner Entwicklerstamm● Viele Features leider nur 90%
  • 27. Beispiele
  • 28. BeispieleEvoland
  • 29. BeispielePrezi
  • 30. Genome2D● "Increased performance up to 400% in some cases but whatsmore at least 100% so basically everything I tried yet wasatleast 2 times faster than the AS3 version"● "There are 4 targets at the moment that I am working on 2 flashtargets (bitmap/stage3D) and 2 JS targets (canvas/webgl).Thinking about C target as well but well see."http://forum.genome2d.com/viewtopic.php?f=4&t=19
  • 31. LinksHaxehttp://haxe.orghttp://haxe.org/apihttp://haxe.org/dochttps://groups.google.com/forum/#!forum/haxelangNMEhttp://www.nme.io