Apache Flex & Adobe Flash Player – Alternatives

Adobe and almost all browsers ( Google Chrome, Firefox, Safari.. ) have announced the END OF LIFE of Adobe Flash Player at the end of 2020.

To some of us, especially those who browsed the internet and appreciated it in its early days, this really might be a sad moment. Adobe Flash & RIA (Rich Internet Applications) enhanced the web experience by making it more fun with animations, video, audio, and games, essentially making it a lot more interactive and enjoyable

Today we’ll be discussing – in detail – Apache Flex – which is one of the main pieces of technology that made Adobe Flash a reality

What Exactly Is Apache Flex?

apache flex logo

Before moving ahead and trying to know anything else, it’s important that we first understand what exactly is apache flex.

Apache Flex ( Formerly known as Adobe Flex ) is a set of tools and libraries that helped in making Adobe Flash Apps and games. The Flex framework had 2 main components, MXML and ActionScript

XML

mxml file logo

MXML is an XML-based markup language used for describing the UI of an application. If you know anything about the Web Development world of today, MXML can be understood as a sort of like a combination of HTML + CSS

To give you an understanding of how similar MXML and current-day HTML+CSS are, here’s a code snippet describing a Welcome Message

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
                layout="absolute" backgroundGradientColors="[#000011, #333333]">
   <mx:Label text="Welcome to my Flash Application!" verticalCenter="0" horizontalCenter="0" fontSize="48" letterSpacing="1">
     </mx:Label>
</mx:Application>

As you can see how we define the Website Content ( “Welcome to my Flash Application!”) and the Website Styles ( font size, background colors, etc ) are both in the same file! 

To those who’ve worked with CSS before the way of styling things in MXML might not be too different after all, as we can see a lot of current-day CSS properties such as font size, layout=absolute in the MXML code above

ActionScript

adobe actionscript 3.0 logo

This is the part of the Flex Application that’s supposed to handle Logic and Interaction. It has a lot of resemblance to current-day JavaScript and TypeScript as they too handle the Logic and Interaction of HTML pages in modern websites

Let’s have a look at some ActionScript Code and see how it compares with modern JavaScript

var name: String = "Derek";
var male: Boolean = true;
var age: Number = 23;
var hobbies: Array = ["football", "basketball"];

If you’ve worked with JavaScript before you can easily identify the similarities between JavaScript and ActionScript in things such as Arrays, Numbers, Strings, etc.

Creating Flex Apps in IDEs & Flash Builders

During the release of Version 3 of the Apache Flex platform, the popularity of it was so high that developers wanted to make it accessible & easier for more and more developers to be able to build Flex Applications

To do this they added support for popular IDEs such as IntelliJ IDEA, Eclipse, and a lot more

Not just this, Adobe went as far as to create their IDE or Adobe Flash Builder purely for this purpose!

Adobe Flash Builder

adobe flash builder project screen

The release of these kinds of tools such as the Adobe Flash Builder made the developer community only more excited to keep building Flex Applications 

Let’s quickly discuss the features of the Adobe Flash Builder ( formerly Adobe Flex Builder )

  • MXML & Action Script – Syntax Highlighting

Since these were the main tools used in building Flex Applications, the Flex Builder offered Syntax Highlighting for these languages

  • Design Mode

This feature was relatively new in IDEs of that era, Design Mode was a Powerful tool that showed us the Preview of our Flex Application without having to build it. And also allowed to Drag & Drop new UI elements directly without writing much code!

  • Refactoring Features

This too was something new and provided developers with the ability to quickly Refactor ( Rename variables, create a function out of selected lines of code, split the code into multiple files ) the code without having to do the editing themselves

  • Click based Integration

Flex Applications usually need something called Data Services to be able to properly and efficiently send/receive communications to and from the server, and integrating those into your Flex Application usually is a tedious task.

But Adobe Flash Player simplified the process by allowing you to simply choose the required Data Service and boom! You’re done integrating it into your app within a click!

connecting a flex app to data service

Why did Adobe Flash & Apache Flex Decline?

adobe flash player decline

After looking at all of the good things about these frameworks, tools, and languages it would be hard to believe that they would phase out one day.

But as with all the good things, even Adobe Flash & Flex had to be replaced by something else, something better.

Let’s now have a look at the reasons for its downfall

