Part 1. Getting started
Application development is in a transition period no matter what applications youāre used to creating. Applications are becoming apps, and the steps required to prepare applications for the desktop and the web are continuing to grow to include many mobile platforms.
In this part of the book weāll focus on some concepts and pain points when creating mobile applications, including the issue of multiple operating systems and technologies. Weāll also look at a quick Hello World example so that you can see how easy it is to create an application for various platforms using Flex.
1 Getting to know Flex Mobile
This chapter covers
- Defining multidevice and multiscreen
- The great debate: native versus cross-platform development
- Mobile components
- Hello World example
You, a mild-mannered programmer, work tirelessly on your computer to create desktop and web applications for your own personal gain and that of your clients. Suddenly you get a call on your phone from a new client asking for a mobile application! You spring into action and take the case only to realize later that mobile development is very different from the application development youāve done in the past. Enter Flex Mobile.
With the latest release of Flex, Flex 4.6āthe successor to Flex 4.5 (codenamed Flex Hero), you can easily make applications that run on the web, desktop, or a wide range of mobile phones and tablets with the same codebase and familiar development techniques between each platform. This means you donāt have to learn a new language or relearn how a button works each time you need to deploy to a new device. Instead, you can use the knowledge you have, extend it, and deploy to each new platform.
What makes Flex so wonderful for application development? Built into the Flex framework is a myriad of components created with the sole purpose of creating amazing applications. With many tested, extendable components, you can create applications easily without having to re-create the wheel each time.
In this chapter weāll discuss the latest changes in mobile application development, as well as how to decide between going native and using a cross-platform solution. Once you see the benefits of the Flash platform for multiscreen development, weāll look at what Flex Mobile is, work through a basic Hello World example, and finally introduce the running example that will be used throughout the entirety of the book.
1.1 Learning key terms
Before jumping right into Flex Mobile itās important to understand some key terms surrounding mobile and discuss the debate between native and cross-platform development.
When we talk about going native, weāre referring to the use of the deviceās native software development kit (SDK), and therefore programming language, to create applications. For iOS development youāve probably heard that native development means learning the Objective-C language, whereas Android includes its own framework built around the Java language.
Cross-platform development
When we talk about going cross-platform, weāre talking about using one of the development platforms, such as Flex (ActionScript) or HTML (and JavaScript), to create applications that work similarly, if not the same, across all devices.
Thanks in part to the changing mobile landscape, two new terms are thrown around surprisingly often: multidevice development and multiscreen development. Although some circles may argue the unique differences of these terms, on the whole these terms are synonymous.
When we talk about multidevice or multiscreen application development, weāre ultimately discussing creating a single application that works on multiple devices or multiple screens. Depending on your interpretation of the word, you may believe that the code is 100% the same between each device or that the applications need to share a common codebase.
For some developers, when we talk about multidevice, weāre discussing the various mobile platforms, and when we talk about multiscreen, weāre also bringing in web, desktop, and television screens, to name a few. For the purposes of this book, weāll treat the terms as the same and focus specifically on creating an application that works across multiple platforms.
When we talk about going native, weāre referring to the use of the deviceās native software development kit (SDK), and therefore programming language, to create applications. For iOS development youāve probably heard that native development means learning the Objective-C language, whereas Android includes its own framework built around the Java language.
Cross-platform development
When we talk about going cross-platform, weāre talking about using one of the development platforms, such as Flex (ActionScript) or HTML (and JavaScript), to create applications that work similarly, if not the same, across all devices.
Thanks in part to the changing mobile landscape, two new terms are thrown around surprisingly often: multidevice development and multiscreen development. Although some circles may argue the unique differences of these terms, on the whole these terms are synonymous.
When we talk about multidevice or multiscreen application development, weāre ultimately discussing creating a single application that works on multiple devices or multiple screens. Depending on your interpretation of the word, you may believe that the code is 100% the same between each device or that the applications need to share a common codebase.
For some developers, when we talk about multidevice, weāre discussing the various mobile platforms, and when we talk about multiscreen, weāre also bringing in web, desktop, and television screens, to name a few. For the purposes of this book, weāll treat the terms as the same and focus specifically on creating an application that works across multiple platforms.
1.2 Deciding between native and cross-platform
Within various development circles thereās a big debate: go native or go cross-platform. Although the final answer is always unique to the team and developers, there are some major points to take into consideration before making a final decision. I do want to point out that either way you can create some great applications.
For native development, some reasons to use native code are the execution speed, ease of access to core or custom features, and final package size. But the downside to going with native code is the limited reuse of code, longer development cycles for projects requiring multiple platforms, and more languages that your teams must be proficient in to successfully execute an application.
With cross-platform development, some reasons to use a cross-platform language are the development speed, consistency of applications across devices, time and cost savings, and finally only having to master or use a single language. As with any decision, there are some downsides. For cross-platform develo...