the blog for developers

Why Flash on iPhone Does Not Make Sense

When I first encountered Flash in the form of Shockwave, I was amazed. Such interactive websites compared to the simple websites back then, some still with Netscapes gray background. At that time I was managing development at a web agency and life looked wonderful. We put flash intro pages on every website we’ve build, wooing and amazing potential customers and winning contracts.

The problems came later, as flash was harder to maintain then our regular – back then Python – website code and we always needed a specialist to fix bugs and enhance our Flash applications, essentially making our Flash guru a bottleneck. Today this problem persists, web agencies sill pitch Flash heavy websites while inhouse development sigh when hearing flash. Handling of critical problems in flash is seldom part of bug fixing processes in companies.

Then came the age of mobile applications and websites. Very few applications, hard to install, very small browsers unusable for surfing. Apple revolutionized both mobile surfing and applications with the iPhone. The browser was intelligent and large enough for browsing and the app store made it easy to install new applications. People who for years never installed an application on their Nokia phone were now talking about the newest and coolest applications on their iPhone. But Apple doesn’t want Flash on their iPhone. The internet exploded and flame wars were started.

But why doesn’t Flash make sense on the iPhone? Flash has much more in common with iPhone apps than web sites. The mantra of Flash always was writing interactive applications instead of websites. This is the reason why Flash doesn’t make sense on the mobile web, not because it uses lots of battery. With different mobile phones and different resolutions, you would need to write different Flash applications to be really usable on different resolution phones. Each device has its own UI and different resolutions not only force your app to resize, but to redesign the UI with major rewrites of your app. HTML does resize much better – even apps – and applications don’t even resize properly on desktop operating systems. So Flash is very hard to reuse for desktop and mobile, you need to write several versions – except in generic cases like video streaming which scale by themselves. And if you need to write a special iPhone edition of your Flash app, you can just write an iPhone app (server code remains the same) and take advantage of the better capabilities.

Writing several versions is what web agencies would love to do, but inhouse development dreads (and prefer HTML). These are more or less the fronts in the recent flamewars about Flash on iPhones.

With the main reason for Flash serving video streams becoming a thing of the past with HTML5 and the rise of mobile appliances, the days of Flash are numbered. What do you think?

Update: Exhibit 1, Chrome browser scaled down
Chrome Small Why Flash on iPhone Does Not Make Sense

You can leave a Reply here. Of course, you should follow me on twitter here.

You can share this post!
Do you want to tell others about this article? Use the social bookmark icons to submit this artice to the service of your choice. Thanks.

About the author: Stephan Schmidt is head of development at brands4friends. He has more than 15 years of internet technology experience and 10 years experience in agile. He was head of development, consultant and CTO and is a speaker, author and blog writer. He specializes in organizing and optimizing software development helping companies by increasing productivity with lean software development and agile methodologies. Want to know more? All views are only his own.

1 Comment 8 Tweets 8 Comments

Leave a reply.

Comments

I dont quite agree. IMHO you need to do a special mobile version of your site anyhow. The screen size and therefore the usability are different. You need to provide a special mobile version of your site in any case. Wheter it’s html, flash or whatever. So in consequence this is no viable argument to me. Furthermore using Flash brings portability compared to a native iPhone app. Technically speaking I’m no flash fan but I think that the visual output flash produces is mostly visually more compelling than plain html stuff.

Stefan Schubert

A week ago I woke my Mac from standby and he told me he had full battery but only an hour left to live. That did not change to better for minutes so I switched on the activity monitor. What do I see? Safari Flash Plugin eating 100% CPU. Killing the process I was back to 5 hours again.

I at least, can see, why Steve Jobs is saying Flash would be a killer for Safari on the iPhone.

I do understand your rational point of view, but to mee it’s much more simple.

@André: Might be, but I’ve used many websites with my iPhone without there being/using a special version (Amazon comes to mind).

With Flash you will probably need a version per device (Nokia, Android, Blackberry Bold + Storm, iPhone). Or Flash supports better layout mechanisms, zoom and scrolling.

“[...] mostly visually more compelling than plain html stuff.”

Yes might be, perhaps I’m in a different camp using mobile for useful stuff not to watch visually compelling sites – then again, I’m no designer.

@Stefan: Yes, Flash ads written by poor “developers” put on every website like Spiegel.de drain a lot of battery and create 100% cpu load on even decent machines.