1) iOS Decided to Stop Flash Support On Newer Devices

adobe flash player on ios devices

Apple has always been among the companies to make the first move regarding technology, and more often than not that move greatly impacted the tech world. These things include – the removal of Headphone Jack on the latest iPhones, Selling The Charger Separately, and a lot more.

And This was the same with Flash. Steve Jobs wasn’t particularly a huge fan of having Adobe Flash on Mobile Devices as he believed it would make the browsing experience slow & sloppy and hence, stopped supporting it. This led to people re-considering possible alternatives to Flash.

Eventually, Apple also stopped supporting Flash from their default browser ( Safari ) on MacOS in 2015 – 5 years before its End Of Life ( EOL )

2) Flash Websites are NOT “Search Engine Friendly”

adobe flash player on google search engine

Search engines such as Google and Bing were only efficiently able to “crawl” through normal plain-text pages and displayed only those results at the top. Flash Files were relatively hard and time-consuming for these search engines to “Crawl” and detect, hence, this hurt the ranking of flash websites in search engines.

This realization further moved people away from Flash

3) Adobe Flash is not Open Source

open source logo

The W3C or the World Wide Web Consortium is considered to be responsible for setting the standards for the web. However, Adobe Flash was not open source and the alternative technologies at that time ( HTML, CSS, and JavaScript ) were. Keeping in mind the interest of W3C, it wanted the standard technologies to adhere to the rules set by the organization. And they simply did not see how Adobe Flash would fit into this model

4) Flash Websites are Hard to Update

Compared to plain HTML websites where you just have to edit a few lines of text to update the site, updating Flash Websites is relatively hard as it requires you to entirely replace the flash files over and over again for every single change.

This was not considered to be sustainable by many developers and hence they moved on from Adobe Flash

5) HTML5 is faster and better  

html 5 banner

One of the primary reasons for the decline of Adobe Flash was that it was easily replaceable with HTML5 as it was open source, supported the majority of Flash’s features, was much more lightweight and fast, and didn’t require any additional “Plugin” installation like flash player did. It was also built-in for the majority of browsers and eventually became the standard

6) Flash had Security Issues

adobe flash player security issues

Compared to a normal webpage a Flash App had much more control over the components of your computer as it had much more Rich Functionality and was almost run as a Standard Computer Application, this provided scope for hackers to exploit vulnerabilities in the system and execute malicious code on the computer! Eventually, the vulnerabilities got so bad that major browsers had to disable flash by default and now even Adobe recommends uninstalling Flash Player and using the more modern development standards such as HTML/CSS/JS

Apache Flex Alternatives

For building flash applications, there were quite a few Open Sourced alternatives to the Flex Framework, some of them are

  • Google FLIT A lightweight version of the Flex Framework made by Google, this was the most known alternative for flex at the time
  • OpenLaszlo is An independent project, built on top of Apache Flex adding additional features to it, however, support for this ended long ago and it was not particularly popular even in the Flash Era

However, now that Flash apps are obsolete, To build interactive applications just like Flash, the modern web alternatives are HTML5 and Javascript

Interestingly, the introduction of these alternatives (HTML5 & JavaScript) made people realize the flaws of Flash and therefore led to its downfall

Current Status of Apache Flex

apache royale official website

With the decline of Adobe Flash Player, the majority of the technologies supporting it also declined in popularity as they got replaced with newer and better tools, including Apache Flex

Looking at the decline of Adobe Flash, Apache decided to release a new framework called FlexJS that would allow you to compile your Flex applications into plain HTML/CSS and JavaScript

This project was later renamed Apache Royale and now it is a platform for developers to write code in ActionScript & MXML, the same technologies that Apache Flex used, and export these apps to a wide variety of platforms including JavaScript Websites, Android apps, and a lot more

ApacheRoyale is usually very active on their Twitter handle @ApacheRoyale and you can learn more about them, and even try to connect to them over there!

Should you use Apache Flex? – Personal Opinion

Even though there are projects such as Apache Royale that allow us to write code in ActionScript3 and MXML the real question would be “is it even worth doing all of this?” Especially when the entire world has moved on to better technologies.

 In my personal opinion, these types of projects should only ever be used if you want to just have fun or Migrate an old Flex Application and give a new life to it. But Starting an entirely new commercial project in Apache Flex in this age and time, might not be that good of an idea.