Apple, Adobe, and all that nonsense

By now you have surely heard all the hullabaloo around Apple Adobe and iPhone/iPad development. Until recently, Apple's position was understandable from a business perspective, in that, if they allowed Flash applications to run on the iPhone, iPhone customers could use free Flash applications over the web, and not have to buy them from the Apple store.

While this position sucks for apples customers, they remain a loyal bunch, who continue to seek out new ways to tithe to their mothership.

Adobe has been quietly pleading with Apple to reverse this position, but has been working on alternative ways of allowing developers to build applications which can be deployed to the Web, Desktop, or any Mobile device, including those by Apple. Chief among these efforts was the Creative Suite 5 Packager for iPhone which is scheduled for release in the next few days.

Yesterday (4/8/2010) apple announced the iPhone OS4, and release a new set of Terms of Service, which amongst other things, explicitly forbids iPhone/iPad development with 3rd party tools (such as the CS5 packager mentioned above).

This is clearly going to far. Its bad enough that developers who want to build apps for apple devices already need to pay $99 + 30% of all revenue to Apple. Now, they also need to use apples tools to build these applications.

The reaction to this has been varied. The followers of the "Cult of Apple" see this, and everything else Steve Jobs does, as as good move, which will save humanity from itself. Adobe supporters have reacted with outrage, including (but not limited to) Jesse (TheFlashBum) Freeman calling on Adobe to stop developing software for MacOS.

Oddly, many of the MacOS fans I know first switched to Apple from Windows because they despised Microsoft's anti-competitive practices. Funny, of all the anti-competitive steps MS has ever taken have been much less harmful than those taken by Apple recently.

