iPhlash Application – nightmare scenario #1

Flash, humour, iPhone Add comments

Ok, so you are now an iPhlash developer, creating cutting edge iPhone apps with the Flex Mobile Framework, AIR and Flash CS5. Things are looking pretty rosy and you can be sure the offers of work are going to start rolling in along with the cash. Who needs Objective C ay? You’re an Actionscript 3 developer … you can build amazing applications and now you can build them for the iPhone … you rock! Hey, what’s that … an email from your client asking if you could build a small marketing app for the iPhone … and they want to pay you a stupid amount of money! Result! Of course you can … you’re now an iPhlash developer!

Cool … the project is go and here’s a design from their Art Director …

iPhlasher

NNNNNNNNNNNNNNOOOOOOOOOOOOOO!!!!!!!!!!!!!!!!!!!!!

Now you know I’ve only got love for Flash but I hope you understand the point of this post. Scenario’s like this are gonna bite people in the arse unless they are careful about what they promise their clients. You need that Cocoa UIKit. You need Interface Builder. There’s so much in the iPhone SDK that you will need to build proper iPhone apps.

Let’s be realistic about this … we’re not talking about building apps for the browser or even for AIR. If you build an application for an OS then it is best-practice to adhere to the rules of that OS and use the common UI tools made available. If you own a mac then I think you would agree that when you download and install an app you want to feel comfortable using it. You want the reassurance that the application you are using integrates with the rest of the OS so you can quickly get your head around how it works. This is why the HIG exists and this is why Apple will deny any attempt to reproduce their UIKit components.

Unless your building a game with no OS UI requirements or your app is a bit of eye-candy then you’d be better off building it with XCode. Hopefully Adobe will expand on what they’ve started by creating tools that will let us export assets or views from Flash Builder to Cocoa Obj-C code. It would be great if we could export our project to a View and then integrate it into an iPhone app. There’s already a great tool built in AIR for exporting shapes from SWF to Obj-C that you can view here.

I know that the Flash community are an ingenious bunch and the majority of them aren’t stupid either so I hope that this is just the incentive they need to build some really useful tools that will enable us to build proper iPhone apps in the near future. Until then you’d be best not to promise your clients you’ll be porting over their web apps to the iPhone just yet … not until you’ve discussed the requirements IN DEPTH.

This post by Jeff LaMarche is a much more eloquent argument about why we should all step back and have a re-think about this. Especially how this may effect the relationship between Adobe and Apple. Hopefully Jeff will have some further comments to make on the subject and I invite him to do so here too.

From Jeff …

If I were a Flash developer, I wouldn’t cheer just yet. This looks like a risky proposition to me at present. Adobe and Apple are still acting in an antagonistic fashion toward each other. Adobe could very well have crossed the line here. There are both legal and technical options open to Apple to prevent Adobe from doing this if they choose to. Will they? I honestly don’t know. Apple still makes money from apps that are created with Flash tools, so they might just ignore it and take their 30% cut quietly.

Digg!

