Harnessing Technology to make education free

Saylor.org / ePortfolio / Our content is 89% complete

0% Mobile Applications Development

Purpose of Course

Technology continues to evolve and provide us with increasingly powerful mobile devices.  As a result, nowadays, applications that can run on a browser must also be written such that they are compatible with mobile devices, the majority of which are now web-enabled.  Meanwhile, there is an increasing demand for native applications that can be downloaded to and run on mobile devices.  This course will address these trends, teaching you to think about the unique design and deployment issues that must be taken into consideration when developing applications for mobile devices.

This course will expand upon what has been covered in CS305: Web Development.  We will specifically look at the tools used to design mobile applications.  We will learn about mobile platforms, mobile browsers, native applications, and best practices in terms of test usability.

Learning Outcomes

Preliminary Information

Course Overview Expand Resources Collapse Resources

Unit Outline show close

  • Unit 1: Introduction to Mobile Application Development  

    In this unit, we will take a broad look at mobile application development.  We will learn about the different types of mobile devices, from mobile computers to smartphones, and will compare web-based applications to native applications.  Finally, we will study methods of transport as well as Internet protocols for mobile applications.

  • 1.1 Definition of Mobile Computing  
  • 1.2 Devices  
  • 1.2.1 Mobile Computers  
  • 1.2.2 SmartPhones  
  • 1.2.3 Dedicated Devices  
  • 1.2.4 Pervasive Computing  
  • 1.3 Web-Based Applications  
  • 1.3.1 Runtime Environments  
  • 1.4 Native Applications  
  • 1.5 Methods of Transport  
  • 1.5.1 Internet  
  • 1.5.2 Telephone Network  
  • 1.6 History of Mobile Platforms  
  • 1.6.1 PDAs  
  • 1.6.2 Netbooks  
  • 1.6.3 Smartphones  
  • 1.7 Internet Protocols for Mobile Apps  
  • 1.7.1 WAP 1.0  
  • 1.7.2 WAP 2.0  
  • 1.8 Content vs. Applications  
  • 1.8.1 HTML  
  • 1.8.2 Java  
  • 1.8.3 Flash  
  • 1.8.4 Evolution of browsers  
  • Unit 2: Infrastructure  

    In this unit, we will look at the mechanics that enable web-based mobile applications to run.  We will first start with basic networking capabilities, such as how a device connects to the Internet and then discuss routing and proxies.  We will also learn how a browser on a mobile device accesses the network and how a server receiving a request routes it to the appropriate logic in order to process that request.  

  • 2.1 Mobile and Cell Phone Technologies  
  • 2.1.1 CDMA  
  • 2.1.2 GSM  
  • 2.1.3 3-G  
  • 2.1.4 Sub Technologies  
  • 2.1.5 Cell Phone Traffic  
  • 2.2 Internet Connectivity  
  • 2.3 Internet Terms  
  • 2.3.1 IP Address  
  • 2.3.2 Subnet mask  
  • 2.3.3 Gateway  
  • 2.3.4 DNS  
  • 2.3.5 Static vs. dynamic  
  • 2.4 Transport  
  • 2.4.1 HTTP  
  • 2.4.2 Routing  
  • 2.5 Secure Connections  
  • 2.6 Proxies  
  • 2.7 Reverse Proxies  
  • Unit 3: HTML/CSS/DOM and Scripting  

    This unit will review some of the material that was covered in CS305: Web Development, such as HTML, CSS, the Document Object Model, and JavaScript.  This unit will be helpful to those students who have not taken CS305 and will provide a refresher for those whose skills are rusty in these areas.  We will look at basic web page design using HTML and review how cascading style sheets are used.  The unit will conclude with a basic overview of JavaScript.

  • 3.1 HTML  
  • 3.1.1 Structure – DTD  
  • 3.1.2 Validation  
  • 3.1.3 Rendering  
  • 3.1.4 Web Browsers and differences  
  • 3.2 Cascading Style Sheets (CSS)  
  • 3.2.1 Definition  
  • 3.2.2 Properties  
  • 3.2.3 Inheritance  
  • 3.3 Document Object Model (DOM)  
  • 3.3.1 How Browser Handles HTML  
  • 3.3.2 Basic Definitions  
  • 3.3.2.1 Document  
  • 3.3.2.2 Objects  
  • 3.3.2.3 Model  
  • 3.3.3 DOM Tree  
  • 3.4 JavaScript  
  • 3.4.1 Uses  
  • 3.4.2 Basic Constructs  
  • 3.4.2.1 Variables  
  • 3.4.2.2 Strings  
  • 3.4.2.3 Arrays  
  • 3.4.2.4 Objects  
  • 3.4.3 Functions  
  • 3.4.4 Control Structures  
  • 3.4.5 Looping  
  • 3.4.6 Modes of Execution  
  • 3.4.6.1 Embedded in HTML  
  • 3.4.6.2 Separate File Called from HTML  
  • Unit 4: JQuery and Structured Data  

    In this unit, we will take a brief look at JQuery, a mechanism for direct access to the document object model within a script.  Since mobile applications often need to interact with a service, we will also look at how data between the service and the mobile application is exchanged using either Extensible Markup Language (XML) or JavaScript Object Notation (JSON).  We will compare and contrast both formats.

  • 4.1 JQuery  
  • 4.1.1 Overview  
  • 4.1.2 Old JavaScript Events vs. JQuery  
  • 4.1.3 Events in JQuery  
  • 4.1.4 Event Listeners  
  • 4.1.5 AJAX with JQuery  
  • 4.2 JavaScript and XML  
  • 4.3 XML  
  • 4.3.1 Data vs. Content  
  • 4.3.2 Structure  
  • 4.3.2.1 Elements  
  • 4.3.2.2 Tags  
  • 4.3.2.3 Attributes  
  • 4.4 JavaScript Object Notation (JSON)  
  • 4.4.1 Description  
  • 4.4.2 Object Notation  
  • 4.4.3 JSON vs. URI Parameter  
  • 4.5 Examples of XML and JSON  
  • Unit 5: Scripting with Server Access  

    Thus far in this course, we have taken a brief look at scripting from the client side.  We will now discuss scripting from the server side, which is more secure and offers increased functionality.  Asynchronous JavaScript and XML (AJAX) allow the server to access scripting code within Dynamic HTML through the use of an XMLHTTPRequest object.  In this unit, we will study AJAX and learn how it is implemented.  This is a particularly important consideration for mobile apps, since AJAX will enable data to be refreshed on a browser or application screen without requiring that the entire screen be refreshed.  In essence, the data is reloaded from the server based on user interaction.

  • 5.1 Overview  
  • 5.2 AJAX Mechanics  
  • 5.2.1 XMLHttpRequest Object  
  • 5.2.2 responseXML  
  • 5.2.3 Example  
  • 5.3 XMLHttpRequest Implementations by Browser  
  • 5.4 JavaScript Frameworks  
  • 5.5 Design Patterns  
  • 5.5.1 Semi-Joins  
  • 5.6 Recovery in Distributed Databases and the Commit Protocol  
  • 5.7 Concurrency Control  
  • 5.7.1 Locking Protocols  
  • 5.7.2 Time Stamping  
  • 5.8 Deadlock Handling  
  • 5.8.1 Centralized  
  • 5.8.2 Fully Distributed  
  • Unit 6: Designing Mobile User Interfaces  

    Since mobile devices have screen size and memory limitations, one must really think carefully before designing a user interface.  In this unit, we will discuss usability, learning how to ascertain what the user needs through task and contextual analysis.  We will then apply this information as we discuss various approaches to building good user interfaces.  The unit will also cover rapid prototyping and testing and will explain how all of the traditional UI design principles apply—to some degree—to mobile application development as well.   Finally, we will look at the different types of user interfaces for mobile devices.

  • 6.1 Definition of Usability  
  • 6.2 Steps to Building a Good User Interface  
  • 6.3 Task Analysis and Contextual Inquiry  
  • 6.4 Development Cycle  
  • 6.4.1 Rapid Prototyping  
  • 6.4.2 Evaluation  
  • 6.4.3 Iterative Process  
  • 6.5 Differences between Mobile Devices and Desktop Computers  
  • 6.5.1 What is the Same  
  • 6.5.2 What is Different  
  • 6.6 Mobile User Interface Types  
  • 6.6.1 Interactive Voice Response (IVR)  
  • 6.6.2 SMS/MMS  
  • 6.6.3 Mobile Web  
  • 6.6.4 Native Applications  
  • 6.6.5 Hybrids  
  • 6.7 Interactive Voice Response  
  • 6.8 Mobile Web  
  • 6.9 Converting to Mobile Apps  
  • 6.10 Mobile Application Development Design Considerations  
  • 6.10.1 Text Entry  
  • 6.10.2 Screen Size  
  • 6.10.3 User Interface  
  • 6.10.4 User Context  
  • Unit 7: Mobile Application Evaluation and Mobile Browsers  

    Once a mobile application has been developed, you will want to test it for usability.  In this unit, we will talk about ways of evaluating mobile apps.  We will also look at the differences between traditional browsers and mobile browsers and identify the elements that must be taken into consideration when designing an application for deployment on a mobile browser.

  • 7.1 Mobile Device User Interaction Patterns  
  • 7.1.1 Interaction Time  
  • 7.1.2 Spanning Devices  
  • 7.1.3 Mobile Security  
  • 7.2 Evaluating Mobile User Interfaces  
  • 7.2.1 Expert Evaluation  
  • 7.2.1.1 Cognitive Walkthrough  
  • 7.2.1.2 Heuristic Evaluation  
  • 7.2.2 User Evaluation in the Lab  
  • 7.2.2.1 Think out Loud Study  
  • 7.2.2.2 Performance Study  
  • 7.2.3 User Evaluation in the Field  
  • 7.2.3.1 Diary Study  
  • 7.2.3.2 Experience Sampling Method  
  • 7.2.3.3 Logging Study  
  • 7.3 Mobile Browsers and Browsers  
  • 7.4 Application Stores  
  • 7.5 Mobile Browser Evolution  
  • 7.5.1 Mobile Safari  
  • 7.5.2 Touch Web  
  • 7.5.3 CSS3  
  • 7.6 ACID Tests  
  • 7.6.1 DOM Traversal  
  • 7.6.2 DOM2 Core and DOM2 Events  
  • 7.6.3 DOM2 Views, DOM2 Style, CSS3 Selectors  
  • 7.6.4 HTML Forms  
  • 7.7 Developing Mobile Apps  
  • 7.7.1 Developing for One Platform  
  • 7.7.2 Least Common Denominator  
  • 7.7.3 Class-Based Development  
  • 7.7.4 Translation  
  • Unit 8: Mobile Platforms  

    In this unit, we will take a look at the differences between native and Web-based mobile applications.  We will discuss HTML5 as a means to fill the gap between native and Web-based mobile apps.  We will also learn about some hybrid approaches, such as PhoneGap, FlashLight, and JavaFX.

  • 8.1 URIs for Mobile Apps  
  • 8.1.1 One Web URIs  
  • 8.1.2 Mobile Web URIs  
  • 8.2 Native Runtime Platforms  
  • 8.2.1 Tightly Controlled (IPhone)  
  • 8.2.2 Open (Android)  
  • 8.2.3 Licensed (Windows Mobile)  
  • 8.3 Crostt Platform Development  
  • 8.4 Web as a Platform  
  • 8.5 HTML5  
  • 8.5.1 Features  
  • 8.5.2 Missing Components  
  • 8.5.2.1 Access to Device Hardware  
  • 8.5.2.2 Graphics  
  • 8.6 Hybrid Runtime Environments  
  • 8.6.1 Browser-embedded Environments  
  • 8.6.2 Standalone (Flash)  
  • 8.6.3 Compiled  
  • Unit 9: Storage and Geolocation  

    In this unit, we will learn how mobile applications store persistent data.  We will also look at how applications that utilize device location are developed.

  • 9.1 Need for Storage  
  • 9.1.1 Better Data  
  • 9.1.2 Meaningful Offline Apps  
  • 9.1.3 Types of Data  
  • 9.2 Local Storage vs. Caching  
  • 9.3 Local Storage vs. Cookies  
  • 9.3.1 Uses for Cookies  
  • 9.3.2 Limitations of Cookies  
  • 9.4 Simple Storage Interface  
  • 9.5 Top-Level Browser Context  
  • 9.6 Relational Database Storage  
  • 9.7 Geolocation  
  • 9.8 Determining Location  
  • 9.8.1 IP Positioning  
  • 9.8.2 WIFI Positioning  
  • 9.8.3 Cell Phone Tower Positioning  
  • 9.8.4 GPS  
  • 9.9 Geocoding  
  • 9.10 Geolocation Privacy Issues  

« Previous Unit Next Unit » Back to Top