• Course Introduction

      Technology continues to evolve and provide us with increasingly powerful mobile devices. As a result, 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.

    • 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 we will compare web-based applications to native applications. Finally, we will study methods of transport, as well as Internet protocols for mobile applications.

      Completing this unit should take you approximately 8 hours.

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

      Completing this unit should take you approximately 13 hours.

    • Unit 3: HTML/CSS/DOM and Scripting

      This unit will review 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.

      Completing this unit should take you approximately 18 hours.

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

      Completing this unit should take you approximately 11 hours.

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

      Completing this unit should take you approximately 3 hours.

    • 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 mobile application development as well. Finally, we will look at the different types of user interfaces for mobile devices.

      Completing this unit should take you approximately 13 hours.

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

      Completing this unit should take you approximately 4 hours.

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

      Completing this unit should take you approximately 12 hours.

    • Unit 9: Storage and Geolocation

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

      Completing this unit should take you approximately 2 hours.

    • Unit 10: Android Development

      In this unit, we will look at how to develop applications in one popular platform for phones and tablets, the Android. In order to complete this unit, it is assumed that the student has had some experience with Java programming, although a brief review of Java will be included.

      Completing this unit should take you approximately 8 hours.

    • Unit 11: iPhone/iPad Development

      In this unit, we will look at how to develop applications in one popular platform for phones and tablets, iOS. In order to complete this unit, it is assumed that the student has had some experience with programming.

      Completing this unit should take you approximately 9 hours.

    • Final Exam