This is a roadmap proposal for OpenScales
Summary
Our goal is to implement some of OpenLayers functionalities, on an OpenSource and modular ActionScript3 map client, with great vector performances. Middle/Long term vision is to have a single solution for Web/mobile/3D/Rich clients.
Changelog
OpenScales 1.0 : first official release, beta quality (09/21/2009)
- Initially based on the FlexLayers codebase
- Tons of fixes and improvements (150 issues closed !)
- WMS, WMSC, WFS, OpenStretMap layers support
- More documentation
- Code design improvements
- Performance improvements
- Flex wrapper allow to create OpenScales powered Flex application easily
- Flex components in addition to pure ActionScrip3 ones
More details on the announcement on our discussion group.
List of related issues : http://openscales.org/index.php/p/openscales/issues/label/32/closed/
OpenScales 1.1 : production ready (12/10/2009)
- OpenScales can be configured with an XML configuration file, useful to get dynamics map when passed as parameter to the compiled SWF
- Drawing features
- IGN GeoRM support
- More unit tests
- KML support (Placemark only)
- Vector rendering 10x more efficient compared to OpenScales 1.0
- Memory leak fixes
- Simple picture layer
- Powerful Style API
- Better popup support
- API cleanup
- Single tile WMS fixes
- Tons of bugfixes, refactoring and API cleanup
List of related issues : http://openscales.org/index.php/p/openscales/issues/label/34/closed/
OpenScales 1.2 : refactoring only, no new functionalities
- Feature drawing refactoring
- Replace current geometries (inherited from OpenLayers) by an independent AS3 GeoAPI module.
- Dependency injection with Spring ActionScript
- Map rotation
- Vector instead Array
- More and more testing
OpenScales 1.3
- Support more format
- WFS 1.1 and GML3
- WMS 1.3
- Better KML support
OpenScales 1.4 : not started
- WFS-T support
- Support AMF3 vector protocol
- 3D support
Software design
Software design will be driven with KISS (Keep It Simple And Stupid), DRY (Don't Repeat Yourself) principles, with performances in mind.
OpenLayer API
We have start from openlayers API but will change some things described in ChangesCompareToOpenLayers
Pure AS3 or Flex
openscales-core only depends on pure ActionScript3 without Flex dependencies for performances and SWF size reasons.
openscales-fx bring Flex supports (wrapper, controls ...)
Modular design
Adding new functionalities will not cause performance and project size problems if we have a good modular design. We should design OpenScales to be architectured and a small core that will load functionalities in remote SWF (pure AS3 or Flex modules).
Build system
It is important to have an open source build system in order to avoid the need for non free program like Flex Builder, even if it is very powerful to develop with such tool. It must remain a choice.
It is also important to be able to build with a continuous build system the project.
Since Flex sdk has been open sourced by Adobe, and that there is some powerful solutions to build the project like Maven plugin Flex mojo. It is possible de build pure AS3 projects with it.
Ant is another option, but if we use an highly modular architecture, Maven and its multi module functionalities may be very useful.
It allows us to build asdoc automatically.
Dependency Injection
We currently do not use dependency injection framework, but I think we will use it in a far future.
Spring ActionScript is a good candidate.
Events
In order to have loose coupling between components, we use an event communication system based on using the Map as an event bus and strongly typed events.
Flex support
OpenScales support efficient development based on Flex components.