Hm, Haufen Zeug, mal Stück für Stück...
Centurion hat geschrieben:Wie sieht bei euch die Entwicklungsumgebung bzw. der Workflow aus? Was benutzt ihr von Flash? Also habt ihr Designer die viel schon in Flash CS zusammenklicken und dann machen ein paar Entwickler was in ActionScript dazu? Benutzt ihr den Flash Builder? Benutzt ihr das Flex SDK? Wenn ja, welche Komponenten (Nur simple wie z.B. Button oder auch sowas wie DataGrid)? Benutzt ihr zusätzliche Bibliotheken oder Frameworks wie z.B. Cairngorm? Was für Architekturprinzipien wendet ihr an, z.B. MVC? Benutzt ihr MXML?
Unsere Designer bauen in Flash CS5 die grafischen Assets zusammen. Ausser für Assets versuchen wir Flash dann nicht mehr zu benutzen. Die Entwickler bauen die Anwendung in AS3 zusammen. Dazu verwenden wir den Flash-Builder oder FlashDevelop. Ersteres wollen wir inzwischen möglichst vermeiden weil es (wie alle auf Eclipse basierende IDEs) extrem schwerfällig und fehleranfällig ist. FlashDevelop ist sowas wie der kleine Bruder vom FlashBuilder - viel schneller, dafür ohne den ganzen Krimskrams der einen bremst. FlashDevelop nutzt dann die Tools aus der FlexSDK um tatsächlich aus Source-Code Flash-Anwendungen zu bauen.
Komponenten aus der Flex-SDK benutzen wir kaum, bei uns werden die meisten Komponenten selbst gebaut, einfach weil wir 1) ziemlich viel graphischen Schnickschnack verwenden und 2) die Flex-Komponenten extreme Probleme machen sobald die Anwendung etwas größer oder aus mehreren SWF Dateien zusammengebaut wird.
Mit Bibliotheken und Frameworks auf Flash-Seite kenne ich mich nicht so besonders gut aus, das machen meist andere Leute hier, wenn überhaupt. Die meisten unserer Sachen sind so klein, dass das nicht zwingend nötig ist. Bei unserem letzten großen Projekt haben wir z.B. das Gaia-Framework benutzt, was einem viel Arbeit abnimmt wenn man viele "Seiten" in der Anwendung hat, die erst bei Bedarf geladen und angezeigt werden sollen. Bei dem Projekt haben wir auch versucht, MVC und Command-Pattern einzusetzen. Ist alles in Flash nicht so ganz intuitiv, einfach weil das Model und der View traditionell das selbe sind.
MXML benutzen wir gar nicht.
Centurion hat geschrieben:Flash Builder als IDE macht einen ganz guten Eindruck. Debugger ist in Ordnung usw.
Jo, was das angeht ist es ganz brauchbar. Es hat aber, wie schon gesagt, die häßlichen Eigenschaften von Eclipse geerbt: es ist extrem langsam, bei größeren Projekten kann es schon mal ein paar Sekunden dauern bis nach einem Tastendruck im Editor ein sichtbares Ergebnis erscheint, einfach weil jedes Mal compiliert, geparsed, und eine Lochkartenkopie angelegt wird; die SVN-Anbindung ist miserabel: sie versucht den Nutzer vor den "bösen" Aktionen mit SVN zu schützen, erlaubt aber mit einem falschen Klick, das SVN-Repository so zu zerschießen, dass es nur ein Admin in aufwändiger Arbeit wieder herstellen kann; es findet oft Texte nicht wenn man "in allen Dateien" oder "im gesamten Projekt" sucht; usw. usw.
Geschmackssache, ich persönlich halte es für eine Zumutung.
Leider sind aber tatsächlich der Debugger und Profiler aktuell konkurenzlos. Wenn dir das also sehr wichtig ist, solltet ihr es vielleicht trotzdem in Erwägung ziehen, Flash-Builder von Anfang an zu benutzen - auch weil es fast unmöglich für normale Menschen ist, ein Flash-Projekt, das nicht in Flash-Builder erstellt wurde, in diesen hinein zu bekommen (wie bei allen Eclipse-Derivaten).
Centurion hat geschrieben:MXML ist doof. Man kommt damit schnell zu einem Ergebnis, aber üblicherweise nicht genau zu dem Ergebnis, das man will. Zudem hat man bei MXML keine gescheite Kontrolle über den Lebenszyklus der Objekte, keine richtigen Konstruktoren usw.
Das stimmt, ist aber in Flash auch nicht viel anders. In Flash ist es oft üblich, solche Sachen über das Event ADDED_TO_STAGE oder REMOVED_FROM_STAGE zu handhaben, da es im Konstruktor z.B. auch nicht sicher ist, dass alle globalen Objekte vorhanden sind. Der Garbagecollector ist auch nicht das gelbe vom Ei - falls das ein Problem für euch ist.
Centurion hat geschrieben:Das Flex SDK selbst ist komplett in ActionScript geschrieben und kommt zu 100% ohne MXML aus. Sagt schon mal einiges.
MXML war ein Versuch, Softwareentwicklern das Eingewöhnen in Flash leichter zu machen. Völlig Banane, meiner Meinung nach. Einfach in FlashDevelop ein neues Projekt anlegen und die Main.as Klasse um entsprechende Aufrufe erweitern - 100x intuitiver und einfacher zu benutzen.
Centurion hat geschrieben:Es gibt für so ziemlich alles (Button, Textfeld, Rechteck etc.) eine ganze Handvoll verschiedene Klassen. Manche sind Teil einer extrem tiefen Vererbungshierarchie, was das Verständnis nicht gerade erleichtert. Wenn ich was eigenes machen will, hab ich keine Ahnung wovon ich erben sollte und was ich redefinieren muss. Vielleicht bin ich nach fünf Jahren ABAP einfach zu doof für so etwas aber ich finde das SDK nicht sehr übersichtlich.
Das stimmt leider. Warum es z.B. vier verschiedene Textboxen gibt, weiß auch kein Mensch. Meist kommt man mit einer einzigen aus und benutzt die immer wieder. Tatsächlich ist es in Flash auch einfach üblich, sich UI-Komponenten selbst zu basteln.
Centurion hat geschrieben:Die Doku ist sehr oberflächlich. Methodenbeschreibungen deuten nur an, wann und zu welchem Zweck das Framework welche Methoden aufruft und wie man sie redefinieren sollte oder welche Klasse man für was verwendet. 90% der Beispiele sind in MXML und für ein tieferes Verständnis der Programmierung somit nutzlos.
Beste Doku bisher sind die Live-Docs von Adobe selbst, die sind recht ausführlich. Wenn du in Google AS3 und einen Klassen- oder Funktionsnamen eingibst, landest meist auf denen. Keine Ahnung, was in der Doku von Flex drin ist.
Centurion hat geschrieben:Würdest Du dieser Einschätzung zustimmen, Jan? Gibt es empfehlenswerte Bücher oder so? Stelle ich mich einfach nur dumm an?
Mit Büchern kann ich dir jetzt leider auch nicht helfen. Die meisten Infos finde ich irgendwo im Netz.
Eins sollte dir von vornherein klar sein: Flash bzw. Actionscripts ist nicht als Programmiersprache entstanden. Es war zuerst die Grafik da, dann Animation entlang fester Bahnen, und erst dann kam irgendwann Skripting und Programmieren ins Spiel. Die meisten Leute, die Flash machen sind eher Designer als Entwickler. Entsprechend findest du zu jedem Thema 1000 Tutorials aber fast keine brauchbare Referenz. Es ist für Leute, die richtige Programmiersprachen und Umgebungen gewohnt sind etwas gewöhnungsbedürftig.
Keine Ahnung, ob sich Konkurenzprodukte mit solchen Problemen herumschlagen, aber ich würde es auch vermuten.
Hm, klingt etwas pessimistisch im Nachhinein - Flash-Entwicklung ist extrem einfach, aber man muss sich halt mit neuen Problemen rumschlagen.