@stephan
1) dedicated mobile sites:
I was mostly disappointed when using mobile browser on any mobile device, even on netbooks. I always wished I had a large screen, mouse etc. The only sites that convinced me were simplistic ones like twitter. I therefore think that the UI of mobile sites should be as simplistic as possible (scrolling around zooming in/out are very annoying) whereas sites to be used with desktops may have other another focus.
I’m therefore no regular mobile surfer. You probably have more experience in this area though, that’s my personal opinion.
Either way, I still think that you should provide a special mobile version to bring better usability. I did no web stuff for some years now (I’m an eclipse guy). I might be wrong here.

2) insufficient layout capabilites
Interesting point about the unsufficient layout capabilites. I’m no flash expert – as stated above – but repeating this brought me quite an insight, thanks. I guess you point to wrapping capabilities etc? If I understand yo right, better layout capabilities would allow to reuse the same desing on different mobile devices (which seems not possible currently).

3) compelling UI
I think there’s no contradiction between useful and compelling. Ideal UIs combine both. IMHO a perfect site for the masses (not for the two of us, we have a technical background and get positive impressions by great technologies already) should combine great usability and visuals. In my eyes this is one of the reasons why as ex. Macs and the MacOS (I’m a linux user though) are pretty successful lately. I think that a compelling UI is always a plus and should be a goal to track.

@André: I really had no problem browsing the web with iPhone/Safari due to clever zoom (double-tap), clever text handling etc.

fd

I certainly hope the days of Flash are numbered, especially on mobile devices. Flash is a technology that brings desktop UI metaphors into web applications, which was a bad idea to begin with, but is even a worse idea on touch-based devices. There’s no equivalent of ‘mouseOver’ or ‘rightClick’ in touch-based devices. There’s not even a ‘mouse pointer’ on e.g. the iPhone. Trying to cram decade-old desktop UI metaphors into a touch device is pointless.

foosh

The real reason flash will never be available on the iPhone is that flash sites compete with iPhone apps. Apple makes 30c per dollar spent in the app-store. Removing competition ensures that continues.

How many of the games available on the iPhone are either copies of flash games, or easily made as flash games? When there is a free internet version vs a 0.99c app-store version, why would Apple risk losing it’s 0.30c per download by allowing people to use flash to play online?

This will be even more apparent on the iPad assuming that the market for it are the same people that would kill time playing stupid flash games on the internet.

@foosh: Might be, the topic was “Why Flash on iPhone Does Not Make Sense” though, not “Why Apple doesn’t want Flash on the iPhone”.

Hi Stefan

I really appreciate your blog.

Why doesn’t Adobe optimize their player for Apple? Because Apple is still a niche market compared to PCs and other phones. Unfortunately Apple guys know how to make things bigger than they are actually. So Adobe’s strategy of sparing some money fights back eventually.

If i was Adobe, i couldn’t care less about a few iphones. Money is elsewhere.

Best,
Ralf.

Ralf Bokelberg – Everything you said is invalidated by the fact that Adobe have actually made a flash app for the iPhone and Apple refused it.

Cedric

Flash is bad on the iPhone because it’s complicated on multiple resolutions? Seriously?

Resolution independent UI’s are a solved problem. Desktop UI frameworks solved it a while ago (Swing, .net, etc…) and Android is showing it’s pretty easy to do on mobile phones as well. Actually, Android even lets you specify UI’s that are DPI independent.

Really, writing code that calculates widget sizes based on getHeight() and getWidth() instead of hardcoding these values is trivial.

As for “Flash is dying”, well, sure, like Microsoft is.

We’ll still be using Flash in ten years from now, it’s not going anywhere and when most mobile phones will be able to play videos from Hulu or play Farmville (very soon), the iPhone will have to fall in line or be reduced to a niche.

Actually, this might have already started:

http://blogs.computerworld.com/15692/android_marketshare_growing_iphone_shrinking_says_quantcast

Ah Cedric, we seem to clash over every post.

As always I disagree. First I’m not sure how much Flash experience you have, either by writing or by managing Flash projects.

From my experience from Flash, Swing and SWT, GUIs do not scale. Yo can’t just decrease font size to 6 pixels. GUIS do not resize. The best I’ve seen was MUI on Amigas – and that didn’t work either.

I haven’t seen good resolution independent applications, that resize. All I’ve seen are apps with large, easily resizable components in them like text ares (IDEs), images, graphs. The GUI stays the same, the components resize (as written in the post about video). Buttons stay the same, which works with increasing the screen size (Desktop) but not with decreasing it (mobile).

“We’ll still be using Flash in ten years from now, it’s not going anywhere and when most mobile phones will be able to play videos from Hulu or play Farmville (very soon), the iPhone will have to fall in line or be reduced to a niche.”

