Difference between revisions of "Introduction to Mobile App Development"

From Ideaspace Wiki
Jump to: navigation, search
(Sprint 4 – Opening navigating to new views)
(Introduction)
 
(4 intermediate revisions by the same user not shown)
Line 14: Line 14:
 
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.
 
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.  
+
The content here is living. We expect this tutorial to evolve based on feedback from students and teachers, and the evolution of the technologies involved.
  
 
== General Prerequisites ==
 
== General Prerequisites ==
Line 25: Line 25:
 
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.  
 
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 ==
+
== Platform-specific Prerequisites ==
  
TO BE COMPLETED
+
[Table TBC]
 
 
* Polymer: We recommend that you have a basic knowledge of HTML5, Javascript, and CSS3.
 
  
 
== Learning Objectives ==
 
== Learning Objectives ==
Line 54: Line 52:
 
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 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.  
+
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.
 +
 
 +
[Explain special typography, icons, links, etc.]
  
 
== How this Tutorial is Organized ==
 
== How this Tutorial is Organized ==
Line 68: Line 68:
 
=== Sprint 0 – Installation and configuration of the software development environment ===
 
=== 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.
+
Your learning objective for this sprint is 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 ===
 
=== Sprint 1 - Basic user interface (UI) layout and internationalization ===
Line 142: Line 142:
  
 
=== Sprint 5 – Creating an app preferences view ===
 
=== Sprint 5 – Creating an app preferences view ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
=== Sprint 6 – Retrieving data from Web services ===
 
=== Sprint 6 – Retrieving data from Web services ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
=== Sprint 7 – Storing data in the app ===
 
=== Sprint 7 – Storing data in the app ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
=== Sprint 8 – Accessing location services ===
 
=== Sprint 8 – Accessing location services ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
=== Sprint 9 – Playing media files ===
 
=== Sprint 9 – Playing media files ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
=== Sprint 10 – Finalizing and publishing the app ===
 
=== Sprint 10 – Finalizing and publishing the app ===
 +
[Introductory statement]
 +
 +
'''User story'''
 +
 +
[TBC]
 +
 +
'''Key concepts'''
 +
 +
[TBC]
 +
 +
'''Learning objectives'''
 +
 +
[TBC]
 +
 +
[Links to platform-specific content]
  
 
== Additional Challenges ==
 
== Additional Challenges ==

Latest revision as of 15:24, 30 July 2017


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 this tutorial to evolve 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

[Table TBC]

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.

[Explain special typography, icons, links, etc.]

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 is 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

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 6 – Retrieving data from Web services

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 7 – Storing data in the app

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 8 – Accessing location services

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 9 – Playing media files

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

Sprint 10 – Finalizing and publishing the app

[Introductory statement]

User story

[TBC]

Key concepts

[TBC]

Learning objectives

[TBC]

[Links to platform-specific content]

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