Designed and implemented complex, real-time, universal map display applications in Adobe Flash for the web and CocoaTouch for the Apple iPad that yielded a significant increase in revenue and helped achieve financial independence for the company (according to the President/CEO, Maurice Bailey).
Once I re-invented myself as a web developer in 2000 by joining OnlineFocus, I became very attracted to Flash. There was nothing else like it for graphical web delivery other than maybe Java applets at the time. Onlinefocus paid for my University of California courses to get up to speed on it. Being a software engineer, I immediately gravitated towards programming in ActionScript rather than using the Flash GUI timeline. When Flash MX came out in 2004 with object-oriented ActionScript 2, I thought it was the greatest thing since sliced bread and wrote my own 3-D rendering engine for The Burke Institute K-Web project. When contracting for Yahoo! Research Labs, I combined my knowledge of force-directed, gradient-decent graph layouts (based on the Kamada-Kawai algorithm) with Flash AS2 to build a graphical music artist search engine. In 2006, I was hired by FlyteComm to do Flash development full-time. While at FlyteComm, I regularly upgraded to the latest versions of Flash and AS3 to do some really amazing stuff including the design of my own dependency-injection framework which is described in detail below.
When the iPad made its debut in 2010 and Steve Jobs denounced Flash in his famous "Thoughts on Flash" memo in 2011, I saw that Flash was coming to an end and I re-invented myself as an iOS developer, (while still working at FlyteComm), never to go back to Flash again.
Experiences using this skill are shown below:
When Flash CS3 with AS3 was released in 2007, I convinced the company it was in their best interest to rewrite the entire Viewer in AS3 and I became the one and only AS3 Flash developer in the company. The other members when back to their previous duties or left the company.
Designed and created all of the Universal Flash Viewer plug-ins including all the graphics art work. They were all implemented in pure ActionScript 3 without the use of the main timeline. All ActionScript code was contained in separate source files. All plug-ins followed a standard design pattern:
Refactored the previous weather plug-in I implemented to do on-demand loading of weather only when requested. The previous approach preloaded the weather in the background to speed delivery but that approach negatively affected overall Viewer performance. The weather animation in the new approach would start up soon as 2 layers were loaded and would automatically add more layers to the animation sequence as each layer became available. This provided on-demand loading with a fast initial presentation.
This was an interesting exercise in repurposing the Universal Flash Viewer for holiday fun. It required very little code rewriting other than writing a mock web services plug-in that played back canned data (Santa's sleigh ride path). The only other thing I had to do was create a new skin for the holidays and add some easter eggs (such as falling snow and country flags). I did the steam-punk styled graphics arts myself with some pretty cool 3-D effects. I also created the reindeer animations and just substituted one icon plug-in for another to make it appear.
The redesigned map plug-in solved a long-standing problem with the old map plug-in that was actually a port of some old code written by someone else. The new plug-in required a lot less memory, was a lot less buggy and it could show dozens of different base maps from multiple map tile servers. All of this could be configured without touching any code (unlike route-me and OpenLayers). The map type selected in this screenshot was the USGS topo map. The pushpin labels were draggable and individually displayable.
Updated Flash Viewer to support the WMS (Web Mapping Services) supported by NOAA’s weather servers complete with tile image stretching to approximate image warping from the Geographic to World Pseudo Mercator (used within the Flash Viewer). Had the Viewer talking to 24 NOAA weather servers supporting more than 200 weather overlays (including storm tracks, fires, floods, radar, and so on) with full visibility control working in just over a week (on a rush schedule) to show to the FAA. Also added GeoJSON support for NOAA aviation weather.