Thoughts About 3rd-party Platforms
There was a bit of an argument today between @otomeskhy, @iosebi and me (@totocaster) about open letter by Steve Jobs about Adobe Flash. This inspired me to write this post.
Before you start reading please bare in mind, I'm reviewing only consumer software with user interface and human interaction involved.
The idea of cross-platform software is brilliant; ability to run same piece of software/code on any platform without changing it cool and funky... but only in theory and some very-rare exceptions which I assume exist, personally tho... I've never seen one.
Part II: Native feel.Cross platform applications are running on virtual machines which are there to separate running application from operating system they are running on. This means that application knows nothing about native OS or device it's running unless VM provides that kind of information; happily, that's what it does but level of support of those "pipes" and "tunnels" (or basically APIs) to native OS and hardware will never reach native APIs in terms of security, performance, response time, reliability, stability, (insert your IT word here, it will fit perfectly)... Same does refer to native looks of application, why should this application look different from other three-hundred and twenty-five all other applications from my Mac, PC or even iPhone? It should have same scroll-bars, buttons, checkboxes, drag-and-drop behavior, gestures, etc.
Part III: Performance.Native applications are just faster and much more reliable, it's a fact. Period.
Part V: Flash on iPhoneAs an iPhone developer I really do not want to see Flash applications on iPhone for several reasons:
- iPhone, UI guideline violation. Endless "Look at my innovative UI" show-off, and every single one will be worse than's native apps, because no developer will think and invest so much in completely new touch interface made for touch device like iPhone, and even if he/she will, it won't feel native.
- Sluggish performance. Have you seen how CoreAnimations works? No? Than take a look, Adobe will never invest such amount of resources in one framework only for iPhone, in fact it never did even for PCs and Macs for more than 12 years.
- Battery power. Flash has serious performance problems with vector animations and drawing. I don't mean that they don't work — they do, but using a lot of processing power which is OK for PC, Mac or anything connected to power plug. When you are on battery power things do change dramatically, your on-board power management system tries to lower CPU power consumption to increase battery time and CPU struggles to handle such stress. Results are obvious: sluggish performance and very short battery time. (Apple reports Flash to decrease battery time up to 5 hours on iPad).
- Windows developers on iPhone market. I just don't get them, not all of them of course. There are many talented and very good Windows developer out there but there is a cultural thing involved when developing iPhone application.