Thursday, August 25, 2011

Free eBooks on Adobe Flex

Graph of internet users per 100 inhabitants be...
Image via Wikipedia

Register at this link to get a free copy of "Fast Track to Developing Rich Internet Apps" delivered to your inbox.



Rich Internet applications (RIAs) offer a rich, intuitive and engaging experience that improves user satisfaction and increases productivity. Using the broad reach of the Internet, RIAs can be deployed across mobile devices, browsers and desktops.


Pro Flex on Spring is about building rich Internet applications (RIAs) that combine the interactive user experiences of Adobe Flex with the delivery of back-end services through the Spring Framework.


Wednesday, August 24, 2011

For Whom Do I Write ?

Software Development CommunitySoftware Development Community (Photo credit: Michael Kappel)

Background

In 2005, I was building Java based Web applications for fetching information using SAP services. To execute my application I need to deploy it to Java EE Server and when the user requests the app.
It would require an small JavaScript footprint to load and HTML code generation in backend before the application screen would be displayed to the user. Users can perform operations on SAP systems by performing actions such as clicking a button or submitting a form, the input data was send to SAP back end in the form HTTP request with XML payload, and after processing this input the result would be delivered to the user via HTTP responses again in XML format which needs to be interpreted in the client side to be displayed in human readable form.

The available technologies was unable to provide satisfactory experience to my customers as lot of delay was involved at the client side for loading high volume data. Presentation of data in charts and graphs was often resulting in browser crashes. The results were often ugly and uninteresting to look at.

I started evaluating different technologies to improve my existing applications. I didn't wanted to use plain JavaScript / HTML due to code manageability issues as my applications would have large and complex code base, was requiring enterprise quality. 

I did some prototypes using open source framework OpenLaszlo. But found it little risky to invest my time and effort into it as I was not sure about the roadmap and commitment of open source community. Flex was a great alternate to openLaszlo as it was backed by enterprise (started by Macromedia and later Adobe till 2011).

I started working on Flex Framework and results were impressive cross browser and cross platform web user interfaces (later desktop integration through AIR and mobile also arrived). 


Now as many competitive technologies have matured and its worth reviewing Flex and what lessons we can learn from this great developer friendly technology.


Who should read my Blogs
  • Java Project Managers and Architects working on Java projects.
  • Product manager & Product owners working on Web & Mobile applications / products
  • Enterprise IT team members. 
  • Tech-savvy managers, architects and developers looking for the best Rich Internet Application platforms for their projects
  • Senior professionals from software development organization units exploring about benefits of mobility and RIAs and what it takes to port existing applications for mobile devices and to RIAs.
  • and Finally for Decision makers responsible for the success of their online businesses, (both external  or internal facing).

Thursday, August 4, 2011

17 Awesome Frameworks for Adobe Flex


The model, view, and controller (MVC) pattern ...
Image via Wikipedia

How to architect a Flex application ?

Key Feature of a good Flex application are:
  1. easy maintainability, 
  2. extensible and
  3. re usability
Architectural Best Practices
  1. Instead of a single monolithic interface, break up the interface into separate views (that are typically separate MXML components); 
  2. build collections of independent, loosely coupled components that define and broadcast custom events that the rest of the application can then listen for and respond to. 
  3. organize your data, logic, views and notifications, or by using one of the many microarchitectures, including Cairngorm, PureMVC, Parsley, Mate or Swiz.

Frameworks:

1.Caringorm - An open-source micro-architecture (collection of design patterns) for Flex developers.

2.PureMVC - PureMVC is a framework for creating applications based upon the well-established Model, View and Controller design pattern.

3.Model-Glue : Flex -
Model-Glue: Flex brings implicit invocation, Model-View-Controller design, and cleaner, less repetitive integration with backend services to Flex 2.0 and AIR applications.

4.Foundry - quick an easy framework for Flex 3 development

5.Guasax Flex Framework - Guasax is an ease of use programming framework which provides the creation of an ordered and scalable application with Adobe Flex. Lifecycle of guasax framework is based in the MVC pattern to take on our program actions. Guasax framework helps you to maintain your business logic tier highly decopled from your presentation logic tier. Guasax takes reflection and introspection techniques as well as IoC pattern to execute the operations which we have pointed at and to make a decision about itselves. 

