Introduction to Mobile App Development

From Ideaspace Wiki
Revision as of 10:42, 19 July 2017 by Bill.mciver (talk | contribs) (Sprint 4 – Opening navigating to new views)

Jump to: navigation, search


Main Page E-College



NBCC Mobile Ideaspace Tutorial Series

Contributors

Russell Allen, David Morris, Laura Melles, William McIver Jr.

Introduction

This tutorial is developed and maintained by the NBCC Mobile First Technology Initiative and its industrial partners. It is part of our effort to mobilize knowledge about mobile information and communication technologies (ICT) in ways that enable developers and managers to leverage it for professional development and to jump start innovation in their organizations.

This tutorial is designed to be independent of specific mobile platforms, such as Android or iOS. Rather, the tutorial presents a generic set of learning objectives at the top level. On the second level, tutorial content is being developed that helps the student realize those objectives within a specific platform. Currently, a tutorial is being implemented for Polymer. Versions for Android, iOS, React, and React Native are planned.

The content here is living. We expect to evolve this tutorial based on feedback from students and teachers, and the evolution of the technologies involved.

General Prerequisites

You will have the most efficient experience with this tutorial if you have a basic knowledge the following:

  • At least one common object-oriented programming language, such as Java or Javascript;
  • An understanding of the basic software development – debug cycle; and
  • At least some knowledge of the role of interactive development environments (IDEs).

We will endeavour to provide a basic introduction to these topics here or to provide you with links to the best authoritative sources of background information on these topics.

== Platform-specific Prerequisites ==

TO BE COMPLETED

  • Polymer: We recommend that you have a basic knowledge of HTML5, Javascript, and CSS3.

Learning Objectives

Students who complete this tutorial should acquire basic practical knowledge of the following concepts within a given mobile platform:

  • Setup installation and configuration of tools and resources required to develop software for the chosen mobile platform
  • User interface construction
  • User interface elements
  • Data acquisition from the user interface
  • Data validation
  • Localization
  • Screen orientation
  • Use of Web services
  • Data storage
  • Use of location services
  • Multimedia playback
  • Thread management issues
  • App design guidelines
  • App publication
  • Debugging and trouble shooting

How to Use this Tutorial

This tutorial is designed as a hands-on and introductory guide to creating mobile apps. Links are provided to authoritative reference manuals that can provide detailed information on specific technical issues and mobile app development techniques.

This tutorial will guide you through the development of a single mobile app in units of work called "sprints". In each sprint , the tutorial will explain a collection of related mobile app development concepts and techniques, which you will use to add new functionality to the app.

How this Tutorial is Organized

As explained above, this tutorial is organized using a a series of sprints. Each sprint contains a number of user stories. Each user story describes functionality that is to be implemented in the app.

Additional challenges and reference material are offered and updated when possible.

Sprints

The mobile app to be developed over the course of this tutorial is a Fuel Consumption Calculator. As the name suggests, we wish to help the user of this app compute the rate at which they have consumed fuel based on the distance they have driven. A corollary feature will be to compute the cost of this consumption based on the cost of the fuel.

Sprint 0 – Installation and configuration of the software development environment

Your learning objective for this sprint are how to install and configure the software and resource necessary to create mobile apps for the chosen platform.

Sprint 1 - Basic user interface (UI) layout and internationalization

By the end of this sprint, you will have an app that resembles the figure #.

[Add wireframe here]

User story Our user wants an app that does the following:

  • It opens in portrait orientation,
  • It provides fields in which to enter the volume of fuel consumed and the distance travelled,
  • It allows metric or imperial units of measurement to be selected,
  • It provides a button that will be used to initiate the calculation,
  • It enables the user to select the language, and
  • It displays the app name and developer logo.

Key concepts

  • Building and running a mobile app: [TBC]
  • User interfaces: [TBC]
  • Internationalization: [TBC]

Learning objectives Your learning objectives for this sprint are the following:

  • How to create a basic user interface through which users will interact with your mobile app.
  • How to set up your mobile app software so that you can support internationalization, the ability to facilitate localization into a specific language (e.g., English, French, etc.)

[Links to platform-specific content]

Sprint 2 – Adding behaviour to the user interface

[Introductory statement]

User story [TBC]

Key concepts [TBC]

Learning objectives [TBC]

[Links to platform-specific content]

Sprint 3 – Changing screen orientation

[Introductory statement]

User story [TBC]

Key concepts [TBC]

Learning objectives [TBC]

[Links to platform-specific content]

Sprint 4 – Opening navigating to new views

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 5 – Creating an app preferences view

Sprint 6 – Retrieving data from Web services

Sprint 7 – Storing data in the app

Sprint 8 – Accessing location services

Sprint 9 – Playing media files

Sprint 10 – Finalizing and publishing the app

Additional Challenges

References



Comments, Corrections & Requests

We welcome comments and corrections about Mobile First Technology Initiative's E-College content, and requests for information and tutorials on new topics. Please send all such correspondence to bill.mciver@nbcc.ca and include "E-College" in the subject line.

Contact

William McIver Jr., Ph.D.
NSERC Industrial Research Chair in Mobile First Technology
New Brunswick Community College

Mobile First Technology Initiative URL: http://wiki.nbcc.mobi
E-mail: bill.mciver@nbcc.ca
Twitter: @mciverNBCC
Blog: http://mciver.mobi/

New Brunswick Community College URL: http://nbcc.ca
Media inquiries

Nbcc ca mobi icon-NBCC-MFTi.jpg | © Copyright 2017. All Rights Reserved.
The New Brunswick Community College – Mobile First Technology Initiative is supported by
the Natural Sciences and Engineering Research Council of Canada. Nbcc ca mobi logo nserc.png