Flash is 15 years old, mobile internet 10 years. It didn’t take off, and it won’t take off. The breakthrough of mobile depends on Farmville? Uhuh.

PS: “Flash is dying” – please do not make quotes that are not quotes.

@Cedric:

1. Did you really take a look at the graphs?

2. Don’t start a iPhone vs. Android flame war, I’m not interested.

3. “My name is Cédric Beust. I am a software engineer at Google on the Android project.”

You’ve lost a lot of credibility since “Others I’d like to meet are above all Crazy Bob for Dynaop (and Guice), Cedric for his stand on dynamic languages and Rickard of course.”

Do you have examples of apps written for 12″ Android tablets that work as good on small Android phones?

Stephan

PS: I’m sure, http://beust.com/ucq/ucq1.png scales excellently as a GUI to Android (without scrolling)

Cedric

@Stefan:

“Do you have examples of apps written for 12″ Android tablets that work as good on small Android phones?”

Most of the applications written for the G1 scaled fine to the MyTouch, Droid and now Nexus One without any intervention from the developers. We’re talking about different resolutions *and* DPI, and I mean images, views and fonts.

I’m telling you, this resolution/dpi-dependent mythical problem is a red herring. It’s not a problem, it works fine, and Apple will most likely offer support for this in their next SDK to accomodate the iPad and whatever future devices they have in store.

Saying that because of this problem, Flash on the iPhone does not make sense is a very strange argument.

@Cedrik: As I do not know the MyTouch, concerning the others: Apps scale to 3 devices with the same size. The apps work full screen on my 24″ monitor? On my 10″ laptop? (as an app, not a widget)

Resizing by scaling pixels adapting to different DPIs is easy. It’s the same size, just different pixels.

See your PNG which was done for desktops and scale the app to a phone. THEN I’m convinced.

Apple already said, that you probably need to write a different GUI for iPad and iPhones, excatly because the recognized that you can#t have the _same_ UI for mobile and tablets.

For the same reasons, Flash on the iPhone does not make sense.

So, the point is “I’d like to learn more about making interfaces which can scale to different display sizes”, is that the gist of it…?

If so, have you looked into the basic properties of vector illustration, the scale-nine innovations, the export-to-Apple functionality of the authoring tools?

I’d agree that getting the basic physical design on a new size of display is hard (although not as hard as rethinking the app for mobile use!), but it seems Flash has the advantage rather than the disadvantage here…?

jd/adobe

[...] Why Flash on iPhone Does Not Make Sense Can Flex save [...]

Cedric

I agree that you should probably redesign your UI if you are porting your application from a phone to a tablet (I have seen Android applications on tablets, they have a lot of empty space in them, as can be expected, and as a consequence, they do not look too good).

But that’s not the point.

The point is that Android UI will scale your application so that it will look as good as it can on a different resolution or different DPI. It’s moot in the case of the transition from a phone to a tablet, but it’s very important and useful when you are switching to resolutions and densities that are close to each other (e.g. QVGA to WVGA), such as running your application on two different phones.

Now, why you keep connecting this discussion to Flash on the iPhone is still completely lost to me.

“I’d like to learn more about making interfaces which can scale to different display sizes”

No, I do not think it’s possible without a second app.

But if someone shows me one, and how this is done, I’ll agree.

Otherwise one needs to write a special Flash app for the iPhone (and Blackberry Bold, and iPad, and ….) and then why not write a native app.

Flash could add layout capilities, zooming (double tap), rotating, gestures and emulate everything iPhone apps can, but currently it doesn’t. In the end it would reimplement HTML capabilities inside Flash inside HTML.

And for what it’s worth, although being a Java developer for nearly 15 years, I never saw the light to use Java for Windows Desktop applications – or MacOS X. Better to write a native app in Cocoa/Objective-C and .NET/C#.

Cedric

“But if someone shows me one, and how this is done, I’ll agree.”

There’s plenty of material out there, reading up on the SDK for Android or the iPhone would be a good start, but Swing or SWT are good too.

John Dowdell gave you a glimpse of how to design scalable images, we call these “nine patch images” on Android. It’s simple, really: you draw an image, such as a frame designed to go around something, you divide that image in nine rectangles and you specify which parts should be stretched and tiled if a rescaling is necessary.

More details there:

http://developer.android.com/guide/developing/tools/draw9patch.html

And that’s just for images, there are similar techniques for creating resolution and density independent user interfaces. As I said in the beginning of this discussion, this part of the development process is really not a problem, and there is really nothing that prevents Flash from supporting this kind of technique (and I bet most Flash developers are already using such techniques).


Cedric

