Imminent Death of Adobe Flash

My fellow Flash developers, this post’s title and the post is not to start a new flaming war on the subject, it’s just an opinion which you may or may not agree with.

I posted some of the following ideas in a private forum, so I thought I’d just save some typing and add some more thoughts in original forum post(s) and publish here on my blog. This post is also long overdue, so here it goes.

I think Flash is really a strong brand and awesome technology. There are certain things Adobe have done wrong in terms of strategy and vision for this technology.

Macromedia and later Adobe pushed Flash Player too hard on mobile devices. Back in 2005 when I won a t-shirt from Flash Lite competition, all the developers sent a clear message to Flash team, that on mobile, Flash apps are the future, as all the apps submitted were installable apps on Symbian OS, not mobile browser based.

Flash’s experience in mobile browser was too bad, there were no contents optimized for mobile, and Adobe tried to run existing content in mobile browser, which failed miserably. So we saw Steve Jobs’s thoughts on Flash. Which I agree to, also for lazy engineers part. The focus should’ve been on installable mobile apps from the start. For same reason Adobe had to pull the Android version. I do not see why Flash team failed to see it early.

I also noticed that Flash product team tried hard to sell the Flash Player / AIR to ODMs to embed / pre-install in devices. They did for some, like Nokia / Blackberry. Idea was a clear fail from start, as there was no way to update Flash Player / AIR until ODMs releases an OS update. Also the failed idea to get share of revenue from Flash Player based games/apps if a developer makes more than a million in a year. That was just crazy.

Pretty late, Adobe recognized and thought, oh! we should package the runtime with the app, so it will run correctly with its required version of runtime, and not depend on ODMs (we made a product SWF2Go in 2007 which did this). I can’t believe what sort of people were in Flash team who did not recognized this from the very start where I personally sent emails to Flash team, managers with same idea, am sure many other developers may have asked them the same.

Now in current situation, the only bad name Flash gets is from its Flash Player in the browser. What Flash team can do now is to split the player, one only with AS2 support, which I believe is the root cause of most security issues, and one with only AS3 runtime. This should’ve been the strategy from the start. But Adobe kept two runtimes in same player. Continuously improving on AS3 version, and deprecating the AS2 version.

We need tons of new language features in AS3, not just renamed APIs. Look at C# for example, evolution from v1 to latest. And this is really important moving forward. I do not see any new language features since AS3 was introduced with Flash Pro CS3. Here I’d like to share a post from Dave Yang’s FB feed, which summarizes exactly my point about why I and many other Flash developers held on to AS2 for too long.

DaveYang-FB-Post-Programing

For installable apps, AIR needs to drop HTML (webkit) and just keep AS3. I have not seen a single AIR app which is done with HTML, it’s a useless feature which wastes bytes with every deployment. All I see is AS3 apps and games in stores, so I always think why there’s this HTML thing in AIR, when Adobe also promotes another product PhoneGap, which does the same thing, makes mobile apps with HTML. Can anyone from Adobe tell me why AIR needs HTML support?

Also, AIR needs to support more platforms if it needs to gain some ground in future, i.e. Windows Phone / Mobile support which is top requested feature, but it seems that no one at Adobe cares anymore.

flash-cs3

Now Flash Pro, this tool was awesome until CS3. Even before that there were versions which didn’t come with new features but just re-write of the Panels system. I’ve seen so many versions of Flash Pro which just did that. The team wasted time in re-writing Panels system, instead if improving on or adding new useful features. For example, the Info Panel did not show real-time X, Y and other details when mouse was held down (fields just froze until mouse is released), until I filed a feature in CS4 (I was first time in beta), and it was implemented in CS5.5. Two versions later, because team were re-writing the Panels (lazy engineers as Jobs pointed out). Unbelievable.

There are tons of things which Flash Pro team can bring, return to the core idea which made Flash popular, Design, Timeline, Animation and Scripting them. Each of these features Flash Pro can borrow ideas from other tools. And even they can come up with a new version in one iteration which can be so new and feature rich, many designers and developers will appreciate and will upgrade for sure.

I see why Flash is dead as there’s no revenue coming from this investment for Adobe. I.e. Flash Pro CC, most are holding back on CS6 or older versions like myself. AIR is free and a developer can use AIR SDK with free FlashDevelop or other tools to make apps, so Adobe do not get anything for their investment going forward with AIR. Flash Player team also gets a bad name when we see some security issues now and then, again there’s not much revenue from Flash Player (other than the Flash Player install page which keeps trying to install some useless software along).

Update 1:

