One of the best ways to get a jump start on paying off those student loans is getting a good paying job after college. (Duh, you all know that.) One of the best ways to get a head start into that good paying job is to find fields or subfields where demand for spots outweighs available workers. (Duh, again.) If you can display knowledge in one of these fields right out of school, you can usually beat out the starting salaries for your classmates. (Duh... oh wait, that would be awesome.)
I'm starting up new little series entitled "Holy Crap, I'm a Mobile Developer." The idea is that somewhere along the way I developed the ability to build applications for mobile devices, specifically Android. Sadly I can't take any credit for this. The Flash Platform engineering teams did this to me.
In my series of demos, I'm going to show how to take a static Fireworks composition and turn it into an application running on a Nexus One. I start out using Flash Catalyst to turn the static composition into an interactive one (interactive composition sounds better than "dumb prototype"). After Catalyst, I add business logic using Flash Builder. Finally I use the AIR 2.5 SDK and the Android SDK to convert it to an Android app and drop it onto my phone.
My point here with these posts is to show off just how frickin' easy it is to get your stuff onto a mobile device with the Flash Platform. It's so easy that I can do it. That's not false modesty, I'm mostly a back-end ColdFusion expert; on the front-end though, I'm usually at a loss. Not with these tools, I'm not. These tools make me look like a front-end genius. So I hope you enjoy this series.
I'm very excited to say I'll be doing the keynote at Capital Flash Camp 2010.
I've been trying to get to one of the Flash Camp events for a while, as I hear great things about them. However, I've had scheduling conflicts for almost all of them.
If you're in the DC area and looking to get into Flex and the rest of the Flash Platform here is your chance. Here's the speaker lineup:
Adnaan Ahmad, Anaara Media
Huyen Tue Dao
Terry Ryan, Adobe
Christian Saylor, Universal Mind
Chris Scott, Universal Mind
Carl Smith, nGen Works
Jeff Tapper, Digital Primates
Dave Watts, Fig Leaf Software
It's a monster lineup that I'm proud to be a part of. So go register for Capital Flash Camp.
So, buried in the documentation around ColdFusion Builder is the fact that you can write extensions in Flex. I decided to fool around with this for a bit.
If you want to skip all of the demo and explanation and just try it out, feel free to pull down the extension:
Create a remote service CFC for all of the information that you want to expose to Flex
Have your ColdFusion Builder extension pass information to the Flex generated SWF
Pass any variables to the SWF just like you would pass URL variables
On the Flex side:
Pull in the remote service cfc as a WSDL* using Flash Builder's Data/Services
Write your Flex app to use the services that get created
Alter the generated ActionScript classes to use a WSDL that is passed into the SWF via the URL (Flash Params)
One more thing:
I'm not sure if this is a Flex thing, a ColdFusion thing, an OS thing, a webservices thing, or a me being dumb thing, but the automatically generated WSDL for my remote service CFC was different on Windows and Mac. Consequently the SWF could call the Mac hosted WSDL but not the Windows hosts WSDL. My solution? Create a static WSDL file that had the service spelled both ways. Maybe a hack but worked like charm.
Anyway, if you want to see the code, it's available on github:
*WSDL? Why not Flash Remoting (or ColdFusion in the Data/Services list)? Remoting needs to be configured to each system's configuration, and isn't very discoverable. WSDL doesn't require knowing about the Extension user's AMF setup; it just uses a URL, which can be easily discovered.
There's been a bit of FUD being thrown about battery consumption by Flash Player 10.1 on Android. If you're confused by what's being said check out Mark Doherty's post that provides demonstrations of Flash Player running video on Android and the effect on the battery indicator. It also contains the battery usage charts from Android showing that viewing the video is not using up all of the battery (another really great built-in feature of Android.)
This is more a stream of consciousness piece than a well-developed thesis. I've had these thoughts thundering around upstairs and needed to get rid of them.
I really like Apple and their products. The MacBook Pro saved me from Vista, and I haven't looked back. The iPhone is a great piece of technology. I would really want an iPad if I didn't have a Kindle already. I have to say I'm really disappointed by all of this Flash and Apple nonsense. I'm also happy to read that some other people are disappointed by this (Gizmodo, Digital Beat, MacRumors Forum, FucktheIpad).
Some of Apple's justification for the lack of Flash, namely performance issues, seems to fall a little flat here. Supposedly by designing the chip themselves, Apple has a chip that can render webpages instantly and still play video for 10 hours. It would appear that performance isn't really the issue with the iPad.
That being said I have never really understood the whole Flash-performs-poorly-on-Mac thing. I work for Adobe. I am a member of the Flash Platform evangelism team. I use multiple Flash applications, every day of my life, for hours on end. I don't have browser crashing issues. I currently use Chrome, and used Firefox before that. I never really gelled with Safari. I'm not being obtuse here, or acting, I just don't have those particular problems. I'm not running a special version of Flash Player either; I just use the latest released version.
I also don't understand cognitive gymnastics it takes to hate Flash because it's proprietary and love the fact that Apple is batting us around by designing systems that block it by way of preventing one from installing it through a proprietary gatekeeper.
Flash is proprietary. It's also free, widely distributed, rapidly brought up to date on user's computers, and cross platform. Yes, to some degree you have to depend on Adobe. This is true. Even worse, we get something out of it--we sell authoring tools, content creation tools, services, and servers that target that dependency.
With HTML 5 you don't have to depend on anyone….
Except browser authors: Opera, Mozilla, Google, Microsoft, and Apple. But they all conform to the HTML 5 standard…
Okay, they don't yet but they all have detailed plans that outline when they will support HTML 5…
No they don't. But they don't get anything out of it…
Except access to your data, or locking you into their operating system, or locking you into their operating system and hardware or whatever ideologically pure motivation Mozilla and Opera have these days.
At the end of the day, all of these technologies are driven by mutual self-interest and not by ideology. You have to decide if what you get is worth what you give up.
Personally I don't like being told what to do. But more important than not liking being told what to do, I enjoy being told how to do it even less. I don't like opinionated software that promises Do it the way we tell you to, and we'll make your life better.
I don't like the Apple Mobile device's increasing demand that I work the way they want me to.
At the end of the day, despite the fact that they may not be well expressed or even coherent, I have more faith in my opinions than my software's opinions.