Difference between revisions of "Introduction to Mobile App Development"
Bill.mciver (talk | contribs) (→Sprints) |
Bill.mciver (talk | contribs) (→Introduction) |
||
(7 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 | + | 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 == | |
− | + | [Table TBC] | |
− | |||
− | |||
== 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 | + | 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 === | ||
+ | By the end of this sprint, you will have an app that resembles the figure #. | ||
+ | |||
+ | [Add wireframe here] | ||
+ | |||
'''User story''' | '''User story''' | ||
Our user wants an app that does the following: | Our user wants an app that does the following: | ||
Line 77: | Line 81: | ||
* It allows metric or imperial units of measurement to be selected, | * It allows metric or imperial units of measurement to be selected, | ||
* It provides a button that will be used to initiate the calculation, | * It provides a button that will be used to initiate the calculation, | ||
− | * It enables the user to select the | + | * It enables the user to select the language, and |
* It displays the app name and developer logo. | * It displays the app name and developer logo. | ||
'''Key concepts''' | '''Key concepts''' | ||
* Building and running a mobile app: [TBC] | * Building and running a mobile app: [TBC] | ||
− | * User interfaces: [TBC | + | * User interfaces: [TBC] |
* Internationalization: [TBC] | * Internationalization: [TBC] | ||
Line 89: | Line 93: | ||
* How to create a basic user interface through which users will interact with your mobile app. | * 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.) | * 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 === | === 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''' | '''User story''' | ||
+ | |||
+ | [TBC] | ||
'''Key concepts''' | '''Key concepts''' | ||
+ | |||
+ | [TBC] | ||
'''Learning objectives''' | '''Learning objectives''' | ||
− | === Sprint | + | [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 == | == References == |
Latest revision as of 14:24, 30 July 2017
NBCC Mobile Ideaspace Tutorial Series
Contents
- 1 Contributors
- 2 Introduction
- 3 General Prerequisites
- 4 Platform-specific Prerequisites
- 5 Learning Objectives
- 6 How to Use this Tutorial
- 7 How this Tutorial is Organized
- 8 Sprints
- 8.1 Sprint 0 – Installation and configuration of the software development environment
- 8.2 Sprint 1 - Basic user interface (UI) layout and internationalization
- 8.3 Sprint 2 – Adding behaviour to the user interface
- 8.4 Sprint 3 – Changing screen orientation
- 8.5 Sprint 4 – Opening navigating to new views
- 8.6 Sprint 5 – Creating an app preferences view
- 8.7 Sprint 6 – Retrieving data from Web services
- 8.8 Sprint 7 – Storing data in the app
- 8.9 Sprint 8 – Accessing location services
- 8.10 Sprint 9 – Playing media files
- 8.11 Sprint 10 – Finalizing and publishing the app
- 9 Additional Challenges
- 10 References
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]
[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
| © 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.