Another reason, that all my Flash developer contacts from 2004 onwards have moved on to something else around 2010-ish. Some switched technology, some even on different directions doing amazing 3D printing, embedded hardware stuff.

What Adobe needs to do is to make Flash Pro, the tool so feature rich, so awesome that developer buys a copy, like the old days of Flash 5. Make the app store prominent and attractive to developers, to buy and sell pre-built assets ready to use in projects or to extend the editor.

unity3d

Unity is a perfect example Flash team can follow. Look how they’ve not wasted time in re-writing panels, but they made Unity Editor so open that there’s a whole ecosystem for extensions. And brilliant idea of selling pre-built assets. They are making tons of money from this idea. They were able to give away free version of Unity, along with a perpetual or subscription version and cloud build. I see great strategy to make revenue from tool, and the assets store for developers. I am using free version, but I have bought extensions, from which they got something. Maybe in future I might go for Pro version as well.

There’s still time, and if Adobe can make and follow good strategy, which I currently don’t see (hence the post’s title), they can come back in game again.

BTW, about me, I am developing with Flash since 1998 (ver 3/4). Done great stuff with Flash, contributed to Flash Player (no credits) and Flash Pro (top beta tester, CS4 to first CC), and developer of SWF2Go.com, Flash Lite to Symbian app maker.

Would love to hear what you think about Flash and its future.

// chall3ng3r //

I’m Back, Again!

It’s exactly one year and 9 days since I last posted on this blog. I had some issues with my MySQL DB for this blog which was wrongly set to some other encoding, than UTF8.

After exporting my blog data, then re-installing latest WordPress, then importing data back in, fixing, tweaking settings. Now this is the first post after the overhaul.

I have some cool topics to discuss on this blog in coming weeks. I’ll give you some hints for whats coming:

  • Flash on Mobile and its future
  • Unity3D, why I’m going for it
  • State of Windows Phone as a platform for developers
  • And some more random thoughts around these, stay tuned!

// chall3ng3r //

Slides and Code From Mobile Game Development with Adobe Flash Workshop

Recently I did couple of workshop for Mobile Game Development with Adobe Flash at Jinnah University for Women. In first one we covered basics and getting used to the Flash Pro IDE, and basics of ActionScript 3, Timeline, MovieClips and other concepts in Flash.

Mobile Game Development using Adobe Flash- chall3ng3r - final

In 2nd follow-up workshop, we did some intermediate experiments, and completed a game, Popcornia, with real graphics, Timeline and AS3.

Download Source: mobile-game-development-with-flash-chall3ng3r.zip

The download contains full source of the game Popcornia, I did some more tweaks when I got home from workshop, so I recommend participants to download this updated version.

Ported to BlackBerry 10 OS

I ported this game for BlackBerry 10 based Z10 with very small modifications. Download full source code and batch files which use BB10 SDK command-line tools to package and signing.

// chall3ng3r //

Windows 8 Tip: Making All Apps Tile and Shortcut Real Easy

I recently upgraded my main work machine, Dell Studio 1558, to Windows 8 Pro. Only had one issue, where my ATI display driver was making Windows 8 Pro to crash after few minutes into the start screen. Other than this no issues. Smooth sailing so far :)

chall3ng3r-start-screen

There’s one thing that I realized after few hours of using Windows 8 start screen, the All Apps option is hidden under a right-click contextual menu. And I was accessing it a lot of times during the day.

I thought there might be a tile that I can place on the start screen, and can just place it on there and All Apps will be just a click away as compared to right-click then click All Apps button in lower-right corner. I’m a lefty, and the start menu we all are so used-to made me look for more apps button in the lower-left corner all the time :D

After some research, I found that there’s no built-in All Apps tile in Windows 8. So I made one myself. I don’t exactly remember where I found the snippet, but all credit goes to whoever found it. I just searched for it :D

All you have to do is make a New Shortcut on Desktop, and set its Target field to:

%windir%explorer.exe shell:::{2559a1f8-21d7-11d4-bdaf-00c04f60b9f0}

And Start in field to: %windir%. You can change the icon as per your liking of course. Click Ok to create the shortcut on your Desktop.

Now, right-click on this newly created shortcut, and select Pin to Start. Now you have a nice tile that you can just click to access all of your installed applications. Should be great for touch screens as well.

Please note that this is not a perfect hack, there’s a small visual hick-up, as if you click on tile, it will take you to the Desktop for a second, then back to All Apps list in modern UI. But it works :D

You can also download this shortcut file I created for myself, so you don’t have to go through all the hacking stuff ;)

Download: AllApps_Tile_Windows8.zip

// chall3ng3r //

