# [CSE 340](/courses/cse340/22wi/schedule.html) Lab 8 Winter 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 Timeline - Undo Code & Video Out: W 16-Feb, Due: Th 24-Feb, Lock: Sa 26-Feb - Undo Reflection Due: Su 27-Feb, Lock: M 28-Feb - **Final Project** - **Design Doc** is Out: W 23-Feb, Due: Th 3-Mar, Lock: Sa 5-Mar - **Code** is Out: F 25-Feb, Due: Sa 12-Mar, Lock: Su 13-Mar - **Video and Reflection** are --- # Section 8 Objectives - Sensing - Context Aware Applications [Review](#4) - Section Exercise: [Android Sensors App](#7) - [Google Awareness API example](#8) - [Final Project Brainstorm](#9) - [Undo Help](#11) --- # Context Aware Applications Review You have been asked to implement an app to determine if the user is moving in a car and block messages to the user, using app sensing. What type of context aware application is this? 1. Adaptive Service 2. Capture and Access 3. Novel Interaction 4. Behavioral Imaging --- # Context Aware Apps Review (Answer) You have been asked to implement an app to determine if the user is moving in a car and block messages to the user, using app sensing. What type of context aware application is this? 1. **Adaptive Service** --> A CHANGING service - Predictions based on user history or past data - Focus on “adapting” to input - Ex: Google Search Autocomplete --- # Context Aware Apps Review (Other Answers) - Capture and Access --> store and analyze immediate input - Ex: Analyze user's current health by scanning their grocery receipt - Measuring AQI (Air Quality Index) in a city - Novel Interaction --> new methods to physically interact with apps - ex: VR headset sensing body movement - Behavioral Imaging --> modeling human behaviors and educate them on how to change behavior - Ex: App that models regular pick-up and drop-offs times from school for parents’ children --- # Section Exercise: Sensors App Android [Sensors](https://developer.android.com/guide/topics/sensors/sensors_overview) 1. Clone [this repo](https://gitlab.cs.washington.edu/cse340/exercises/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. --- # Google Awareness API example - Another playground app by Joe Birch, Android Engineer @Buffer: https://github.com/hitherejoe/Aware - Can use this as a reference - You do not have to use Google Awareness API in your final project (requires you to sign up w/ Google Play Services + billing account) - Reminder: lecture [slides](https://courses.cs.washington.edu/courses/cse340/22wi/slides/wk08/ml.html#21) - Fence API = app reacts to current situation, **notifies user EVERY TIME a combination of CONDITIONS met** - Snapshot = "snapshot" of data at moment in time. Can check for data every X minutes/time **INTERVAL**. --- # Final Project Brainstorm Part 1 - Prompt: Solve any accessibility problem by building an android app that demonstrates what you've learned in class. - [Final Project Design Doc template](https://courses.cs.washington.edu/courses/cse340/22wi/assignments/final-project-design.html) - It must include **user input, user output, and utilize some Android sensing data**. - Write down answers to the following ideas, then pitch your app idea to those around you: 1. What problem(s) will your final project solve or address? 2. Who will use your app? 3. How and why would a user interact with your app? --- # Final Project Brainstorm Part 2 - 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) --- # Undo Help - Undo is due tonight! Need any last minute help?