15 Responses to “iPhlash Application – nightmare scenario #1”

  1. Fuad Kamal Says:

    While I’m sure publishing iPhone applications from the Flash platform is not going to be an end-all, on the other hand keep in mind there is already an iPhone AIR app that mimicks much of the behavior of the real iPhone; whatever standard UI components you need for iPhone development, you can pretty much bet that they will either ship with the release version of CS5 / Flash Builder or the community will make them pretty quick.

  2. rad_g Says:

    @Fuad: yep, then you customer asks “can our app rotate when user rotates the device?”

  3. Leonardo Braga Says:

    @rad_g: I would answear: Yep. I will use the Accelerator and rotate the screen for you. Even in 27.6º, something that iPhone controls doesn’t support natively.

  4. Michal Says:

    Your whole premise is that someone who markets themselves as an iPhone developer doesn’t inform potential clients about how an app developed using Flash is different from one created using Objective C. Nobody in their right mind would do that, and if they did – they probably won’t get much business anyway.
    But if I want to create a simple app, with custom UI and so on, it will be MUCH easier to just do it in Flash (especially if you’re a flash developer already) then learn some random language that isn’t used anywhere else that I’d care for.
    Honestly I think this whole bashing of Flash development for iPhone is a sad display of Objective C “elitism”, or programmers who got comfortable in their obscure niche and are scared of competition from a language that’s much more fun to work with.

  5. Lee Probert Says:

    Let’s be clear about this. There’s no bashing going on here. I’m a Flex developer who’s been using Flash since version 3 and Director before that since version 2. This post is about being realistic and informed before jumping feet-first into iPhone development with Flash. I urge you to read Jeff’s informative critique of the apps currently on the iStore.

  6. Mikko Martikainen Says:

    I’m glad there are ActionScript developers like yourself, who think about the end user experience for a give platform. That’s actually my biggest beed with any cross-platform tool, be it Java, Flash etc. Well, perhaps apart from web apps, but then again I consider web to be a platform on its own. The iPhone has very well thought out Human Interface Guidelines, and Cocoa Touch is to a large degree a corollary of the HIG. When you build your Apps using Flash, does the environment help you follow the HIG, or will it stand in the way?

    http://fiftysixtysoftware.com/blog/2009/flash-cs5-iphone-apps/ has more on my thoughts about the matter, and also about iPhone User Interface design. You’re welcome to comment there also.

  7. Mikko Martikainen Says:

    @Leonardo Braga: What do you mean with native support? It is extremely easy to rotate the contents of the screen by any degrees, even in 3D.

    And what about when the client asks if you can freely delete and reorder the items in a list in the App, with fancy animations? Or a great number of other convenient features you get basically for free with Cocoa Touch?

  8. Leonardo Braga Says:

    @Mikko Martikainen: I mean that using only iPhone native controls you can’t have the keyboard, for example, rotated in 27.6º, a button or a list, either. You can create a keyboard interface in Flash and rotate it that way. My point is that you can emulate basic every kind of interface in Flash, and the iPhone native look and feel is not an exception. If my client asks me for an “iPhone native interface” I can surely code one for it in Flash. I can even sell the controls after creating them. If you access my demo site http://www.augix.com.br/rc/ you’ll see that I was able to mimic basically the whole Win Vista interface. Drawing everything by code, AS3 only. I can certainly do the exact same thing for the iPhone look and feel.

  9. Mikko Martikainen Says:

    @Leonardo Braga: Actually, you can rotate them. Any UI widget in iPhone OS is a subclass of UIView, and rotating UIViews is one line of code. Sure, you can’t rotate the keyboard in Interface Builder, but you can do it in code.

    And yeah, you can emulate basically all iPhone interface elements in Flash, but how practical is that? Coding, testing and debugging them all is definitely more work than just learning to code in Objective-C using the iPhone SDK, so unless you want to make your living coding iPhone UI widgets for Flash, it kind of defeats the purpose. Since we are talking about the keyboard, how much work would it take you to replicate all functionality of the iPhone keyboard? That would include all the localizations, the autocorrection with text views and text fields, and different modes for differing purposes (number pad, search, web addresses etc.)

  10. admin Says:

    Can I just add that in the example video I saw for the Flex Mobile Framework they built a simple app with an iPhone style menu bar and back button but he also showed the default Apple keyboard appearing when he put focus on a text field. I’m not sure how this happened.

  11. Leonardo Braga Says:

    @Mikko Martikainen Says: My point, Mikko, is that if the client asks me to make a ball jump on screen, I can do it in Flash or Object C++. If he asks me to make a dropdown list with the native iPhone look and feel, I can do it in both ways too. Certainly each technology will make your life easier according to the kind of job you’re working on. Create a game using Cocoa probably demands more time than doing the same using Flash. Make an iPhone look and feel app can be faster in Cocoa than in Flash. The fact, plain and simple, is that there’s no limitation regarding UI aspects that I can’t beat using Flash. If one technoloy will be better than the other one, it’ll depend on the kind of job and the knowledge of the guy behind the editor.

  12. Mikko Martikainen Says:

    @Leonardo Braga: You’re right, you can do these things in Flash, too. And for some purposes, it is easier and faster to work with, but for Apps that need Cocoa Touch controls, you can’t beat XCode and Interface Builder. Actually, I read today about the iPhone SDK features not supported by Flash, and based on that list I can only conclude that there’s no point in making complex iPhone Apps in Flash, but for games that don’t require 3D-graphics or otherwise taxing graphical things, I’m sure Flash will be a good option. So, to reiterate what I said in my earlier post, it is possible to emulate pretty much anything using Flash, but at some point it makes no sense because the trouble of coding the emulation will be far greater than the trouble of learning Objective-C, XCode and Interface Builder.

  13. mike rigley Says:

    Adobe has just given us another tool. Apple has already given us a ‘fork’ in the shape of Xcode/interface builder and now Adobe has given us a ’spoon’. Sure you can’t do everything with a spoon, but it is easier to do certain things. It’s a pity we can’t use both together; then we’ll have a spork ;)

  14. admin Says:

    Mike you’re absolutely right and this was kind of my point of the post in the first place. If Flash CS5 allowed us to export content as Objective-C UIView classes then we’d be able to utilise these views in iPhone apps with the added bonus of using Apple’s excellent SDK for the rest of the UI and hardware integration.

  15. Flash Development for Mobile devices | Lyraspace Says:

    [...] Some other news from Adobe was the announcement that they will also be compiling native iPhone applications from Flash CS5. This is very interesting and controversial news that has been stirring things up within the community and I will be reserving judgment on this until I have more technical information on just how Adobe hope to integrate with the iPhone hardware sensors and UI controls. You can read my thoughts on this on my blog here. [...]

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in