QR Coder for Mobile Devices

Being a mobile app developer, I have to keep few devices around me all day for debugging and testing my apps. Nowadays, all smartphones come with Bluetooth, WiFi and now NFC technologies, but they all fail to talk to each other for even simple text data exchange.

I find myself in situations where I need to quickly get piece of text from one device to another. It could be a link, some text copied from browser, or SMS message I received on one device, and need to get on other device without messing around with apps or wires.

QRCoder-demo

Yesterday this idea came to my mind when I was reading a lengthy article on my HTC Titan and received system notification that I need to recharge or else phone will power off. I wanted to quickly open the same article on my Nokia E7 which I was also carrying with me.

As I described earlier, that we currently don’t have any standard way to get these devices talk to each other directly without going through the “cloud”, so I was stuck there.

I quickly jumped back to my seat, and started some experiments. After an hour I did my first test and and it was a success!

I wrote a tiny JavaScript which can be added into mobile browser’s favorites, and when you need to share current page’s link with another device, you can just go to that saved Favorite, which will execute my JavaScript, which will finally render a QR Code right on top of the page.

Now you just need to point your other smartphone or tablet camera to it with a QR Code reader app of course (built-in in WP and other OS’s), and voila! The link will now open up.

It works in PC browsers as well, so if you need to quickly open a link on your tablet or smartphone from PC, you can save this in bookmarks toolbar in IE/Chrome/FF/Safari, and click it to instantly make a QR code for current link.

I tested it on all major PC browsers, and on my Nokia E7 and HTC Titan. Works great! It should run on all mobile browsers which support editing of bookmark URL, so you can insert the code there.

BTW, I used old Google Charts APIs to make the QR codes.

And finally here’s the code which you can copy and save as favorite in your mobile browser.

Remember, there are no line breaks in this code. It’s just one long line of JavaScript code :)

Step by step guide:

  • Select and copy the above JavaScript code. On PC, do triple-click on code to select all code
  • Open web browser on mobile or PC
  • Add / save this page as bookmark or favorite
  • Now select and edit the saved bookmark
  • In name field, type “! QRCoder”. The character in start makes sure the bookmark is always on top of the list in your bookmarks list. Easy to tap :)
  • In Location / Address field, just paste the JavaScript code you copied in first step.
  • Ok / Done to save. Now go to any website and from bookmarks / favorites, tap on “! QRCoder”

To quickly land on this page, scan this QR code from your smartphone or tablet:

qrcoder-chall3ng3r

Tested on following devices / OS:

  • PC / Mac / Linux – Check
  • iPhone, iPad – Check
  • Windows Phone 7.5 – Check
  • Symbian Anna / Belle – Check
  • Z10 / BB10 – Check
  • ToDo: Android

I know when this gets published, many non-techy users are going ask how to save this code in mobile browser as favorite. So, here’s a little video demonstration on a Windows Phone:


[YouTube link for mobile viewing]

Kindly ignore audio/video quality and any narration mistakes, this is my first ever video, done really quick :D

It’s a quick and dirty hack to solve a problem. You can also hack it further as per your liking.

I would love to hear any feedback or a tweet :)

// chall3ng3r //

Slides & Code from Nokia Developers Workshop in Islamabad-PK

I am really happy to be part of Nokia Developers Workshop which was jointly organized by Nokia Pakistan and Telenor, in Telenor’s premises in Islamabad.

It was a two day workshop (28-29 Feb 2012) where I talked about Qt Quick runtime and QML for designing and developing great looking apps and games, with focus on game development for Symbian and Meego based Nokia devices, such as Nokia N8, E7, X7 and the recently announced Nokia PureView 808.

The 2nd day of the workshop was even more fun as we explored the Box2D engine APIs using QML. One interesting thing I’d like to share was that I did not practiced making Ping Pong using Box2D before the workshop. But I was confident enough as I’ve been playing with Box2D and QML for some time, to do it live ;)

pingpong-qml-desktop

pingpong-qml-develop

Below is the slide deck of my talk. You are free to download and modify it and use it for your own presentations. I will appreciate if you include my name in credits as original author.

Download PowerPoint file

And here’s the project for Ping Pong game we developed at workshop. PingPong-QML.zip

As we figured out on the first day of the workshop that Box2D was not getting compiled with default MSVC2008/2010 compiler Qt SDK uses. Box2D compiles correctly with MinGW 4.4 compiler for Desktop and Simulator targets, which is an optional component in Qt SDK.

For Box2D development using QML, install Qt SDK in custom mode and check all components to be installed. When you open the Ping Pong project, remember to check if you have selected MinGW 4.4 as the compiler as shown in screenshot below.

