Migration Paths-Desktop/Web Application Development to Mobile Application Development

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.

Migration Paths-Desktop/Web Application Development to Mobile Application Development

Desktop/web developers can map their skill sets to mobile technology. The following are typical migration paths:

Current Development Languages/ Platforms Migrate to Mobile Technology
JavaScript, HTML Mobile Web App (HTML5),Cross-platform Mobile Apps (PhoneGap, Appcelerator, Worklight)
Java Native Apps (Android, BlackBerry)
.Net, C# Native Apps (Windows Phones, Windows Tablets)
Objective C Native Apps (iPhone, iPad)
Ruby on Rails Cross-platform Mobile Apps (Rhomobile)
C# using Mono Framework iBuildApp (iOS)

Desktop/Web to Mobile Migration

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.

From Desktop/Web to Mobile: An Eight-Week Plan

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 weeks.

Migration Path Week 1 Week 2 Week 3 Week 4 Week 5 Week 6 Week 7 Week 8
Java to Android Learn the platform fundamentals.(Refer to the detailed Android syllabus in the next section.) Learn:

  • How to design for performance
  • Android devices
  • Device versions
  • Factors such as memory, battery life, screen size, etc. of the devices
Starting with the POC (Proof Of Concept), build a dummy application Completely review and test the dummy application
.Net to iOS Learn the platform fundamentals. (Refer to the detailed iOS syllabus in the next section.) Learn:

  • How to design for performance
  • iOS devices
  • Device versions
  • Factors such as memory, battery life, screen size, etc. of the iOS devices
Starting with the POC (Proof Of Concept), build a dummy application Completely review and test the dummy application

Syllabus

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 Session
Introduction
  • What is Android?
  • Setting up the development environment
  • Dalvik virtual machine and .apk file extension
  • Fundamentals
    • Basic building blocks: activities, services, broadcast receivers and content providers
    • UI components: views and notifications
    • Components for communication: intents and intent filters
  • Android API levels (versions and version names)
Application Structure (in detail)
  • AndroidManifest.xml
    • Uses-permission and uses-SDK
    • Activity/services/receiver declarations
  • Resources and R.java
  • 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
Emulator – Android Virtual Device
  • Launching emulator
  • Editing emulator settings
  • Emulator shortcuts
  • Logcat usage
  • Introduction to DDMS
  • File explorer
  • Second app (switching between activities)
    • Develop an app for demonstrating the communication between intents
Basic UI design
  • Form widgets
  • Text Fields
  • Layouts
    • RelativeLayout ,TableLayout, FrameLayout, LinearLayout
    • Nested layouts [dip,dp,sip,sp] versus px
Menu and Preferences
  • Shared preferences
  • Preferences from xml
  • Option menu
  • Context menu
  • Sub menu
  • Android training course syllabus
  • ipsr solutions
  • ltd menu from xml menu via code
UI Design
  • 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
SQL Lite Programming
  • 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
Adapters and Widgets
  • Adapters
  • Example: Efficient Adapter
  • ListView and ListActivity
  • Custom listview
  • GridView using adapters
  • Gallery using adapters
Advanced Topics
  • 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)
iOS Devices Session
Introduction
  • 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
UI Design
  • 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
  • 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
Device Capabilities
  • 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

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
How to Build Mobile Applications for iOS and Android by Dan Armendariz and David J. Malan, Instructors at Harvard Extension School 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. http://cs76.tv/2011/spring/
iPhone and iPad Development by Paul Hegarty from Stanford University 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 performance considerations https://itunes.apple.com/us/itunes-u/ipad-iphone-application-development/id473757255?ls=1
Mobile Application Development on Android Platform by Google These videos from the Google I/O conference cover 90+ sessions featuring in-depth content about a number of technologies and developer products. http://www.google.com/events/io/2010/sessions.html
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 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 functionality. Includes examples of object-oriented 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. http://www.cs.colorado.edu/~kena/classes/5448/s11/lectures/
Windows Mobile Applications Fundamentals by Microsoft 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. http://msdn.microsoft.com/en-us/windowsmobile/bb264318.aspx
Tutorial: Creating your First Application by BlackBerry Developer Forum(HTML5 Web Works) A guide to creating application for BlackBerry tablets. The tutorial guides developers to:

  • Create a basic web application that uses JavaScript, HTML5 and CSS
  • Create a button that triggers an event
  • 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 (config.xml)
  • Package the application using the Ripple emulator
  • Launch the application on the BlackBerry Tablet Simulator
https://developer.blackberry.com/html5/documentation/tutorial_create_first_app_intro_1969476_11.html
A Guide for Android Developers by Android Developer Forum 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) http://developer.android.com/training/basics/supporting-devices/index.html
Developer’s Guide to Design, Code, Build, Innovate by Apple iOS Development Center—technical resources for developing innovative apps for iOS https://developer.apple.com/
User Guide to Build Cross-platform Apps Using Web Technologies by PhoneGap 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 JavaScript). http://phonegap.com/
Quick Start Guide for Building Cross- platform Mobile Apps Using the Titanium Platform by Appcelerator A developer’s guide which includes documents on Titanium SDK and Titanium Studio:

  • The Titanium SDK lets you develop native, hybrid and mobile web applications from a single codebase
  • Titanium Studio is an extensible, Eclipse-based IDE for building Titanium applications and web applications
http://docs.appcelerator.com/titanium/latest/http://msdn.microsoft.com/en-us/windowsmobile/bb264318.aspx
Worklight Mobile Application Platform by IBM 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 middleware and an integrated management and analytics console, supported by a variety of security mechanisms. http://www-01.ibm.com/software/in/worklight/
Build Mobile Web Applications using jQuery Mobile A quick start guide for this touch-optimized UI framework built with jQuery and HTML5. jQuery Mobile can be used to build sites and apps that are accessible on all popular smartphone, tablet and desktop devices. http://jquerymobile.com/demos/1.2.0/http://www.motorola.com/Business/US-EN/Business+Product+and+Services/Software+and+Applications/RhoMobile+Suite
Develop Mobile Web Applications using Sencha 2.0 A user guide to build mobile web apps using Sencha 2.0. It also includes API documents for developers. http://docs.sencha.com/touch/2-0/
Develop Cross- platform Apps Using C# and .Net Technology Tutorials for developers to build cross- platform applications using the Xamarin development platform. http://xamarin.com/monotouch
Advertisements
By Sriramjithendra Posted in Others

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s