4: Prototyping Tools How can we quickly prototype Wearable experiences with little or no coding? Why Prototype? ▪ ▪ ▪ ▪ ▪ Quick visual design Capture key interactions Focus on user experience Communicate design ideas “Learn by doing/experiencing” Prototyping Tools ▪ Static/Low fidelity ▪ Sketching ▪ User interface templates ▪ Storyboards/Application flows ▪ Interactive/High fidelity ▪ Wireframing tools ▪ Mobile prototyping ▪ Native Coding Important Note ▪ Most current wearables run Android OS ▪ eg Glass, Vuzix, Atheer, Epson, etc ▪ So many tools for prototyping on Android mobile devices will work for wearables ▪ If you want to learn to code, learn ▪ Java, Android, Javascript/PHP Typical Development Steps ▪ Sketching ▪ Storyboards ▪ UI Mockups ▪ Interaction Flows ▪ Video Prototypes ▪ Interactive Prototypes ▪ Final Native Application Increased Fidelity & Interactivity Sketched Interfaces ▪ Sketch + Powerpoint/Photoshop/Illustrator GlassSim – http://glasssim.com/ ▪ Simulate the view through Google Glass ▪ Multiple card templates GlassSim Card Builder ▪ Use HTML for card details ▪ Multiple templates ▪ Change background ▪ Own image ▪ Camera view GlassSim Samples Glass UI Templates ▪ Google Glass Photoshop Templates ▪ http://glass-ui.com/ ▪ http://dsky9.com/glassfaq/the-google-glass-psd-template/ Sample Slides From Templates Application Storyboard ▪ http://dsky9.com/glassfaq/google-glassstoryboard-template-download/ ToolKit for Designers ▪ Vectoform Google Glass Toolkit for Designers ▪ http://blog.vectorform.com/2013/09/16/google-glasstoolkit-for-designers-2/ ▪ Sample cards, app flows, icons, etc Application Flow Limitations ▪ Positives ▪ Good for documenting screens ▪ Can show application flow ▪ Negatives ▪ No interactivity/transitions ▪ Can’t be used for testing ▪ Can’t deploy on wearable ▪ Can be time consuming to create Transitions Video Sketching ▪ Series of still photos in a movie format. ▪ Demonstrates the experience of the product ▪ Discover where concept needs fleshing out. ▪ Communicate experience and interface ▪ You can use whatever tools, from Flash to iMovie. Example: Video Sketch of Vine UI See https://vine.co/v/bgIaLHIpFTB UI Concept Movies Interactive Wireframes Interactive Wireframing ▪ Developing interactive interfaces/wireframes ▪ Transitions, user feedback, interface design ▪ Web based tools ▪ UXpin - http://www.uxpin.com/ ▪ proto.io - http://www.proto.io/ ▪ Native tools ▪ Justinmind - http://www.justinmind.com/ ▪ Axure - http://www.axure.com/ UXpin - www.uxpin.com ▪ Web based wireframing tool ▪ Mobile/Desktop applications ▪ Glass templates, run in browser https://www.youtube.com/watch?v=0XtS5YP8HcM Proto.io - http://www.proto.io/ ▪ Web based mobile prototyping tool ▪ Features ▪ ▪ ▪ ▪ Prototype for multiple devices Gesture input, touch events, animations Share with collaborators Test on device Proto.io - Interface Demo: Building a Simple Flow Gesture Flow Ta p Swipe Scr1 Scr2 Scr3 Scr4 Scr5 Scr6 Start Transitions Demo Justinmind - http:// www.justinmind.com/ ▪ Native wireframing tool ▪ Build mobile apps without programming ▪ ▪ ▪ ▪ drag and drop, interface templates web based simulation test on mobile devices collaborative project sharing ▪ Templates for Glass, custom templates User Interface - Glass Templates Web Simulation Tool Comparing Wireframe Tools Tool Web Uxpin X Proto.io X Native Wearable Template Interaction X X Justinmind X X X Axure X X X Wireframe Limitations ▪ Can’t deploy on Glass ▪ No access to sensor data ▪ Camera, orientation sensor ▪ No multimedia playback ▪ Audio, video ▪ Simple transitions ▪ No conditional logic ▪ No networking Processing for Wearables Processing ▪ Programming tool for Artists/Designers ▪ http://processing.org ▪ Easy to code, Free, Open source, Java based ▪ 2D, 3D, audio/video support ▪ Processing For Android ▪ http://wiki.processing.org/w/Android ▪ Strong Android support ▪ Generates Android .apk file Processing - Motivation ▪ Language of Interaction ▪ Sketching with code ▪ Support for rich interaction ▪ Large developer community ▪ Active help forums ▪ Dozens of plug-in libraries ▪ Strong Android support ▪ Easy to run on wearables http://processing.org/ http://openprocessing.org/ Development Enviroment Basic Parts of a Processing Sketch /* Notes comment */ //set up global variables float moveX = 50; //Initialize the Sketch void setup (){ } //draw every frame void draw(){ } Importing Libraries ▪ Can add functionality by Importing Libraries ▪ java archives - .jar files ▪ Include import code import processing.opengl.*; ▪ Popular Libraries ▪ ▪ ▪ ▪ Minim - audio library OCD - 3D camera views Physics - physics engine bluetoothDesktop - bluetooth networking http://toxiclibs.org/ Processing and Glass ▪ One of the easiest ways to build rich interactive wearable applications ▪ focus on interactivity, not coding ▪ Collects all sensor input ▪ camera, accelerometer, touch ▪ Can build native Android .apk files ▪ Side load onto Glass Example: Hello World //called initially at the start of the Processing sketch void setup() { size(640, 360); background(0); } //called every frame to draw output void draw() { background(0); //draw a white text string showing Hello World fill(255); text("Hello World", 50, 50); } Demo Hello World Image PImage img; // Create an image variable void setup() { size(640, 360); //load the ok glass home screen image img = loadImage("okGlass.jpg"); // Load the image into the program } void draw() { // Displays the image at its actual size at point (0,0) image(img, 0, 0); } Demo Touch Pad Input ▪ Tap recognized as DPAD input void keyPressed() { if (key == CODED){ if (keyCode == DPAD) { // Do something .. ▪ Java code to capture rich motion events ▪ import android.view.MotionEvent; Motion Event //Glass Touch Events - reads from touch pad public boolean dispatchGenericMotionEvent(MotionEvent event) { float x = event.getX(); // get x/y coords float y = event.getY(); int action = event.getActionMasked(); // get code for action switch (action) { // let us know which action code shows up case MotionEvent.ACTION_DOWN: touchEvent = "DOWN"; fingerTouch = 1; break; case MotionEvent.ACTION_MOVE: touchEvent = "MOVE"; xpos = myScreenWidth-x*touchPadScaleX; ypos = y*touchPadScaleY; break; Demo Sensors ▪ Ketai Library for Processing ▪ https://code.google.com/p/ketai/ ▪ Support all phone sensors ▪ GPS, Compass, Light, Camera, etc ▪ Include Ketai Library ▪ import ketai.sensors.*; ▪ KetaiSensor sensor; Using Sensors ▪ Setup in Setup( ) function ▪ sensor = new KetaiSensor(this); ▪ sensor.start(); ▪ sensor.list(); ▪ Event based sensor reading void onAccelerometerEvent(…) { accelerometer.set(x, y, z); } Sensor Demo Using the Camera ▪ Import camera library ▪ import ketai.camera.*; ▪ KetaiCamera cam; ▪ Setup in Setup( ) function ▪ cam = new KetaiCamera(this, 640, 480, 15); ▪ Draw camera image void draw() { //draw the camera image image(cam, width/2, height/2); } Camera Demo Timeline Demo ▪ Create Card Class ▪ load image, card number, children/parent cards ▪ Timeline Demo ▪ ▪ ▪ ▪ Load cards in order Translate cards with finger motion Swipe cards in both directions Snap cards into position Native Coding Overview ▪ For best performance need native coding ▪ Low level algorithms etc ▪ Most current wearables based on Android OS ▪ Need Java/Android skills ▪ Many devices have custom API/SDK ▪ Vusix M-100: Vusix SDK ▪ Glass: Mirror API, Glass Developer Kit (GDK) Mirror API + Glass GDK Glassware and Timeline Glassware and Timeline ▪ Static Cards ▪ Static content with text, HTML, images, and video. - e.g. notification messages, news clip ▪ Live Cards ▪ Dynamic content updated frequently. - e.g. compass, timer ▪ Immersions ▪ Takes over the whole control, out from timeline. - e.g. interactive game Glassware Development ▪ Mirror API ▪ Server programming, online/web application ▪ Static cards / timeline management ▪ GDK ▪ Android programming, Java (+ C/C++) ▪ Live cards & Immersions ▪ See: https://developers.google.com/glass/ Mirror API ▪ REST API ▪ Java servlet, PHP, Go, Python, Ruby, .NET ▪ Timeline based apps ▪ Static cards - Text, HTML, media attachment (image & video) - Standard and custom menu items ▪ Manage timeline - Subscribe to timeline notifications - Sharing with contacts - Location based services GDK ▪ Glass Development Kit ▪ Android 4.0.3 ICS + Glass specific APIs ▪ Use standard Android Development Tools GDK ▪ GDK add-on features ▪ ▪ ▪ ▪ Timeline and cards Menu and UI Touch pad and gesture Media (sound, camera and voice input) Glass Summary ▪ Use Mirror API if you need ... ▪ Use GDK if you need ... ▪ Or use both Hardware Prototyping Fake Display 3D print Thingiverse model see http://www.thingiverse.com/thing:65706 Have the social impact of Google Glass without the cost Build Your Own Wearable ▪ MyVu display + phone + sensors Beady-i ▪ http://www.instructables.com/id/DIYGoogle-Glasses-AKA-the-Beady-i/ Rasberry Pi Glasses ▪ Modify video glasses, connect to Rasberry Pi ▪ $200 - $300 in parts, simple assembly ▪ https://learn.adafruit.com/diy-wearable-pi-near-eye-kopin-videoglasses Physical Input Devices ▪ Can we develop unobtrusive input devices ? ▪ Reduce need for speech, touch pad input ▪ Socially more acceptable ▪ Examples ▪ ▪ ▪ ▪ Ring, pendant, bracelet, gloves, etc Prototyping Platform Arduino Kit Bluetooth Shield Google Glass Example: Glove Input ▪ Buttons on fingertips ▪ Map touches to commands Example: Ring Input ▪ Touch strip, button, accelerometer ▪ Tap, swipe, flick actions How it works Bracelet 1,2, 3,4 Armband Gloves Values/ output Summary ▪ Prototyping for wearables is similar to mobiles ▪ Tools for UI design, storyboarding, wireframing ▪ Android tools to create interactive prototypes ▪ App Inventor, Processing, etc ▪ Arduino can be used for hardware prototypes ▪ Once prototyped Native Apps can be built ▪ Android + SDK for each platform Other Tools ▪ Wireframing ▪ pidoco ▪ FluidUI ▪ Rapid Development ▪ Phone Gap ▪ AppMachine ▪ Interactive ▪ App Inventor ▪ WearScript App Inventor - http://appinventor.mit.edu/ ▪ Visual Programming for Android Apps ▪ Features ▪ Access to Android Sensors ▪ Multimedia output ▪ Drag and drop web based interface ▪ Designer view – app layout ▪ Blocks view – program logic/control App Inventor Designer View App Inventor Blocks View Orientation Demo ▪ Use wearable orientation sensor WearScript ▪ JavaScript development for Glass ▪ http://www.wearscript.com/en/ ▪ Script directory ▪ http://weariverse.com/
© Copyright 2024