# [CSE 340](/courses/cse340/22sp/schedule.html) Lab 8 Spring 2022 ## Week 8: Sensing .title-slide-logo[ ![:img Diagram showing examples of Mobile App Sensors such as Temperature Gyroscope and Fingerprint, 70%, width](img/sensors.png) ] --- # HW Due Dates - **Undo Code & Video: Fri 20-May** - Reflection: Sun 22-May - Final Project - Design Doc: Fri 27-May - Code: Sat 4-Jun - SUS testing: Sun 5-Jun - Video & Reflection: Wed 8-Jun --- # Section 8 Objectives - Sensing - Review: [Context Aware Apps](#review-contextaware) - [Example App: Android Sensors](#sensors) - [Example App: Google Awareness API](#google-awareness) - Final Project [Brainstorm](#final-brainstorm) - [Section Exercise](#section-exercise) --- name: review-contextaware # Review: Context Aware Apps You have been asked to implement an app to determine if the user is **moving in a car to block all messages to the user**, using app sensing. What type of context aware application is this? [Relevant Lecture Slides](https://courses.cs.washington.edu/courses/cse340/22sp/slides/wk08/ml.html#27). .left-column50[ 1. Adaptive Service 2. Capture and Access 3. Novel Interaction 4. Behavioral Imaging ] .right-column50[ ![:img Person driving a car, 75%, width](img/car.png) ] --- # Review: Context Aware Apps Answer You have been asked to implement an app to determine if the user is **moving in a car to block all messages to the user**, using app sensing. What type of context aware application is this? [Relevant Lecture Slides](https://courses.cs.washington.edu/courses/cse340/22sp/slides/wk08/ml.html#27). .left-column50[ **1. Adaptive Service**: provides a **changing** service - Predictions based on user history or past data - Focus on “adapting” to input - Ex: Google Search Autocomplete ] .right-column50[ ![:img Person driving a car, 75%, width](img/car.png) ] --- # Review: Other Context Aware Apps .left-column50[ - Capture and Access - Store and analyze **immediate input data**. - Ex: Analyze user's current health by scanning their grocery receipt, Measuring AQI (Air Quality Index) in a city ] .right-column50[ ![:img Breezometer App homepage showing a measured Air Quality Index of 61 or Fair, 65%, width](img/breezometer-captureaccess.jpg) ] --- # Review: Other Context Aware Apps - Novel Interaction - App utilizes new methods to physically interact with the app - Ex: VR headset sensing body movement, Airtouch with depth camera ![:img example interaction above and on the surface of a phone supported by adding a depth camera to the front of the phone -- shows interacting with text, 70%, width](../wk08/img/ml/airtouch.jpg) --- # Review: Other Context Aware Apps .left-column50[ - Behavioral Imaging - **Models human behaviors** and educates them on how to change their behavior - Ex: App that models regular pick-up and drop-offs times from school for parents’ children ] .right-column50[ ![:img Picture of an interface for simulating driving behavior providing feedback to the user about aggressive driving, 90%, width](../wk08/img/ml/driving.png) ] --- name: sensors # Example App: Android Sensors Official Android [Sensors Documentation](https://developer.android.com/guide/topics/sensors/sensors_overview) 1. Clone the [CSE340 Sensing and Location Exercise Repo](https://gitlab.cs.washington.edu/cse340/exercises/cse340-sensing-and-location) - This sample app makes use of native sensors to output some information to the user 2. Complete the TODOs: play around with what data you can show on screen in LocationActivity and SensorActivity. - No Turn-in --- name: google-awareness # Example App: Google Awareness API - Another [example app](https://github.com/hitherejoe/Aware), uses Google Awareness API - Can use this as a reference - You do not have to use Google Awareness API in your final project - Reminder: lecture [slides](https://courses.cs.washington.edu/courses/cse340/22sp/slides/wk08/ml.html#21) - Fence API = app reacts to current situation, notifies user **EVERY TIME a combination of CONDITIONS are met** - Snapshot = "snapshot" of data at moment in time. Can check for data every X minutes/time **INTERVAL**. --- name: final-brainstorm # Final Project: Prompt Solve any **accessibility problem or user need** by building an Android app that demonstrates what you've learned in class. - Use the [Final Project Design Doc template](https://courses.cs.washington.edu/courses/cse340/22sp/assignments/final-project-design.html). - Do **NOT** delete the headings when you submit. - Finish your Design Doc ASAP to maximize the time you can take for app development. --- # Final Project: Checklist According to the [Spec](https://courses.cs.washington.edu/courses/cse340/22sp/assignments/final-project.html), your Final Project MUST: ✓ Be **Context Aware**/make significant use of 1 mobile sensor ✓ Be **accessible** (use content descriptions, etc). ✓ Is “**robust** to user input” (won’t crash when user inputs something) ✓ Be “designed specifically for a **mobile** device.” ✓ Have “**3 major screens**” --- # Final Project: Brainstorm **Spend 5 minutes to brainstorm** and write down answers to the following questions: 1. What does your app do? 2. Who will use your app? 3. What problem(s) will your final project solve? 4. How will someone use your app? --- # Final Project: Pitch Your App **Form groups of 2/3 with your neighbors and discuss your answers** to the previous brainstorm questions. - Ask clarification questions - Share feedback - Spend about 15 minutes total --- # Final Project: Brainstorm MoSCoW - Useful terminology: - [Minimum Viable Product](https://en.wikipedia.org/wiki/Minimum_viable_product): what's the least amount you can put in your app to be useful to a user? - [MoSCoW](https://en.wikipedia.org/wiki/MoSCoW_method): Must/Should/Could/Would have features -- **Take 5 minutes to categorize the features you want to implement:** - **Must have: (most important feature(s), focus on this!)** - Should have - Could have - Would have: (least important features) --- name: section-exercise # Section Exercise: Final Project Brainstorm Keeping in mind the information you have just brainstormed and discussed with others, please submit 3 possible project ideas on the [Section 8 Edstem exercise](https://edstem.org/us/courses/21053/lessons/31196/slides/180622).