layout | hero | title | show_title |
---|---|---|---|
page |
true |
Home |
false |
{% include JB/setup %}
Flower Platform is an open source (GPL v3) software platform designed to help developers to represent data as smart mind maps and diagrams. We say that mind maps and diagrams are smart when:
Flower Platform has several components:
- Flower Platform Core
- Flower Platform Web App: a server application (with a web front-end); it hosts extensions (plugins)
- Flower Platform Mobile: a mobile client for the Flower Platform Server
- Flower Platform for IDE: hosts extensions (plugins) inside popular IDEs
- Flower Platform Extensions: plugins that do the actual work
- Flower Platform Hub: an online free service: cloud hosted Flower Platform Server and extensions
Because of best practices:
The state of the art in our field of work (i.e. the number and quality of programming languages, libraries, frameworks, IDEs, development tools, etc.) is awesome. But we (the Flower Platform dev team) think that things can be "MOAR" awesome, if we had an intelligent tool that would:
- automatize our work with libs, frameworks, etc. (i.e. the runtime area), and
- interconnect some dev tools that we are using (i.e. the work flow area).
# Flower Platform Core
**Flower Platform Core** is a modular platform that makes it easy for extensions to connect to external data sources, to represent data visually and to synchronize the data. It contains:
Sharing and collaboration around mind maps and diagrams are a primary focus.
The server side code is written in Java and it's modular, packed as OSGi plugins (inside an Eclipse Equinox container).
The client side code (using Apache Flex and JavaScript) is also modular.
A mobile client for Android and iOS.
The platform makes it easy for extensions to expose most of their features on mobile, using single sourcing (i.e. same client code runs in the web and mobile environment).
The client side code (using Apache Flex and JavaScript) runs on mobile using the Adobe AIR technology.
Designed to integrate into IDEs, using an embedded servlet container (Jetty), and an embedded browser.
Eclipse is supported natively (being an OSGi container).
IntelliJ IDEA and other IDEA based IDEs are supported as well, using a small Equinox based host wrapper. The same principle can be used to easily support other IDEs in the future.
The single sourcing concept applies here as well (i.e. same server and client code runs both in a web deployment or in a IDE/local deployment).
An **extension** is a set of OSGi plugins that do the actual work. I.e. they know how to connect to external data sources, they know how to represent it visually, and they know how to synchronize it. Of course, extensions leverage the convenient API exposed by Flower Platform Core (e.g. diagramming library, data synchronization algorithms, etc.). This way, with **single sourcing**, the same plugin code runs in the web app, the IDE and mobile/tablet.
Display generic data as mind map nodes
Collaborate in real time on Freeplane (or FreeMind) mind maps: on the web & mobile
**Flower Platform Hub** is an online free service: the Flower Platform ecosystem, in a cloud based environment. Users have the access to all the features of the Flower Platform & extensions, without having to install and maintain a Flower Platform server. Flower Platform Hub is meant to be used by open source communities.
- May 22, 2010: Crispico releases UML4AS, UML for ActionScript & Flex. An Eclipse plugin focused on UML modeling. It features a technology that we call CodeSync, a code <-> model synchronization technology that militates for a modeling language that supports language specificities. The frontend of UML4AS is web based, so the Eclipse editor embeds actually a web browser showing the UI.
- January 13, 2011: UML4AS 1.2 is released.
- August 29, 2011: UML4AS has reached 10k downloads.
- December 15, 2011: UML4AS + Java is released. Same product with code synchronization support for Java.
- October 23, 2012: Crispico releases Flower Dev Center. A server product with web UI that features diagramming and code synchronization.
- March 11, 2013: Crispico starts working at Flower Platform v3. A rewrite of the existing products, having as goals: mobile support, multiple programming languages & dev tools support. And ultimate performance. Flower Platform becomes open-source.
December 2, 2013: Crispico decides once again to perform a major rewrite, because of 2 main resons:
- Scalability. For Flower Platform <= v3, we were managing and persisting data with Eclipse EMF. EMF is a great technology, that offers a lot of features. But, from our experience, when we need to scale, and persist data in a data store (SQL or NoSQL), things begin to be complex. And the amount of complexity > the comfort offered by the EMF framework. That's why, we decided to abandon EMF, in favour of an in-house implementation, more light-weight and scalable.
- Slight strategy shift. We decided to focus more on representing data as mind maps rather than diagrams. We find that mind maps are somehow between a text editor (rather key oriented) and a diagram (rather mouse oriented) and they offer better productivity for developers.