6. ARP - ARP currently supports Macromedia® Flash® and Flex™-based RIA Development in ActionScript 2 and ActionScript 3. ARP is designed to be simple to use and lightweight.

7. Flest Framework - Flest is an ActionScript3 / Flex application framework for building enterprise level RIAs. It uses such design pattern as Controller, Factory, Command, etc. High efficiency, simplicity and practicality were set as its mandatory design features.

8.Mate - Mate is a tag-based, event-driven Flex framework. Flex applications are event-driven. Mate framework has been created to make it easy to handle the events your Flex application creates. Mate allows you to define who is handling those events, whether data needs to be retrieved from the server, or other events need to be triggered. In addition, Mate provides a mechanism for dependency injection to make it easy for the different parts of your application to get the data and objects they need.

9.Swiz - Swiz is a framework for Adobe Flex that aims to bring complete simplicity to RIA development. Swiz provides Inversion of Control, event handing, and simple life cycle for asynchronous remote methods. In contrast to other major frameworks for Flex, Swiz imposes no JEE patterns on your code, no repetitive folder layouts, and no boilerplate code on your development. Swiz represents best practices learned from the top RIA developers at some of the best consulting firms in the industry, enabling Swiz to be simple, lightweight, and extremely productive.

10.Penne Framework - The Penne Framework is a light weight framework used for enterprise Adobe Flex 3 Applications.

11.Gaia is an open-source front-end Flash Framework for AS2/3 designed to reduce development time.

12.robotlegsRobotlegs is a pure AS3 micro-architecture (framework) with a light footprint and limited scope. Simply put, Robotlegs is there to help you wire your objects together. It provides the glue that your application needs to easily function in a decoupled way. Through the use of automated metadata based dependency injection Robotlegs removes boilerplate code in an application. By promoting loose coupling and avoiding the use of Singletons and statics in the framework Robotlegs can help you write code that is highlytestable.

13.thin-red-line - This is an extension of the Cairngorm Flex framework created to address all the issues not covered by Adobe. The source code contains both the actual framework and a very simple Flex app demonstrating how the whole thing works.

14. flex-slide - Slide is an application framework for projects built in Flex 2 or 3.
Key features:
  • Uses familiar design patterns
  • Robust MVC structure
  • View state management decoupled from view implementation
  • Flexible approach to model and controller access, eliminating need for singleton classes.
  • Separate view presentation from view functionality
  • Incorporated debugging and development tools
Benefits:
  • Helps with project planning through visual design to production
  • Increases the proportion of your codebase that is easily testable
  • Makes dependencies transparent (appropriate abstraction and decoupling, not unhelpful indirection)
  • Plays to Flex's strengths, reducing the quantity of code
  • Encourages convention, but does not depend on it
  • Simplifies view management

15. dunelox - Dunelox is a library of components and utilities to implement Flex applications designed around Conversations.

16. mainline-flex - Mainline is a simple Dependency Injection / IoC framework for Adobe Flex, Air, and ActionScript. It does what it needs to, but otherwise stays out of your way.


17. Parsley is an application framework for Flex/Flash/AIR applications written in AS3.

Spicelib is a suite of independent AS3 libraries that Parsley builds upon, but that can also be used separately.

Parsley features:
  • Flexible IOC Container: Supports configuration with AS3 Metadata, MXML, XML files, ActionScript
  • Dependency Injection: Injection by type or id - for constructors, methods or properties
  • Decoupled Bindings: Bindings where source and target are fully decoupled, based on a publish/subscribe mechanism
  • Messaging Framework: Fully decoupled senders and receivers, can serve as a basis for MVC architectures
  • Dynamic View Wiring: Easily wire Flex components to objects declared in the container
  • Advanced container features: Asynchronously initializing objects, object lifecycle, modular configuration contexts
  • Integration with Flex Modules: Allows configuration to be loaded and unloaded alongside Flex Modules
  • Localization: Integrates with Flex ResourceManager for Flex Applications, contains its own Localization Framework for Flash Applications
  • Extensibility: Easily create your own configuration tags, a single implementation can be used as AS3 Metadata, MXML or XML tag
  • And much more...


A Video on Mobile Application Development with Flex and Flex Builder

