The course will consist of several mini projects in the first half of the semester,
followed by a larger independent course project during the remainder of the semester.
The information provided on this page is subject to change.
Mini Projects
All projects are to be developed using the Google Flutter development environment. During the first half of the semester the goal of the projects is to help you familiarize yourself with the Flutter environment and develop a basic mobile cloud-based app.-
Mini Project #1: My First Flutter App:
The goal of the first mini project is to familiarize yourself with the Flutter
development environment, set up your computer for Flutter coding, and compile and test
your first simple Flutter app (with the help of online resources):
- Install Flutter: Get Started
- Install your favorite editor: Editor
- Test drive Flutter: Test Drive
- Simple test app: Test App
- Optional readings: Optional
-
Mini Project #2: Maps, Locations, Navigation:
The goal of the second mini project is to extend the first mini project with the following
new features:
- The ability to show a map in a new view.
- The ability to show your location on that map view.
- The ability to navigate back and forth between your views.
- Optional: The ability to show items of interest on your map.
Deliverable: Submit a brief video (< 60 seconds) of your app in action (emulator or device) via Sakai. Also submit a brief document (max. 1 page, pdf), stating your name, people you worked with (and how), and describe any aspects of this project that caused you unusual difficulties (if appropriate); also describe if the project is incomplete or faulty (provide specifics about why you weren’t able to complete the assignment). Finally, clearly indicate if you completed the optional component (which must be demonstrated in the video) in order to receive extra credit. -
Mini Project #3: Mobile Cloud Computing:
The goal of the third mini project is to connect your mobile app to a mobile back-end
server (Firebase); your mobile app should be able to do the following:
- Connect to a database hosted by Firebase and display data from the database in a Listview (and using Streambuilder).
- Allow the user to add new data entries.
- Allow the user to edit and delete data entries.
- Optional: The ability to have users sign up for an account and log into an account; data should only be shown to users logged in.
Main Project
With the skills and resources acquired in the mini projects, a final project will now address a specific problem in the world of mobile computing. You can continue to use (and expand) your existing Flutter code or you can start from scratch. For the main project, it is also acceptable if you choose Swift (for iOS), Java (for Android), or any other development platform (e.g., Cordova, React Native, Xamarin, etc.). Your completed mobile app should provide a solution to a problem found in an area you choose, such as healthcare, fitness, wellness, entertainment, automation, safety, gaming, education, etc. The main project can be performed in teams of up to three team members (if help is needed to identify team members, let the instructor know!) and collaboration across teams is also encouraged.
Main Project Proposal
The main project proposal is provided by the entire team (i.e., only one team member must submit the proposal document). The proposal should be a PDF document of at most two pages with the following sections:- Project Title
- Names of Team Members
- Problem Description
- Solution Description
- Timeline, Milestones, Outcomes
- List of Hardware/Software Needs (Optional)
Your project should be an example of a "mobile" or "wireless" solution to a problem; typically, a mobile computing solution has one or more of the following characteristics (this is an incomplete list, but is presented to help you decide on a project):- a mobile/portable solution that provides anytime and anywhere access to services and/or information
- a solution that takes advantage of "context information", such as the location of the device, the time of day, the habits of a user, the social context, past experience (historical data), etc.
- a solution that utilizes wireless communication capabilities to obtain information from other mobile devices, cloud services, sensors, etc.
- collection, analysis, and response to sensor data (video, audio, motion, etc.)
- a solution that integrates with social media services
- a solution that provides user creation and authentication services to personalize the mobile experience
Progress Report
The progress report should be a PDF file submitted via Sakai, it is limited to two pages, and it should contain the following headings and information:- Project Overview: provide the project's title and the names of all team members
- Project Summary: briefly summarize your project's original goals
- Project Changes: describe any changes to the original proposal and why you propose these changes; if no changes, simply say "None"
- Status of Project: describe the status of the project (see below)
- Attachments: optional (see below)
Project Presentation
The project presentation should be a video of no more than 3 minutes; it can consists of both narrated slides and a brief video of your project solution in action or just the video. Make sure that the video is narrated. A typical project presentation would consist of the following parts:- Project Overview: introduce the team members and the project's goals
- Technical Details: describe any relevant technical details such as tools or packages used, back-end services integrated, key features of app, etc.
- Product/App Demo: show the product/app in action (e.g., recorded on simulator or device), while highlighting the main product/app features
Final Report
The final report should be a PDF file submitted via Sakai, it is limited to two pages plus attachment, and it should contain the following headings and information:- Project Overview: provide the project's title and the names of all team members
- Project Summary: briefly summarize your project's original goals
- Project Description: this section describes in detail what features of the product have been completed and which not (and why not); also describe any major deviations from the original proposal. Grading of the final product will depend significantly on the information provided in this section!
- Attachments: In addition to the two-page limit, you can add as many attachments as you like such as screenshots, wire frames, photos, etc. The purpose of the attachments is to provide further evidence of the success of the project.