sprocketexponentialΚινητά – Ασύρματες Τεχνολογίες

10 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

61 εμφανίσεις

A RapidValue Solutions Whitepaper
Desktop/Web Application Development
Mobile Application Development
Executive Summary
What Skills Do Desktop/Web Developers Have?
What Skills Do Mobile Developers Need?
Mobile Development Options
The Mobile Mindset-Factors to Consider
Migration Paths-Desktop/Web Application Development to Mobile Application Development
From Desktop/Web to Mobile: An Eight-Week Plan
Training Resources
About RapidValue
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Executive Summary
People rely on their smart phones, tablet devices and laptops for all kinds of activities. Consumers use their
mobile devices for shopping and entertainment, while professionals rely on them as extension of their
offices, to collaborate, engage with customers and get work done. As the power and capabilities of mobile
devices continue to grow, taking advantage of powerful new mobile applications and the unique capabilities
of mobile devices become even more valuable.
Many desktop/web developers (and their organizations) are eager to participate in the mobile revolution.
RapidValue has been approached many times by desktop/web developers and CIOs, asking if they can
transfer their existing desktop skills (or those of their staff) to mobile application development. We’ve creat-
ed this paper to help them get started.
This paper provides a guide for enterprise desktop/web developers who are interested in becoming mobile
developers. The paper examines the main technologies that desktop/web developers use today (Java, .NET
and HTML) and various mobile development technologies (mobile web applications, native apps and
cross-platform development frameworks. The paper also addresses the migration path depending on a
developer’s current skill set and the mobile platform(s) you want your applications to run on.
In many cases, desktop/web developers already have a strong foundation to become successful mobile
developers. We’ll look at the additional skills and knowledge they need to acquire, the differences between
developing for desktop/web and mobile environments, as well as the requirements for specific platforms.
We’ll also examine resources that are available to help your desktop/web developers make a smooth and
cost-effective transition.
Definition: Enterprise desktop/web developers are those who build applications to be accessed via PC/Desktop. The application is either accessed through web
browser or is installed on the system.
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
What Skills Do Desktop/Web Developers Have?
– Web or “thin client” applications primarily execute on a remote server, with the user engaging with
them through their browser (e.g. Google Gmail).
– Desktop or “thick client” applications are installed on each device and execute on the device (e.g.
Microsoft Outlook).
– Java Enterprise Edition (J2EE) for developing web applications
– Java Standard Edition (JSE) for developing thick client desktop applications
– Spring is an open source application framework and inversion of control container for the Java
– Hibernate is an object-relational mapping (ORM) library for the Java language, providing a framework
for mapping an object-oriented domain model to a traditional relational database. Hibernate solves
object-relational impedance mismatch problems by replacing direct persistence-related database
accesses with high-level object handling functions.
There are two main types of enterprise applications:
Most enterprises use both.
A number of technologies can be used for building both types of applications. The most popular are Java,
.NET and HTML for both thin and thick client applications.
Most enterprises have developers who are familiar with Java, .NET or HTML for building their solutions.
These developers will also know the software stack and frameworks associated with each platform. Because
of their popularity and their applicability to mobile, these are the platforms we will address in this
There are also application development frameworks such as Spring
and Hibernate
which are most popular
for enterprise Java developers. These run on top of Java, and are used for building web and thick client
Java has two main flavors used to develop desktop and web applications:
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Microsoft .NET
The second part of the desktop/web development world is Microsoft’s .NET Framework. .NET
is a software
framework developed by Microsoft that runs primarily on Microsoft Windows. It includes a large library and
provides language interoperability (each language can use code written in other languages) across several
programming languages. Programs written for .NET Framework execute in a software environment known as
Common Language Runtime (CLR), an application virtual machine that provides services such as security,
memory management, and exception handling. The class library and the CLR together constitute the .NET
Web applications for the .NET Framework are developed using ASP.NET, while native applications are
developed using Windows Presentation Framework (WPF) and C#.
HyperText Markup Language (HTML)
is the main markup language for creating web pages and other infor-
mation that can be displayed in a web browser.
HTML has gone through a number of revisions and experienced a variety of extensions. The most recent
version used is HTML5, which is also an attempt to define a single markup language that can be written in
either HTML or XHTML syntax. It includes detailed processing models to encourage more interoperable
implementations; it extends, improves and rationalizes the markup available for documents, and introduces
markup and application programming interfaces (APIs) for complex web applications. HTML5 has also been
built with consideration for low-powered devices such as smart phones and tablets.
– ASP.NET is a server-side Web application framework designed for Web development to produce
dynamic Web pages
– WPF is a computer-software graphical subsystem for rendering user interfaces in Windows-based
– C# is a multi-paradigm programming language encompassing strong typing, imperative, declarative,
functional, generic, object-oriented (class-based) and component-oriented programming disciplines
Source: Wikipedia definitions
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
What Skills Do Mobile Developers Need?
Mobile applications can be developed in three fundamental ways: mobile web, native or cross- platform.
Each approach requires different skill sets. Mobile technology is also more fragmented compared to desktop,
with four main platforms, each with multiple form factors, screen sizes, etc.
The application is built to run over the internet from a central server, from where it can be accessed by any
device with a web browser.
Mobile Web App
– JavaScript
The application is built in its native code to run on a specific device and operating system. The app is down-
loaded from an app store and resides on the device.
Native Apps
– iPhone and iPad: Objective C
– BlackBerry: Java technologies
– Android: Java technologies
– Windows tablet and Windows phone: .NET / C# using the Microsoft Windows tablet SDK
The application is built once using a cross-platform framework and run it on multiple mobile platforms after
fine-tuning for each platform. The application is downloaded from an app store and resides on the device.
Cross-Platform Frameworks
Technologies used with leading frameworks:
– Appcelerator: JavaScript, HTML
– PhoneGap: JavaScript, HTML
– IBM Worklight: JavaScript, HTML
– RhoMobile: Ruby on Rails
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Mobile Development Options
Due to differences in underlying technology, each development approach has inherent advantages,
drawbacks and appropriate use cases. Careful analysis is required to ensure that an application is built using
the right technology for the functionality required. The following table summarizes the different approaches:
– iPhone SDK
– Android SDK
– Windows Phone SDK
and Tools
Native Cross-Mobile Platforms Mobile Web
Build the app using native
– RhoMobile
– Titanium Appcelerator
– PhoneGap
– Worklight
– Etc.
– Sencha
– JQuery Mobile
– Etc.
Build once, deploy on multiple
platforms as native apps:
Build using web technologies:
– iPhone: Objective C
– Android: Java
– Windows Phone: .NET
– RhoMobile: Ruby on Rails
– Appcelerator: JavaScript, HTML
– PhoneGap: JavaScript, HTML
– Worklight: JavaScript, HTML
– JavaScript, HTML
App stores App stores Over the webDeployment
– Apps requiring high-end
user experience, more
transactional in nature
– Large user base on one
device (e.g. physicians with
– Offline usage
– Apps requiring extensive
device and/or OS

– Generic user experi-
ence, performance
depends on Internet
– Distributed user base
across smart phone
– Need to maintain single
code base
– Moderate amount of
device functions
– Simpler apps, more
informational in nature
– Offline Usage
– Multiple device types
distributed across key users
– Works well for a number of
enterprise applications that do
not require heavy device
Key Use Cases
For more information about the different development options, please refer to the RapidValue Whitepaper
“How to Choose the Right Architecture for Your Mobile Application”
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
The Mobile Mindset-Factors to Consider
Developing for a mobile device platform is not just a technology change; it requires a different mindset and
new design skills. There are certain important factors which developers need to consider that are inherent to
smart phones and other mobile devices, including:
– Device Fragmentation
– Screen size
– Screen density
– User experience
– Memory capacity
– Battery life
Multiple Platforms and Devices
Traditional desktop and laptop PCs are Windows-based with a standard screen size, features and form factor.
The mobile landscape is much more fragmented, with four main platforms (Android, iOS, Windows Phone
and BlackBerry) that are continually evolving.
Accordingly, building mobile applications requires more factors to consider when planning, including which
device platform to build first, what mobile technology option to choose, what capabilities should the mobile
phone support, and the need for a long-term roadmap with deployment on additional, next platforms. In
contrast to traditional Windows-based desktop development, mobile developers need to think about creating
application code for multiple platforms-Android, Windows Phone, iPhone and BlackBerry. Designing an
application that is optimized for various devices with different screen densities and screen sizes is even more
Screen Size
User Interaction
Enterprise applications designed for a desktop or laptop client work with a screen size that far exceeds that
of mobile devices. How to design for a device that fits in your pocket requires simplification and a rethink
about navigation. While a desktop application may have tabs, options and links on all sides of the screen
and in line with text, for mobile you need to concentrate on the immediate function, reducing the number of
options to only those needed for the immediate task or feature.
Instead of a mouse and keyboard, there is a quite different mode for user input: touch. Even a single touch
can involve a variety of interactions, including single-tap, double-tap, long touch, move and fling. All these
actions have to be captured.
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Desktop PCs and laptops provide keyboards for data entry, allowing comfortable, fast typing with both hands
and all fingers. Since mobile devices do not have that capability, even those with keyboards, manual data
entry should be minimized. Instead, wherever possible, provide options for selecting instead of asking for
specifics through data entry.
Unlike clicking links with a mouse, tapping links using your fingers on a touchscreen mobile device is not
easy. Users can easily activate a link they did not intend to tap and accidentally land on an undesired page.
Bigger bars, tabs or buttons let users tap with more precision.
Smart phones are sophisticated communication devices. Making phone calls is their most basic function.
While mobile platforms place many limitations on design and content, they also open up new opportunities
that traditional desktops cannot provide. For example, integration with phone functions such as direct calling
and text messaging lets users select a phone number from a list, then call or text that number without
having to type it.
Another example: capabilities such as GPS can be integrated into location based services like mobile search.
Many mobile devices can automatically detect user presence and provide them with local search results,
creating powerful opportunities for businesses to promote their offerings based on a person’s proximity to
their place of business and their immediate intent.
Mobile devices lack the computing power and memory capacity of most desktop and server systems. Devel-
opers need to write algorithms and perform code optimization to support the mobile device capacity. For
example, 1 GB of memory is a constraint in mobile phones which is not found in today’s desktop applica-
That’s not quite the same as far as the phones go. Devices available from different manufacturers vary from
120 dpi for the lower-end HTC Tattoo / Wildfire and 240 dpi for the higher end Droid series—a difference of
100% in screen density. This means that using hardcoded values for pixels and a single set of images will
lead to one of two things on a higher end phone: either your UI will be up-scaled and fuzzy, or the controls
will be too small to allow comfortable targeting with a finger. Therefore you need to bundle multiple
resolution images and use display metrics to scale your custom drawing code.
Screen Density
Integration with Phone Functions
Limited CPU/Memory/Battery Resources
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Another issue that enterprise applications do not have to address is battery life. With enterprise applications,
you can have complex algorithms running on the server because there are no battery constraints. But when
it comes to mobile, a complex algorithm or suboptimal code will drain the battery quickly. When designing
algorithms, developers need to think about battery consumption, and design for optimal usage.
There is another approach to building applications which works efficiently across multiple device
types including desktops, mobile phones and tablets. The RapidValue whitepaper “Responsive Web
Design vs. Mobile Web App—What Approach Is Best for Your Enterprise?” explains the difference
between Mobile Web App and Responsive Web Design, and provides a framework for resolving
some of the key questions decision makers have. These questions include what factors to consider
when choosing between Responsive Web Design and Mobile Web App, and what types of industries
Responsive Web Design is most suitable for.
As the paper guides you in how to make the right choice, it draws upon RapidValue’s experience
helping enterprises succeed in the complex and evolving mobile ecosystem. Download the
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Migration Paths-Desktop/Web Application
Development to Mobile Application Development
From Desktop/Web to Mobile: An Eight-Week Plan
Desktop/web developers can map their skill sets to mobile technology. The following are typical migration
Current Development Languages/ Platforms
JavaScript, HTML
Migrate to Mobile Technology
Mobile Web App (HTML5),Cross-platform Mobile Apps (PhoneGap,
Appcelerator, Worklight)
Native Apps (Android, BlackBerry)Java
Native Apps (Windows Phones, Windows Tablets).Net, C#
Native Apps (iPhone, iPad)Objective C
Cross-platform Mobile Apps (Rhomobile)Ruby on Rails
iBuildApp (iOS)C# using Mono Framework
– How to design for
– Android devices
– Device versions
– Factors such as
memory, battery
life, screen size,
etc. of the devices
Migration Path
Java to Android
Week 1 Week2 Week3 Week4 Week5 Week6 Week7 Week8
Learn the platform fundamentals.
(Refer to the detailed Android
syllabus in the next section.)
Starting with the
POC (Proof Of
Concept), build a
dummy application
and test
Various training programs, online tutorials, study materials, resources and learning tools are available for
each mobile platform to help desktop/web developers acquire the skills they need. The following sections
provide more details about these learning resources.
This plan assumes you are a desktop/web developer with good knowledge in Java or .NET. This section
illustrates two scenarios: 1) how a Java developer can become an Android application developer in eight
weeks and 2) how a .Net developer can become a mobile application developer for iOS devices in eight
A RapidValue Solutions Whitepaper April - 2013
– How to design for
– iOS devices
– Device versions
– Factors such as
memory, battery
life, screen size,
etc. of the iOS
.Net to iOS
Learn the platform fundamentals.
(Refer to the detailed iOS syllabus in
the next section.)
Starting with the
POC (Proof Of
Concept), build a
dummy application
and test
The following syllabus will help enterprise desktop/web developers learn what they need to know to build
applications for Android and iOS devices.
Android Devices
Application Structure (in detail)
Emulator – Android Virtual
– What is Android?
– Setting up the development environment
– Dalvik virtual machine and .apk file extension
– Fundamentals
– Resources and
– Assets
– Android training course syllabus
– ipsr solutions
– ltdValues
– strings.xml
– Layouts and drawable resources
– Activities and activity lifecycle
– First sample application
– Deploying sample application on a real device
– Launching emulator
– Editing emulator settings
– Emulator shortcuts
– Android API levels (versions and version names)
– AndroidManifest.xml
– Basic building blocks: activities, services, broadcast receivers and content providers
– UI components: views and notifications
– Components for communication: intents and intent filters
– Uses-permission and uses-SDK
– Activity/services/receiver declarations
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
Basic UI design
Menu and Preferences
UI Design
SQL Lite Programming
– Logcat usage
– Introduction to DDMS
– File explorer
– Second app (switching between activities)
– Shared preferences
– Preferences from xml
– Option menu
– Context menu
– Sub menu
– Android training course syllabus
– ipsr solutions
– ltd menu from xml menu via code
– SQLiteOpenHelper
– SQLiteDatabse
– Cursor
– Content providers
– Defining and using content providers
– Example: sharing database among two different applications using content providers
– Reading and updating contacts
– Reading bookmarks
– Time and date
– Images and media
– Composite
– AlertDialogs and Toast
– Popup
– Tabs and TabActivity
– styles.xml
– colors.xml: declaring colors and drawables
– Drawable resources for shapes, gradients (selectors)
– Shapes drawables
– State drawables
– Transition drawables
– 9 Patch drawables
– Style attribute in layout file
– Applying themes via code and manifest file
– Examples
– Form widgets
– Text Fields
– Layouts
– Develop an app for demonstrating the communication between intents
– RelativeLayout ,TableLayout, FrameLayout, LinearLayout
– Nested layouts [dip,dp,sip,sp] versus px
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
Adapters and Widgets
Advanced Topics
– Adapters
– Broadcast receivers
– Services and notifications
– Toast
– Alarms
– Custom Toast
– Custom dialogs
– Custom Tabs
– Custom animated popup panels
– Other components
– Threads running on UI thread (runOnUiThread)
– Worker thread
– Handlers and Runnable
– AsynTask (in-detail)
– Example: Efficient Adapter
– ListView and ListActivity
– Custom listview
– GridView using adapters
– Gallery using adapters

