Decisions where to go in terms of IDE / Frameworks


#1

Hello,
dear stubbornly wonderful fellow AS3 maniacs.
I have been writing Games, Mediastations, Websites and other things in Flash / Air now for a considerable amount of time. Starling / Feathers has been a stable part of that as well.
In recent years, after the ban of Flash for browsers, I also worked with Ionic, Cocos2d, Phaser, django and other stuff.
But for standalone Apllications I still tried to do everything with AIR, since it allowed for a very effective workflow for me.
My tools have been quite simple so far: Textmate ( I am working on MacOS ) and Adobe Animate plus the AIR SDK. I also did some stuff omitting Addobe Animate and went straight to command line compiling etc.
The choice for Animate came, since most graphic artists I work with prefer to have it in their workflow and it makes certain tasks just a bit less complicated.
Last year I eyed flexjs and other tools quite interestedly to see if I could also do websites with AS3 via crosscompiling.
Fast forward to February 2018 and there seem to be even more changes and options FlexJS became Apache Royale, Visual Studio Code seems to be well loved and IntelliJ Idea the choice for a lot of developers.

Of course I am aware that there is no “One IDE to rule them all” Magic, but I am putting out the question anyway:
Which configuration / workflow is the most sensible one at the moment for Cross Plattform dev?
So I can do Air Applications as well as Web-Apps with AS3

Thanks a lot for all input.


#2

Hello,

I am tracking progress of nextgenas for VSCode. Check its Wiki.
For now, after some more testing, my plan is to switch to it from Flash Builder.


#3

Again, depends on what apps you plan to do and where you want to publish them.

So, I’ll take myself as example, but more as “here what I do in my specific context”,
which does not means at all it could fit everyone.

I target mainly:

  • desktop apps
  • mobile apps
  • server apps

As long as I do server apps or anything non-visual, where the interface is text (CLI)
using something like Sublime Text, Atom, etc. whatever code editor that supports
ActionScript 3 syntax and highlight is good enough, the important part is that the editor
to be cross-platform so I can either edit code on Windows, macOS or Linux.

When it comes to desktop and mobile apps, where I need to render to a GUI,
I use Flash Builder because I can set it up with different AIR SDK, I can share codes
between projects and have different type of projects (desktop or mobile),
and because I can work with it either on mac or windows and have a preview of the rendering etc.

In all cases, the final build of the app is an automated build that goes through the command-line,
eg. I don’t use FlashBuilder “publish release app”.

I do publish a bit of HTML apps but those are lightweight, eg. either admin interface
with forms entries etc. or presentation/promotion pages, so those I don’t really need an IDE to build them
it’s very basic CSS kit, JS glue and jQuery, and 3/4 of the time rendered server-side with a template system.

In the end, I would say it depends on workflow

  • for the server, I need to basically to refresh HTML pages
    after I edit a template, edit a bit of CSS or JS
    I don’t need an IDE for that

  • for desktop/mobile, I need to edit UI components, layout etc.
    build in pure AS3, I do not need visual feedback in the IDE
    but I need to compile lot of local test with different targets
    either OS, or screen size, etc.
    for that I need an IDE (see Flash Builder stuff bellow)

for that, Flash Builder with the different type of projects:
“ActionScript Project” and “ActionScript Mobile Project”
and the different “Debug Configurations…” is good enough

but only if you organise your stuff in a specific way

WhateverProject     <-- FB workspace
    |_ common       <-- FB project
    |    |_ src
    |        |_ Application.as
    |        |_ DesktopApplication.as
    |        |_ MobileApplication.as
    |
    |_ windows      <-- FB project
    |    |_ common  <-- shared folder
    |    |_ src
    |        |_ WindowsApplication.as
    |
    |_ macos        <-- FB project
    |    |_ common  <-- shared folder
    |    |_ src
    |        |_ MacOSApplication.as
    |
    |_ ios          <-- FB project
    |    |_ common  <-- shared folder
    |    |_ src
    |        |_ IOSApplication.as
    |
    |_ android      <-- FB project
         |_ common  <-- shared folder
         |_ src
             |_ AndroidApplication.as
     

common is shared among all the projects

for example because ios is an “ActionScript Mobile Project”
create for “Apple iOS” only
I can use the “Debug Configurations…”
to create debugs for

  • AIR Simulator
    • iPad
    • iPhone 4
    • iPhone 5
    • iPhone 6
    • etc.

Anything defined in “Devices Configurations”

see http://screensiz.es/

  • iOS Simulator
    • iPad
    • iPhone
    • iPhone Retina
    • etc.

depends on the XCode / SDK versions / Simulators installed on the system

Just with that, on a mac, I can do a lot of local tests and experiments for the UI/layout/etc.
and then later I can publish a debug release to test on the devices
and/or a release build to publish an IPA to the stores etc.

It work also at the class level

Application
    |_ MobileApplication
          |_ IOSApplication

where I can configure specifically for an OS wether fonts, colors, layouts, etc.
and where I can select/activate/deactivate which components to use

My point here is that the IDE help me to publish different configurations (compared to other IDE).

But it also have to work with the folder organisations
for example, sometimes I need 2 different android applications: one for the google play store and one for the amazon app store

    |
    |_ android-amazon  <-- FB project
    |    |_ common     <-- shared folder
    |    |_ src
    |        |_ AmazonAndroidApplication.as
    |
    |_ android-google  <-- FB project
    |    |_ common     <-- shared folder
    |    |_ src
    |        |_ GoogleAndroidApplication.as
    |
    |_ android         <-- FB project
         |_ common     <-- shared folder
         |_ src
             |_ AndroidApplication.as

where

Application
    |_ MobileApplication
          |_ AndroidApplication
                  |_ GoogleAndroidApplication

because the projects will use different ANE, different UI Layout or permissions, etc.
it could be anything really

It does work for me because once you setup the “Debug Configurations…”
it’s only a click away to launch a special config for that particular OS for that particular screen size etc.

Before I also had WebApplication target for when I was publishing SWF for the web, but I don’t really do that anymore.