T20121
Architecting Mobile Applications
This is a course focusing on patterns and practices of cross-platform and cross-device development. We will be working with examples in iPhone, Android and Windows Phone 7
The course in Gothenburg is delivered via Informator Remote
Overview:
Mobile refers to a variety of platforms each with its own set of capabilities and features and each requiring significantly different skills: different operating systems, different programming languages, different APIs and even different computers. At the same time, a mobile application is notably different from a Web or desktop application. It is relatively simpler as far as logic is concerned, but more sophisticated and complex for resource management, data entry, sensors, data storage and life cycle. Each operating system then has its own set of development guidelines and a proprietary deployment model.
Format:
On top of the frontal presentations, the class uses numerous conceptual demos and excerpts from sample applications.
Audience:
The class is for developers willing to become mobile developers regardless of the platform. The class is also useful to managers looking for an overview of the basic facts (and tools/frameworks) of mobile development today
Author


Dino Esposito is the author of "Programming ASP.NET MVC" for Microsoft Press as well as "Programming ASP.NET 4" and other bestselling books such as "Microsoft ® .NET: Architecting Applications for the Enterprise". Regular contributor to MSDN Magazine and DevProConnections Magazine, Dino is a frequent speaker at industry events all over the world including Microsoft TechED, DevConnections, and premiere European events such as DevWeek and BASTA.
Course outline:
Strategies for mobile development
- Choosing a target platform
- Writing a mobile Web site
- Using JavaScript
- Using jQuery Mobile
- WURFL and device fragmentation
Aspects of a mobile application
- Integrate with the system and other applications
- Interruptible
- Storage (and shortage of)
- External notifications
- Internet connectivity (and costs of)
- Online/offline behavior
- Interaction with sensors
- Minimizing user interaction
- Storing sensitive and valuable data
- Security
- Geolocation
Features of a classic mobile application
- Splash screen and loading
- User experience: menus vs. wizards
- Client side storage and user settings
- Interaction with local applications
- Multitasking
- Organization of data and presentation
Building an Android Application
- Application loading
- Events and the user interface
- Menu
- Storage
- Connectivity
- Sensors
- Multitasking
- Deployment
Building a Windows Phone 7 Application
- Application loading
- XAML and MVVM
- Isolated storage
- Hydration and dehydration
- Launchers and choosers
- Network API
- Sensors
- Deployment
Building an iPhone Application
- Understanding how an application runs
- Events and the user interface
- Storage
- Connectivity
- Sensors
- Multitasking
- Deployment
More about the course
The class comes as a quick but juicy guide to the issues you may be facing during the development of a mobile project for one or multiple platforms. The class starts with the analysis of the various types of mobile solutions-Web sites, Web sites optimized for mobile devices, native mobile applications-and proceeds with the identification of a few design patterns common to all mobile applications and technologies available on the various platforms. Predictive fetch, offline behavior, mobile-aware service layer, save-the-tap, sensitive-data storage are just a few of the patterns being discussed and implemented. A lot of emphasis is put on mobile sites and frameworks and techniques to accurately detect browser capabilities. We'll discuss the role of WURFL (the framework being used by Facebook) and compare that to detection capabilities in ASP.NET.
Furthermore, the class offers an overview of mobile development for the three major platforms-iPhone/iPad, Android and Windows Phone 7. In particular, we'll build the same application for the three platforms discussing tools, frameworks, practices, and illustrating architectural and structural differences. After taking this class, you probably won't be a super-expert in any of those platforms but you'll know enough to start producing code on any of them. You'll also know enough to advise your customers and help them define effective mobile strategies for their business.