@Cedric: As stated before, it’s not technical. I have no doubt that you can scale an image, an font (in certain ranges), text fields or videos.

But it will be a great app on a mobile device and horrible at larger sizes (or you want to have 10cm buttons) or good at larger sizes and

You’re so deep into implementation, that you can’t see the problem.

It’s not technical – obviously not – it’s an UX problem for gods sake!

Adding another technical solution will not help, I agree with you that scaling images and buttons is easy. It’s about scaling UIs.

anon

Technical explanation are useless, the real reason is that Apple does not want a way to bypass their application marketplace, and flash allows just that: provide rich application, games, whatever, right from the web, without paying a dime to Apple.

I’ve added a resized version of my Chrome browser to the post.

Granted, one can scale the buttons down.

But it would still be a bad GUI for an mobile add. One would remove the tabs, the bookmarks, remove the navigation. Current mobile browsers focus on the URL.

App UX does not end there for different mobile devices. My Blackberry Bold has a different screen than my iPhone, it has a trackball, isn’t touch sensitive, has an excellent keyboard. Android has 4 buttons, the iPhone has one button.

One Flash app does not work. HTML does work, because the native browser supports this all (zooming, keyboard, trackball, …)

@anon: The post was not about why there is no Flash on the iPhone, but why it does not make sense.

anon

@stephan flash has changed a lot since “your time”, now, with flex, Flash has become developer-friendly, and most of the issues you mention are old stuff no longer true. I mean, really, try Flex, it’s nothing like old-school flash development.

@anon: Which ones in particular? The principle problem of resizing apps to smaller devices and adapting them to different input methods?

Leave a Reply

What people wrote somewhere else:

Just blogged “Why Flash on iPhone Does Not Make Sense” http://bit.ly/9ySLyX

This comment was originally posted on Twitter

Just blogged “Why Flash on iPhone Does Not Make Sense” http://bit.ly/9ySLyX /via @codemonkeyism – oh, how I’m with you.

This comment was originally posted on Twitter

Why Flash on iPhone Does Not Make Sense http://codemonkeyism.com/flash-iphone-sense/

This comment was originally posted on Twitter

Why Flash on iPhone Does Not Make Sense: http://bit.ly/cR2G9x

This comment was originally posted on Twitter

Why Flash on iPhone Does Not Make Sense http://bit.ly/biPT07

This comment was originally posted on Twitter

RT @codemonkeyism Code Monkeyism: Why Flash on iPhone Does Not Make Sense http://bit.ly/9ySLyX

This comment was originally posted on Twitter

The days of flash are numbered? http://j.mp/aEE3zU

This comment was originally posted on Twitter

Why Flash on iPhone Does Not Make Sense – http://su.pr/1tu8U9

This comment was originally posted on Twitter

Additional comments powered by BackType

Guide to CodeMonkeyism

Over the last 4 years I wrote many articles on this blog. To make it easier for you to find the relevant ones, I've organized them into topics.

Top 10

6 reasons why my VC funded startup did fail

Go Ahead: Next Generation Java Programming Style

Java Interview questions: Write a String Reverser

The dark side of NoSQL

7 Bad Signs not to Work for a Software Company or Startup

Is Java dead?

Scala vs. Clojure

Never, never, never use String in Java

No future for functional programming in 2008 – Scala, F# and Nu

Clojure vs Scala, Part 2

Java Developer

Is Java Dead?

Go Ahead: Next Generation Java Programming Style

Be careful with magical code

All variables in Java must be final

Never, never, never use String in Java

Bending Java: More readable code with methods that do nothing?

NoSQL Guy

NoSQL: The Dawn of Polyglot Persistence

The dark side of NoSQL

Essential storage tradeoff: Simple Reads vs. Simple Writes

Sharding destroys the goals of your relational database

The unholy legacy of databases

Startup/CTO

Development Dream Teams

6 reasons why my VC funded startup did fail

American vs. European style of Software Development

12 Things to Reduce Your Lead Time and Time to Market

The high cost of overhead when working in parallel

Essential storage tradeoff: Simple Reads vs. Simple Writes

Job Seeker

Another Good (Java) Interview Question

7 Bad Signs not to Work for a Software Company or Startup

Java Interview questions: Write a String Reverser (and use Recursion!)

Java Interview questions: Multiple Inheritance

As a Manager: What I value in developers

Top 10 Tips (+1) to Get a Pay Raise

Agilist

What Developers Need to Know About Agile

5 Practices Better to Change in Your Scrum Implementation

Scrum is not about engineering practices

ScrumMaster and ZenMaster: The joke of certification

What is Trans-Scrum?