One tool, one framework, multiple devices
  • With increased internet connectivity over mobile and more services moving to the cloud, RIAs are becoming increasingly popular on mobile devices. 
  • With onslaught of so many different types of digital devices from PCs, laptops, smart phones, and tablets cross platform user  engagement has also became an import aspect of RIA development.
Develop high performance mobile applications for the iPhone®, iPad®, Android™ devices and BlackBerry® Playbook™ with one code base. Please find below a video about "Mobile application development with Flex and Flash Builder" from Adobe TV presented by Adobe Developer Connect.



Delivering an app for multiple devices no longer requires writing separate code for each platform. Flex and Adobe® Flash® Builder® 4.5 software let you develop & debug dynamic, high performance apps for
multiple platforms.

Many mobile application developers build custom components and custom navigation patterns to enhance the application’s user experience.

With the following the best practices in mobile development your application performs well on all platforms.
• List optimization
• Item renderer optimization

Create data-intensive apps for iPhone®, iPad®, Android™ devices and the BlackBerry® Playbook™
Flex and Adobe® Flash® Builder® 4.5 make the developing of enterprise mobile apps with data visualization both easy and cost effective.

This video demos how to develop high performance mobile apps that connect with major back-end systems and web services.


Mobile Application Development can be very interesting, fun and lucrative experience. Please keep sharing your experience through your comments.

Anyone who can build an Flex content can now build mobile applications for growing number of devices and platforms.

For more details one should vidist the Mobile and tablet Development page in Adobe Development Connection (http://www.adobe.com/devnet/devices.html).

Related Links

Saturday, May 21, 2011

Adobe Flex Builder 4.5 - A game changer release


Today a developer faces a challenge of making their applications run on multiple platforms. With Adobe Flash Builder 4.5 the same code works smoothly and uniformly in every device. Adobe Flex is the single framework to build applications compatible across almost all major browsers, devices and operating systems.

It supports the following platforms:
  • For Desktop Applications multiple Operation Systems
    • Windows,
    • Mac
    • Linux
  • For Rich Internet Applications (RIAs) multiple Browsers
    • Chrome
    • Internet Explorer
    • Firefox
    • Safari
  • For Mobilie & Table Applications multiple devices platform
    • Android
    • BlackBerry (Research in Motion)
    • Apple iOS
    • Windows Phone 7
Flash Builder 4.5 with Adobe Creative Suite 5.5 release is a game changer release as It now provides support for building Flex and ActionScript applications using one single tool and one development framework for Google Android, BlackBerry Tablet OS and Apple iOS with one primary code baseIt enables: 
  • Developing across different form factors.
  • Developing across multiple operating systems & platforms. (Android, Blackberry Tablet & iOS)
  • Developing for different orientations of devices.
  • Testing & Debugging your application on device.


Tuesday, April 26, 2011

New Features in Adobe® Flash® Builder™ 4.5 (codenamed "Burrito")

Adobe® Flash® Builder™ 4.5 includes the following new features:
  • new cross platform development features
  • enhancements to Flash Builder and 
  • support for the Adobe Flex® 4.5 SDK (codenamed "Hero").
Key themes for Flash Builder 4.5 includes the following:
  • Developing mobile applications
  • Developing multi-screen applications
  • Accelerated coding
  • Improved designer/developer workflow
  • Updated platform support
  • Better performance.
You user Flash Builder to perform the following activities while developing Web and Mobile applications.
  • write code in source mode
  • layout the UI
  • style and application 
  • implement an skin 
  • apply a theme

A video on Building your First Mobile Application in Adobe Flash Builder.

Monday, May 24, 2010

DataGrid based Matrix Component

Advanced datagrid for Matrix contains variable no of column and variable no of rows. 
Ex: if we are fetching data from backend in a datagrid such that years are placed in columns and locations are placed  in rows. User may select in any combination of years and locations for display in the datagrid with this component.


Here is a page, that shows an sample implementation of this component for demonstrating the basic functionality
http://www.flexer.info/2008/06/30/matrixgrid-component-extending-the-datagrid/

Which is better React Native or Native iOS and Android Development for building Mobile applications ?

  React Native vs Native (iOS, Android)   Properties/Feature React Native   Native (iOS) – Swift / Object...

Labels