pingpong-qml-compiler

There were few things that I needed to skip due to time constraints. One of them was making icons for your applications. If you are targeting Meego OS then you can safely use a PNG file as an icon. But if you are targeting Symbian OS you need to make your icon in SVG-Tiny format. It’s a vector format, and you need to draw again in Inkscape or Illustrator if you have done it in Photoshop.

The easy workaround for you is that we have developed an online icon making tool specific to cover this issue for beginners. Use our popular SVG Icon Maker tool to make SVG-Tiny icons from any image.

The second thing I skipped to discuss was, the Ping Pong game is hardware accelerated. Yes, it uses OpenGL to draw the graphics. So you can use heavy graphics in your game and it will never lag. To find out how I have enabled this take a look in main.cpp file of the project ;)

And finally here are some photographs taken on the last day of the workshop.

DSC_0020

DSC_0018

 

DSC_0063

It was a great experience for me and I hope all the participants enjoyed developing with QML and publish a game or an app soon on Nokia Store.

Another great news for all the participants of the workshop is Nokia have announced a global competition for developers who will develop an app or game using Qt Quick components can win a free Nokia PureView 808 device which features a 41 megapixels camera!!! More details here.

It’s a great opportunity and perfect timing for you to develop and publish a new Qt Quick app in Nokia Store and win a great new Nokia PureView 808.

Nokia Pakistan is planning to do more workshops in coming months, so join Nokia Pakistan Developers group on LinkedIn for updates and share your feedback.

// chall3ng3r //

Nokia Developers Workshop in Islamabad – Day 1

Is was great energetic first day at the Nokia Developers Workshop in Islamabad, PK. I covered the basic concepts of QML GUI development with focus on dealing with games.

We also took a brief dive into the State Machine, Transition & Animations for GUI elements. We did a small prototype game-kindda thing which is not complete, but attendees asked me that I put the code for download.

BTW, we ended up with a funny name for this game, Ghobara Ghobara (in english Balloon Balloon) :D

So, here’s the Qt Creator project down for Ghobara Ghobara.

See you guys tomorrow at Telenor’s Office for getting our hands dirty with some Box2D ;)

// chall3ng3r //

Reinstalling Client for Microsoft Networks in Windows 7

I recently got into a problem where I by mistake uninstalled “Client for Microsoft Networks” option for my Dell notebook’s WLAN adapter.

The main issue which I was having was that the network icon in system tray was always showing as disconnected, even if I connect to WiFi or plug a LAN cable. It always shows disconnected, which was annoying.

So, if you happen to get similar issue in Windows 7, just open Device Manager from Control Panel, and select the WiFi network adapter and Uninstall it. Do not check “Delete the driver software for this device” Option.

ms-network-2

After this, from Actions menu in Device Manager, click “Scan for hardware changes”, which will reinstall the driver back from the drivers’ cache, and will also fix the network icon issue.

Now back to the original issue at hand. To reinstall the Client for Microsoft Networks, you first need to open the Properties window for the network adapter.

Click Install, and select Service, then there will be only option for “Flash and Printer Sharing Service for Microsoft Networks”,  select it to install.

Now go back to same window and this time click Install and select Client from the list. You will get option for “Client for Microsoft Networks”,  select it and install. That’s it!

ms-network-1

Now if you are connected to network, disconnect, and connect again so you can start accessing the file sharing service on your LAN.

I hope this will help someone in need :)

// chall3ng3r //

Highway Racer is #1 on Ovi Store

I would like to share our success so far on Nokia’s Ovi Store with our Flash Lite based game Highway Racer. You can read my previous post for our initial experience of publishing.

We are really happy with our experience so far. Highway Racer reached #1 spot in Sports category, and #3 spot in overall Games category on Ovi Store in just four days after published on Ovi Store for Pakistan region.

Now it’s 29th day on Ovi Store, it’s been jumping up ‘n down in top 30 games. Highway Racer have been downloaded 175000+ times and counting, on it’s way to million downloads. It’s current rating is 4 stars with 149 reviews.

Highway Racer is also reviewed by two popular mobile technology blogs, SenseApplied and TechProlonged.

This is quite a big achievement for our team at Orison Technologies.

Highway Racer - Promo 3

As of yesterday, Highway Racer is one of the featured applications on Ovi Store, and also it’s on #1 spot for Games and Sports sections. Thanks to Nokia team for the help on this :)

We have decided to keep Highway Racer free for more time as we work on an updated version. So, if you haven’t downloaded Highway Racer yet, just visit Ovi Store now!

// chall3ng3r //