– ArrayAdapters
– BaseAdapters
Enabling Mobility
iOS Devices
UI Design
– Traditional vs. iPhone development
– Capabilities
– Constraints
– Phone software architecture
– Setting up iPhone app development
– Pointers
– Arrays
– String operations
– malloc, calloc
– Data structures
– Examples and Lab
– Creating projects in Xcode
– Organization of your project
– Interface Builder
– Learning the basics of Nib file
– Working with Objective-C, Cocoa, Interface Builder and Xcode
– The MVC pattern
– Learning the model, the controller and the view
– Cocoa Touch
A RapidValue Solutions Whitepaper April - 2013
Device Capabilities
– Basic UI Controls
– Basics of user interaction
– Delegation
– Taking keyboard inputs
– Handling events
– Selecting table items
– Editing table items
– Searching a table
– Navigation
– Various UI controls
– Using labels, buttons, sliders
– Working with alerts
– Working with multiple views
– Issues with long running tasks
– Multiple threads
– Issues with threading and UI
– NSOperation
– NSQueue
– Creating a responsive application
– Tabs
– Pickers
– Table views
– Tapping
– Tracing touches
– Multi-touch gestures
– Playing video
– Audio recording and playing
– Camera
– Accelerometer
– GeoLocation
– Application sandbox
– Data storage and archiving
– Navigating the file system
– Reading and writing files
– Working with database
– Core data
– Connecting to the internet
– Working with Web Services
– Understanding settings
– Working with Settings Bundle
– Securing settings
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
Training Resources
The following table lists some useful resources for desktop/web developers to get started with building
applications on platforms such as Mobile Web, iOS, Android, BlackBerry and Windows Phone.
Resource Description URL
This course teaches developers how to
build mobile apps for Android and iOS,
and how to deploy them in Android
Market and the App Store. Developers
learn how to write native apps for
Android using Eclipse and the Android
SDK, how to write native apps for
iPhones, iPod touches and iPads using
Xcode and the iOS SDK, and how to write
web apps for both platforms.
How to Build Mobile Applications for
iOS and Android by Dan Armendariz
and David J. Malan, Instructors at
Harvard Extension School
This audio podcast explains the tools and
APIs (updated for iOS 5) required to
build applications for the iPhone and iPad
platform using the iOS SDK. Topics
covered include user interface designs for
mobile devices, unique user interactions
using multi-touch technologies and
object-oriented design using the
model-view-controller paradigm, memory
management and the Objective C
programming language. Other topics
include the object-oriented database API,
animation, multi-threading and perfor-
mance considerations
iPhone and iPad Development
by Paul Hegarty from Stanford
These videos from the Google I/O
conference cover 90+ sessions featuring
in-depth content about a number of
technologies and developer products.
Mobile Application Development on
Android Platform by Google
This course presents an introduction to
the design and construction of software
systems using techniques that view a
system as a set of objects that work
together to realize the system's function-
ality. Includes examples of object-orient-
ed systems written in Java, Python, Ruby
and Objective-C. It also explains the
Android and iOS frameworks as examples
of large-scale, modern frameworks used
by developers worldwide.
Object-Oriented Analysis and
Design Learning Material by Ken
Anderson, Associate Professor and
Associate Chair of the Department
of Computer Science, University of
Colorado, Boulder
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
A quick guide to building Windows
mobile applications. Developers can
reuse their existing Visual Studio and
.NET development skills and server
infrastructure to extend their applications
to mobile devices.
Windows Mobile Applications
Fundamentals by Microsoft
A guide to creating application for
BlackBerry tablets. The tutorial guides
developers to:
Tutorial: Creating your First
Application by BlackBerry Developer
Forum(HTML5 Web Works)
Lessons on how to use basic platform
features that leverage alternative
resources and other features so that an
app can provide an optimized user
experience on a variety of Android
compatible devices, using a single
application package (APK)
A Guide for Android Developers by
Android Developer Forum
iOS Development Center—technical
resources for developing innovative apps
for iOS
Developer’s Guide to Design, Code,
Build, Innovate by Apple
PhoneGap is a free and open source
framework that allows developers to
create mobile apps using standardized
web APIs for various platforms. This
guide helps developers easily create apps
using web technologies (HTML, CSS and
User Guide to Build Cross-platform
Apps Using Web Technologies by
A developer’s guide which includes
documents on Titanium SDK and
Titanium Studio:
Quick Start Guide for Building
Cross- platform Mobile Apps Using
the Titanium Platform by
– Create a basic web application that
uses JavaScript, HTML5 and CSS
– Create a button that triggers an
– Retrieve the GPS coordinates for
the user's location
– Run and test the application on
the Ripple emulator
– Set up and create a BlackBerry
WebWorks configuration document
– Package the application using the
Ripple emulator
– Launch the application on the
BlackBerry Tablet Simulator
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
A quick start guide for this touch-opti-
mized UI framework built with jQuery
and HTML5. jQuery Mobile can be used
to build sites and apps that are accessi-
ble on all popular smartphone, tablet and
desktop devices.
Build Mobile Web Applications
using jQuery Mobile
A cross-platform application development
tool which provides an open,
comprehensive and advanced mobile
application platform for smart phones
and tablets, helping organizations of all
sizes efficiently develop, connect, run
and manage HTML5, hybrid and native
applications. The platform consists of a
comprehensive development
environment, mobile-optimized middle-
ware and an integrated management and
analytics console, supported by a variety
of security mechanisms.
Worklight Mobile Application
Platform by IBM
A user guide to build mobile web apps
using Sencha 2.0. It also includes API
documents for developers.
Develop Mobile Web Applications
using Sencha 2.0
Tutorials for developers to build cross-
platform applications using the Xamarin
development platform.
Develop Cross- platform Apps
Using C# and .Net Technology
– The Titanium SDK lets you develop
native, hybrid and mobile web
applications from a single
– Titanium Studio is an extensible,
Eclipse-based IDE for building
Titanium applications and web
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
With the wide popularity of smart phones and mobile applications, enterprise developers in many companies
are looking to contribute to the mobile revolution. This revolution is influencing many companies to shift
towards a “Mobile First, Desktop Second” strategy for their business. However, the shift from desktop to
mobile requires developers to refocus-not completely away from desktop application development, but
certainly with an inclination towards mobile.
Enterprise desktop/web developers within an organization who are interested in becoming mobile
developers need to understand that developing for mobile is not just a technology change; it requires
acquiring a different mindset and new design skills. There are certain hurdles for enterprise developers to
overcome and several important factors to consider when building applications on mobile platforms. Some of
these factors are fragmentation, screen size, resolution, user experience, memory space, battery life and
capabilities inherent to smart phones and other mobile devices.
RapidValue has a team of domain experts and mobility consultants to help you build innovative and
comprehensive mobile applications for your enterprise. If you’d like more information on this topic or need
guidance on building your first mobile application, please contact us at
A RapidValue Solutions Whitepaper April - 2013
Enabling Mobility
Mobility Information Series – Jan 2013
About RapidValue
RapidValue is a leading provider of mobility solutions to enterprises worldwide. Armed with a team of 175+
experts in mobility consulting and application development, along with experience delivering over 200
mobility projects, we offer a range of mobility services across industry verticals. RapidValue delivers its
services to the world’s top brands and Fortune 1000 companies, and has offices in the United States and
+1 877.690.4844
Enabling Mobility
A RapidValue Solutions Whitepaper April - 2013