Of course, Apple claims they won't support flash because its not "open." This is hilariously hypocritical, as Apple's devices are the least open things out there. To write an iPhone application, you need to use approved development tools, get apples approval on the software you write, and sell it through apples store. Which of these things seems open to you? Did I mention that the Adobe opened the source code for the Flash Player, when they donated it to the Tamarin project (http://www.mozilla.org/projects/tamarin/). Strange how the closed can criticize the open for lack of openness, and be believed by so many.

As I'm not a MacOS person, I have no Mac to burn in effigy, but instead of buying a new iPod, as I had planned, instead I picked up a ZuneHD. In short, if Apple wants to screw over their customers, I simply see that as between them and their customers, and can only react by not being a customer. However, I wonder where all the new iPhone apps will come from, after Apple is done alienating all the developers of the world.

I'll be speaking at Adobe MAX again this year

For the 9th year of the last decade I'll be speaking at Adobe MAX, being held this year in Los Angeles, between October 3rd and October 7th. This time, adobe has asked me to present two sessions, one an "Intro to Flex 4," and the other a session on "How not to code Flex Applications." You can find information on registration and everything else at max.adobe.com

If the schedule stands as planned, I'll present my "How not to code" 10/6 at 3pm, and my "Intro to Flex 4" 10/5 at 11:30am



In case you are wondering, here is what I have spoken on in years past...

  • 2009 - Los Angeles - How Not To Code Flex, Intro to Flex 4
  • 2008 - San Francisco - Intro to Flex 3
  • 2007 - Chicago - Intro to Adobe AIR / Building Desktop applications with HTML and AIR
  • 2006 - Las Vegas - Getting Started with Flex Development
  • 2005 - Anaheim - Creating Better Performing Flex Applications
  • 2004 - New Orleans - Using ColdFusion to Power Flex and Flash Applications
  • 2003 - Salt Lake City - XML in ColdFusion / Building Components in Flash
  • 2002 - Orlando - Styling a Flash Application
  • 2001 - Orlando - Did not speak
  • 2000 - Washington DC - Planning a Spectra Application

How not to code Flex Applications

Flex Camp 360 NJ

File this under the better late than never...

 

On September 26 and 27th, the folks who bring you Flex 360, put on a 2 day "Flex Camp" in New Jersery, which went over extremely well.  I was presenting on Testing with Fluint (formerly known as DPUint).  Of course, I promised my slides and materials would be up on here before the end of the weekend.  Well, realizing its over a week later, I'm finally getting them uploaded now.

 

So, if you were one of the many asking for those materials, here they are. 

slides
source code

You can stop waiting, its been released.

I'm a bit late in releasing this news, but our "Flex 3 Training from the source book" was released last week, and is now available from our publisher, as well as the major online bookstores such as Amazon, and Barnes and Noble. Speaking of Amazon, we are currently the #843 best selling of all their books, #15 in the Computers and Internet / Software category, and #8 in Computers and Internet / Programming. Thanks to all of you who have bought our book, and pushed the sales ranks so high.

Anyhow, I know folks have been asking me for months when this book would finally be released, and the answer is, last week.

Enjoy.

CFUnited Europe, AJAXWorld, and more conference stuff...

Next week I'm off to London to speak at CFUnited Europe, and the following week, I'll be speaking at AJAX World East.  In both places, I'll be speaking about the joy that is Flex 3 in all its forms.  The CFUnited talk is more focused on how Flex can improve the lives of CF Developers, while the AJAX World one is more focused on how Flex can help RIA developers increase their real world Retursn On Investment from RIA's.  On another note, CFUnited has just released the session schedule for their Washington DC Conference in June, and rumor is that the session schedule for WebManiacs should be available shortly.

My Speaking Engagements for the first half of 2008

1/18 - Flex Camp Chicago

1/24 - Flex Camp Omaha

2/24-2/27 - Flex 360 Atlanta

3/12-3/13 - CFUnited Europe

5/1-5/4 - CF.Objective()

5/19-5/23 - WebManiacs

6/25-6/28 - CFUnited

H.264 Support in FlashPlayer

I missed it yesterday, when it was announced, but Adobe has now announced support for H.264 (also know as MPEG4) in an upcoming version of the flash player.  H.264 is the same standard which is used by BluRay and HD-DVD -- the ability to have this type of video in our web applications is absolutly huge.  Remember, not that long ago, Adobe announced plans for the Adobe Media Player (AMP), as a desktop application which was built with AIR and Flash -- now, AMP will be able to use H.264 as well as FLV for its video content.

 

 

Changing Flex Style Sheets at runtime

Sorry its been so long since the last blog entry, between the two kids, writing 3 books, and many clients, its been hard to find time to write new entries here.  Today, I wanted to give a quick example of the Flex 2.0.1 feature of loading CSS style sheets at runtime.

In most Flex applications, I had been creating a seperate CSS style sheet, and compiling it into the application through the use of the <mx:Script source="..." />.  One of the pains of this, is that applying changes to the styles requires re-compiling the application, and as you probably now, the styles are one of the most frequently changed aspects of any application.

To help solve this problem, Adobe implemented the ability to load Style Sheets at run time in the Flex 2.0.1 release.  To do this, you first need to compile the CSS into a swf.  You can do this in FlexBuilder by right clicking on the css file and choosing "Compile CSS to SWF" option, or using the comand line compiler (mxmlc).  Once the css is compiled into a swf, it can be loaded with the StyleManager.loadStyleDeclarations(...) method.  Consider this simple example:

TestLoadStyles.mxml 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
 <mx:Style>
  .text1{
   color:#0000ff;
  }
  .text2{
   color:#ffff00;
  }
 </mx:Style>
 <mx:Script>
  <![CDATA[
   private function changeCSS():void{
    StyleManager.loadStyleDeclarations("myCSS.swf");
    
   }
   private function undoStyle():void{
    StyleManager.unloadStyleDeclarations("myCSS.swf");
   }
  ]]>
 </mx:Script>
 <mx:Button label="change css" click="changeCSS()"/>
 <mx:Button label="revert css" click="undoStyle()"/>
 <mx:Label text="hi there"/>
 <mx:Label text="hi there" styleName="text1"/>
 <mx:Label text="hi there" styleName="text2"/>
</mx:Application>
 

myCSS.css

Application{
 color:#ff0000;
 font-size:40;
}
.text1{
 color:#00ff00;

Compile the css into a swf, and make sure it is in the same directory as the TestLoadStyles.swf. As you run the application, you can see the changes as the style sheet is loaded or unloaded.  One thing to notice, is that even when the styles are loaded, and styles initially defined, which are not overridden in the loaded style sheet still remain, therefore, the styles of .text2 (yellow text), remain yellow, even after the new style sheet is loaded, since the .text2 style does not appear in the load style sheet, while the style .text1 which is defined as red text in the initial application, is changed to green, as the same style name is defined in both, so when the new style sheet is loaded, the .text1 label changes its color from green to red, and when its unloaded, it reverts to green.

This offers great opportunities not only for greater separation of styles from the application, but also for the concepts of writing an application once and rebranding the same deployed application.

FlexManiacs 2007 - Getting Started with Apollo

As promised, here are the starting files from my "FlexManiacs 2007 - Getting Started with Apollo" session.  Thanks for attending my session, I hope you enjoyed it and the FlexManiacs Conference.

Overall, i thought this conference was a great success.  Many attendees of all levels.  Great networking, Great debates, and an all around good time.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.9.001.