Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Tomás Ruiz-López
Software Design Manager @tomasruizlopez
@everywaretech /everywaretech
http://www.everywaretech.es
Carlos ...
Everyware
Technologies
Spinoff UGR
Business areas
Everyware
Technologies
Spinoff UGR
1
Consulting
Everyware
Technologies
Spinoff UGR
2
Training
Everyware
Technologies
Spinoff UGR
3
Development
Android
iOS
BlackBerry
Web
Android Wear Chromecast
Google Glass
Android T...
A brief!
Motivation
Darcy Norman
Performance Data Analyst
Adidas Micoach
Speed Cell
Measure speed, distance, heart!
rate… during training
Data Analysis
A little bit of!
History
1961!
MIT
“The Gambling!
Shoe”
1810!
Naples Queen
First wristwatch
1600!
Qing Dinasty
Abacus integrated!
on a ring
Edward Thorp Claude Shannon
The!
Gambling!
Shoe
Mark Anthony !
Howe!
2012
SCAM
Some!
Data!
about wearable devices
Global interest in!
Wearable Technology
70%
15%
48%
People aware of the existence
of wearable devices
People already using wearable
devices
Owners of wearable dev...
300$ Average price of a wearable
device
By !
market
957$ Industrial!
134$ Pets Animals
By body!
location
1117$ Legs!
92$ H...
57% Self-monitoring and health
concerns
35%Supplement their smartphone
addiction
Reasons to buy
72% Wearable devices are too
expensive
62%Wearable devices are not too
fashionable
Reasons NOT to buy
53% Would like weara...
Is it compatible with !
my smartphone?
Is it easy to!
set up?
Is it easy to put on?!
Is it accurate?
Will the battery last...
Users’ Preferences to wear devices
Device distribution by price
OS compatibility
Battery duration
Most Funded Kickstarter Projects!
> 1.000.000$ each
Pebble Smartwatch Dash Headphones Emotive Insight
Omate TrueSmart Agen...
Key features!
of wearable devices
Hands-free!
Voice / gesture control. Avoid distractions.
Context-aware!
Use sensors to proactively infer the user’s needs
...
Accelerometer
Components
Touch Interface
Respiratory Monitor
Pressure Sensor
Muscle Contraction Sensor
FM Tuner
Buzzer
Blo...
Some of what you can find on the!
Market!
(or about to be released)
Smart Cap!
EDAN SAFE PTY LTD
- Fatigue monitoring system (EdenSafe!
Universal Fatigue Algorithm)!
- Keep truck drivers saf...
SensoGlove!
SENSOGLOVE
- Smart glove designed for golfers!
- Detects intensity of the grip when!
holding the club or drive...
Voyce Dog Monitor!
VOYCE
- Measures key vital signs and overall!
health in dogs!
- Heart rate, respiratory rate, calories…...
Fit Guard!
FORCE IMPACT TECHNOLOGIES
- Detection of head injuries in athletes!
- Accelerometer to detect head movement!
an...
June!
NENATMO
- Monitor the user’s UV exposure during th
day and alert when it has exceeded the!
recommended limit!
- Can ...
Shine!
MISFIT
- Motion-tracking wearable device!
- Records activity levels and sleep!
- Can be worn or embedded in some pi...
Achillex!
XYBERMIND
- Ankle wrap (around running shoes) and!
vest!
- Measures impact forces, degree of !
pronation and ori...
Lechal Shoe!
LECHAL
- User navigation through vibration!
- Bluetooth enabled insole!
- Additional fitness functions!
- Cont...
Nex Band!
MIGHTYCAST
- Band with pluggable modules with LEDs!
for user feedback!
- Mainly for gaming and entertainment!
pu...
PequeAlarma!
INTERACTIVE TOYS + EVERYWARE
TECHNOLOGIES
- Monitor children proximity!
- Trigger an alarm if child is going ...
Inivisibility Glasses!
AVG
- Glasses with infrared LEDs!
- Not visible to human eye but visible to!
cameras!
- Make face r...
Swarm!
MICROSOFT
- Scarf to help people with autism or!
visual and hearing impairments!
- Modules with biometric sensors t...
Software Design!
for mainstream wearable devices
Desktop/Web!
first
Mobile!
first
Wearable!
first
Graceful degradation
Progressive enhancement
Real life
Notification Use device
Micro-interactions
DeviceContext-aware
Health!
sensors
Activity!
recognition
Calendar!
& Time
Identity
Location
Glanceable
Low interaction
Voice
&
Big gestures
Brief interactions
Seconds
Short copy
Keep text short
and focused
Notify sparingly and discreetly
Building Glassware for!
Google Glass!
with the GDK
Glass Development!
Kit
1
Real-time!
user interaction
2
Offline!
functionality
Glass Development!
Kit
3
Access to!
Hardware
Glass Development!
Kit
Live Cards
Currently cooking for 1683 peopleOk Glass, find a
Breaking!
Service
Service <service	
	 android:name="es.everywa...
Currently cooking for 1683 people
Breaking!
Service
Service
Breaking!
Drawer
Direct Rendering !
Callback
Breaking!
View
Vi...
Currently cooking for 1683 people
Live CardsHigh-frequency rendering
liveCard = new LiveCard(this, LIVE_CARD_TAG);	
!
call...
Menus
Breaking!
Activity
Activity
Recipe!
Activity
Activity
onOptionsItemSelected()
Menu
Static Cards
Recipe!
Activity
Activity
Content!
View
CardScroll!
View
Recipe!
Adapter
CardScroll!
Adapter
Content!Content!...
Static Cards
adapter = new RecipeAdapter(createCards(this));	
scrollView = new CardScrollView(this);	
scrollView.setAdapte...
Notifications
Recipe!
Activity
Activity
Alarm!
Manager
Selling!
Service
Service
Intent intent = new Intent(this, SellingBro...
Live Cards
Selling!
Service
Service
Low-frequency rendering
Live!
Card
Live Card
View
RemoteViews
Live CardsLow-frequency rendering
// Get an instance of a live card	
liveCard = new LiveCard(this, LIVE_CARD_TAG);	
!
// I...
GitHub
https://github.com/everywaretech/
BreakingGlass
Developing with the SDK for!
Android Wear
Suggest
The context stream
Demand
The cue card
Notifications
Actions
Images Voice
Google!
Play Store
App installation
Handheld App
Wearable App
Google!
Play Store
App installation
Google!
Play Store
App installation
Google!
Play Services
Communication between devices
1 App!
Notifications
NotificationCompat.Builder notificationBuilder =	
	 new NotificationCompat.Builder(this)	
	 .setSmallIcon(R.drawable.event...
Adding background icon
NotificationCompat.Builder notificationBuilder =	
	 new NotificationCompat.Builder(this)	
	 .setSma...
#gandroid
Adding actions
NotificationCompat.Builder notificationBuilder =	
	 new NotificationCompat.Builder(this)	
	 .setSmallIcon(R...
#gandroid
Receiving Voice Input
<?xml version="1.0" encoding="utf-8"?>	
<resources>	
<string-array name="reply_choices">	
<item>Yes<...
Receiving Voice Input
String replyLabel = getResources()	
	 	 .getString(R.string.reply_label);	
String[] replyChoices = 	...
Adding pages
BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle();	
secondPageStyle.setBigContentTitle("Ti...
#gandroid
Stacking notifications
final String GROUP_KEY = "group_key";	
!
NotificationCompat.Builder builder = new NotificationCompat...
Summary notification
Notification summaryNotification = new NotificationCompat.Builder(context)	
.setContentTitle("2 new me...
2 Custom!
Wearable!
Apps
Unsupported packages
android.webkit!
android.print!
android.app.backup!
android.appwidget!
android.hardware.usb
Wearable!
UI Library
BoxInsetLayout
CardFragment
CircledImageView
ConfirmationActivity
CrossFadeDrawable DelayedConfirmation...
System-provided Voice Actions
<activity android:name="MyNoteActivity">	
<intent-filter>	
<action android:name="android.int...
Node API
Discovery of the nodes in the network
Message API
Exchange messages between devices
Data API
Sync data between de...
Packaging
dependencies{	
	 ...	
	 wearApp project(“:wearable”)	
}
Developing for!
Apple Watch
iPhone accessory
Relies on iPhone hardware
No standalone apps (yet)
Quick information consumption
Inputs
Voice!
(no keyboard!)
Touch
Pressure!
(Force
Touch)
Digital Crown
Sensors!
(also from
iPhone)
UI Elements
Text input!
(again, no keyboard!)
Labels
Switches
Buttons
Menu!
(Force Touch)
Sliders
Images!
(tint + animatio...
Layout
Groups of controls
No absolute positioning!!!!
Groups of groups
Horizontal or vertical groups
Dynamic or static siz...
Development
XCode Storyboards (Design time)
WatchKit!
(ObjC+Swift)
>=iOS 8.2!
(all frameworks!
except UIKit)
GlancesActionable!
Notifications
Extension!
Apps
Software
1Actionable!
Notifications
(Automatic Basic Development!!)
(Local + Remote Notifications!!)
Short-Look
Long-look
Short-Look
Long-Look
KVELLING!!
Development of custom long-looks
Static Dynamic
Different
notifications
for the same
app!
Development of custom long-looks
Static long-looks
One dynamic label + unlimited!
static labels
Defined at the design-time ...
Development of custom long-looks
Dynamic long-looks
The interface can change at runtime
Custom actions and interactive con...
2Glances
Read only!! (tap anywhere to open app)
No scroll
Pre-designed templates
Optional for apps
Really difficult to design!!
Cont...
Glance Development
Top and bottom groups!
(all templates)
Customizable app launch
Eventbox Glance
Top group!
(Event Date
+Time)
Bottom group!
(Conference +
event info)
Upcoming event information from late...
3Watch Apps
iPhone app extension!! (for now)
Can share data with iPhone (app groups)
Handoff: start on the Watch and finish on the iPho...
UI Navigation
Hierarchy Page-based
Modal!
(page-based or hierarchy)
can’t be combined
Eventbox Watch
App
Page based
Modal Sheet
Modal Sheet
Eventbox Watch
App
App Store
App installation
iOS App
Watch App
App Store
App installation
App Store
App installation
BlueTooth LE!
(no internet required!)
Communication between devices
Demo
New trends on research and software development techniques for wearable devices
New trends on research and software development techniques for wearable devices
New trends on research and software development techniques for wearable devices
New trends on research and software development techniques for wearable devices
Upcoming SlideShare
Loading in …5
×

New trends on research and software development techniques for wearable devices

726 views

Published on

Published in: Software
  • Be the first to comment

  • Be the first to like this

New trends on research and software development techniques for wearable devices

  1. 1. Tomás Ruiz-López Software Design Manager @tomasruizlopez @everywaretech /everywaretech http://www.everywaretech.es Carlos Rodríguez Domínguez Chief Technology Officer @carlosrodrigdom New trends on research and ! software development techniques ! for wearable devices Ph.D. Program on Information and Communication Technologies! University of Granada
  2. 2. Everyware Technologies Spinoff UGR Business areas
  3. 3. Everyware Technologies Spinoff UGR 1 Consulting
  4. 4. Everyware Technologies Spinoff UGR 2 Training
  5. 5. Everyware Technologies Spinoff UGR 3 Development Android iOS BlackBerry Web Android Wear Chromecast Google Glass Android TV Apple Watch
  6. 6. A brief! Motivation
  7. 7. Darcy Norman Performance Data Analyst Adidas Micoach Speed Cell Measure speed, distance, heart! rate… during training
  8. 8. Data Analysis
  9. 9. A little bit of! History
  10. 10. 1961! MIT “The Gambling! Shoe” 1810! Naples Queen First wristwatch 1600! Qing Dinasty Abacus integrated! on a ring
  11. 11. Edward Thorp Claude Shannon
  12. 12. The! Gambling! Shoe
  13. 13. Mark Anthony ! Howe! 2012 SCAM
  14. 14. Some! Data! about wearable devices
  15. 15. Global interest in! Wearable Technology
  16. 16. 70% 15% 48% People aware of the existence of wearable devices People already using wearable devices Owners of wearable devices are 18-34 years old
  17. 17. 300$ Average price of a wearable device By ! market 957$ Industrial! 134$ Pets Animals By body! location 1117$ Legs! 92$ Hands
  18. 18. 57% Self-monitoring and health concerns 35%Supplement their smartphone addiction Reasons to buy
  19. 19. 72% Wearable devices are too expensive 62%Wearable devices are not too fashionable Reasons NOT to buy 53% Would like wearable devices to look more like jewelry
  20. 20. Is it compatible with ! my smartphone? Is it easy to! set up? Is it easy to put on?! Is it accurate? Will the battery last?! How long? Is it comfortable! to wear? Is it cool?! Do I look dumb?! Is it fashionable?
  21. 21. Users’ Preferences to wear devices
  22. 22. Device distribution by price
  23. 23. OS compatibility
  24. 24. Battery duration
  25. 25. Most Funded Kickstarter Projects! > 1.000.000$ each Pebble Smartwatch Dash Headphones Emotive Insight Omate TrueSmart Agent Smartwatch Oculus Rift
  26. 26. Key features! of wearable devices
  27. 27. Hands-free! Voice / gesture control. Avoid distractions. Context-aware! Use sensors to proactively infer the user’s needs Always-on! Low power consumption. Fast wake up. Background processing Always connected! Use wireless technologies to communicate with other devices. Market! Manufacturing by both big and small companies Enhancing! Augment knowledge, facilitate learning or enhance experience Development platform! Software makes wearable devices meaningful
  28. 28. Accelerometer Components Touch Interface Respiratory Monitor Pressure Sensor Muscle Contraction Sensor FM Tuner Buzzer Blood Pressure Meter Audio Jack Barometer Magnetometer Textile Strain Sensor Pedometer DLP Display Depth Camera E-Paper Display Microphone Vibrator Thermometer Backlight LED Display Altimeter Bone Conduction Speaker/Mic ECG Sensor Clock Photo/Video Camera Perspiration SensorInfrared Sensor UV Light Sensor Galvanometer Skin Impedance Sensor Oximeter GPS Gyroscope
  29. 29. Some of what you can find on the! Market! (or about to be released)
  30. 30. Smart Cap! EDAN SAFE PTY LTD - Fatigue monitoring system (EdenSafe! Universal Fatigue Algorithm)! - Keep truck drivers safe! - EEG sensors on the brim! - Sends information to an operator! - Audio alarm when the user starts ! falling asleep
  31. 31. SensoGlove! SENSOGLOVE - Smart glove designed for golfers! - Detects intensity of the grip when! holding the club or driver! - Data analysis in real-time! - Audio and visual feedback to the user! to know if they are holding the club! correctly
  32. 32. Voyce Dog Monitor! VOYCE - Measures key vital signs and overall! health in dogs! - Heart rate, respiratory rate, calories…! - iOS and Android apps to check data
  33. 33. Fit Guard! FORCE IMPACT TECHNOLOGIES - Detection of head injuries in athletes! - Accelerometer to detect head movement! and compute the force of the head impact! - Analyze severity of head injuries! - Sends data to companion app
  34. 34. June! NENATMO - Monitor the user’s UV exposure during th day and alert when it has exceeded the! recommended limit! - Can be worn on the wrist, neck or chest! - Companion app shows data about sun! exposure and advices for skin protection
  35. 35. Shine! MISFIT - Motion-tracking wearable device! - Records activity levels and sleep! - Can be worn or embedded in some piece of clothing the company sells! - Sends data to a companion app and ! shares results with friends
  36. 36. Achillex! XYBERMIND - Ankle wrap (around running shoes) and! vest! - Measures impact forces, degree of ! pronation and orientation of the foot! - Used in retail environments! - Shows information to help customers! decide which shoes to purchase
  37. 37. Lechal Shoe! LECHAL - User navigation through vibration! - Bluetooth enabled insole! - Additional fitness functions! - Control from smartphone! - Alert if the smartphone is missing
  38. 38. Nex Band! MIGHTYCAST - Band with pluggable modules with LEDs! for user feedback! - Mainly for gaming and entertainment! purposes! - User customizable
  39. 39. PequeAlarma! INTERACTIVE TOYS + EVERYWARE TECHNOLOGIES - Monitor children proximity! - Trigger an alarm if child is going further! from a predefined distance! - Additionally checks temperature and! falls to water
  40. 40. Inivisibility Glasses! AVG - Glasses with infrared LEDs! - Not visible to human eye but visible to! cameras! - Make face recognition algorithms not! work properly! - Focus on guaranteeing privacy
  41. 41. Swarm! MICROSOFT - Scarf to help people with autism or! visual and hearing impairments! - Modules with biometric sensors that are! able to heat up or vibrate! - Connect via Bluetooth to the smartphone
  42. 42. Software Design! for mainstream wearable devices
  43. 43. Desktop/Web! first Mobile! first Wearable! first
  44. 44. Graceful degradation Progressive enhancement
  45. 45. Real life Notification Use device Micro-interactions
  46. 46. DeviceContext-aware Health! sensors Activity! recognition Calendar! & Time Identity Location
  47. 47. Glanceable
  48. 48. Low interaction Voice & Big gestures
  49. 49. Brief interactions Seconds
  50. 50. Short copy Keep text short and focused
  51. 51. Notify sparingly and discreetly
  52. 52. Building Glassware for! Google Glass! with the GDK
  53. 53. Glass Development! Kit 1 Real-time! user interaction
  54. 54. 2 Offline! functionality Glass Development! Kit
  55. 55. 3 Access to! Hardware Glass Development! Kit
  56. 56. Live Cards Currently cooking for 1683 peopleOk Glass, find a Breaking! Service Service <service android:name="es.everywaretech.breakingglass.BreakingService" android:label="@string/app_name" android:enabled="true" android:exported="true"> <intent-filter> <action android:name=“com.google.android.glass.action. VOICE_TRIGGER" /> </intent-filter> <meta-data android:name="com.google.android.glass.VoiceTrigger" android:resource="@xml/voice_trigger_start" /> </service> Android Manifest <trigger command="FIND_A_RECIPE" /> xml/voice_trigger_start.xml High-frequency rendering
  57. 57. Currently cooking for 1683 people Breaking! Service Service Breaking! Drawer Direct Rendering ! Callback Breaking! View View Breaking! Activity Activity action Live! Card Live Card Live Cards Ok Glass, find a High-frequency rendering
  58. 58. Currently cooking for 1683 people Live CardsHigh-frequency rendering liveCard = new LiveCard(this, LIVE_CARD_TAG); ! callback = new BreakingDrawer(this); liveCard.setDirectRenderingEnabled(true).getSurfaceHolder().addCallback(callback); ! Intent menuIntent = new Intent(this, BreakingActivity.class); menuIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); liveCard.setAction(PendingIntent.getActivity(this, 0, menuIntent, 0)); liveCard.attach(this); ! liveCard.publish(PublishMode.REVEAL); BreakingService
  59. 59. Menus Breaking! Activity Activity Recipe! Activity Activity onOptionsItemSelected() Menu
  60. 60. Static Cards Recipe! Activity Activity Content! View CardScroll! View Recipe! Adapter CardScroll! Adapter Content!Content!Content!Content! Card
  61. 61. Static Cards adapter = new RecipeAdapter(createCards(this)); scrollView = new CardScrollView(this); scrollView.setAdapter(adapter); scrollView.activate(); setContentView(scrollView); setCardScrollerListener(); RecipeActivity.onCreate() Card c = new Card(context); c.setImageLayout(Card.ImageLayout.FULL); c.setText("Your blue meth-candy is ready"); c.setFootnote("Tap to start selling it"); c.addImage(R.drawable.background_01); RecipeActivity.createCards()
  62. 62. Notifications Recipe! Activity Activity Alarm! Manager Selling! Service Service Intent intent = new Intent(this, SellingBroadcastReceiver.class); PendingIntent pending = PendingIntent.getBroadcast(this, (int) System.currentTimeMillis(), intent, PendingIntent.FLAG_CANCEL_CURRENT); AlarmManager am = (AlarmManager) this.getSystemService( Context.ALARM_SERVICE); am.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 20*1000, pending); Selling! Broadcast! Receiver Broadcast Receiver time goes by…
  63. 63. Live Cards Selling! Service Service Low-frequency rendering Live! Card Live Card View RemoteViews
  64. 64. Live CardsLow-frequency rendering // Get an instance of a live card liveCard = new LiveCard(this, LIVE_CARD_TAG); ! // Inflate a layout into a remote view liveCardView = new RemoteViews(getPackageName(), R.layout.selling_view); ! // Publish the live card liveCard.publish(PublishMode.REVEAL); ! // Queue the update text runnable handler.post(mUpdateLiveCardRunnable);
  65. 65. GitHub https://github.com/everywaretech/ BreakingGlass
  66. 66. Developing with the SDK for! Android Wear
  67. 67. Suggest The context stream Demand The cue card Notifications Actions Images Voice
  68. 68. Google! Play Store App installation Handheld App Wearable App
  69. 69. Google! Play Store App installation
  70. 70. Google! Play Store App installation
  71. 71. Google! Play Services Communication between devices
  72. 72. 1 App! Notifications
  73. 73. NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.event) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent); ! // Get an instance of the NotificationManager service NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); ! // Build the notification and issues it with notification manager. notificationManager.notify(notificationId, notificationBuilder.build()); Send Notifications as usual
  74. 74. Adding background icon NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.event) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .setBigIcon(R.drawable.background);
  75. 75. #gandroid
  76. 76. Adding actions NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.event) .setContentTitle(eventTitle) .setContentText(eventLocation) .setContentIntent(viewPendingIntent) .setBigIcon(R.drawable.background); .addAction(R.drawable.maps, context.getResources().getString(R.string.maps), mapPendingIntent);
  77. 77. #gandroid
  78. 78. Receiving Voice Input <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="reply_choices"> <item>Yes</item> <item>No</item> <item>Maybe</item> </string-array> </resources>
  79. 79. Receiving Voice Input String replyLabel = getResources() .getString(R.string.reply_label); String[] replyChoices = getResources().getStringArray(R.array.reply_choices); ! RemoteInput remoteInput = new RemoteInput.Builder(EXTRA_VOICE_REPLY) .setLabel(replyLabel) .setChoices(replyChoices) .build();
  80. 80. Adding pages BigTextStyle secondPageStyle = new NotificationCompat.BigTextStyle(); secondPageStyle.setBigContentTitle("Title") .bigText("Long text content"); ! // Create second page notification Notification secondPageNotification = new NotificationCompat.Builder(context) .setStyle(secondPageStyle) .build(); ! // Create main notification and add the second page Notification twoPageNotification = notificationBuilder .extend(new NotificationCompat.WearableExtender() .addPage(secondPageNotification)) .build();
  81. 81. #gandroid
  82. 82. Stacking notifications final String GROUP_KEY = "group_key"; ! NotificationCompat.Builder builder = new NotificationCompat.Builder(this) .setContentTitle("Title") .setContentText("Text") .setSmallIcon(R.drawable.event) .setGroup(GROUP_KEY);
  83. 83. Summary notification Notification summaryNotification = new NotificationCompat.Builder(context) .setContentTitle("2 new messages") .setSmallIcon(R.drawable.ic_small_icon) .setLargeIcon(largeIcon) .setStyle(new NotificationCompat.InboxStyle() .addLine("Alex Faaborg Check this out") .addLine("Jeff Chang Launch Party") .setBigContentTitle("2 new messages") .setSummaryText("johndoe@gmail.com")) .setGroup(GROUP_KEY_EMAILS) .setGroupSummary(true) .build();
  84. 84. 2 Custom! Wearable! Apps
  85. 85. Unsupported packages android.webkit! android.print! android.app.backup! android.appwidget! android.hardware.usb
  86. 86. Wearable! UI Library BoxInsetLayout CardFragment CircledImageView ConfirmationActivity CrossFadeDrawable DelayedConfirmationView DismissOverlayView DotsPageIndicator GridViewPager GridPagerAdapter FragmentGridPagerAdapter WatchViewStub WearableListView
  87. 87. System-provided Voice Actions <activity android:name="MyNoteActivity"> <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="com.google.android.voicesearch.SELF_NOTE" /> </intent-filter> </activity>
  88. 88. Node API Discovery of the nodes in the network Message API Exchange messages between devices Data API Sync data between devices
  89. 89. Packaging dependencies{ ... wearApp project(“:wearable”) }
  90. 90. Developing for! Apple Watch
  91. 91. iPhone accessory Relies on iPhone hardware No standalone apps (yet) Quick information consumption
  92. 92. Inputs Voice! (no keyboard!) Touch Pressure! (Force Touch) Digital Crown Sensors! (also from iPhone)
  93. 93. UI Elements Text input! (again, no keyboard!) Labels Switches Buttons Menu! (Force Touch) Sliders Images! (tint + animation) Maps Pin or image Timers
  94. 94. Layout Groups of controls No absolute positioning!!!! Groups of groups Horizontal or vertical groups Dynamic or static sizes Tables Custom cells (with groups inside)
  95. 95. Development XCode Storyboards (Design time) WatchKit! (ObjC+Swift) >=iOS 8.2! (all frameworks! except UIKit)
  96. 96. GlancesActionable! Notifications Extension! Apps Software
  97. 97. 1Actionable! Notifications (Automatic Basic Development!!) (Local + Remote Notifications!!)
  98. 98. Short-Look Long-look
  99. 99. Short-Look
  100. 100. Long-Look KVELLING!!
  101. 101. Development of custom long-looks Static Dynamic Different notifications for the same app!
  102. 102. Development of custom long-looks Static long-looks One dynamic label + unlimited! static labels Defined at the design-time (no code!!) No interactive controls (apart from dismissal button) All images must be known at compilation time
  103. 103. Development of custom long-looks Dynamic long-looks The interface can change at runtime Custom actions and interactive controls Remotely downloaded resources (including images)
  104. 104. 2Glances
  105. 105. Read only!! (tap anywhere to open app) No scroll Pre-designed templates Optional for apps Really difficult to design!! Context-aware (!!)
  106. 106. Glance Development Top and bottom groups! (all templates) Customizable app launch
  107. 107. Eventbox Glance Top group! (Event Date +Time) Bottom group! (Conference + event info) Upcoming event information from latest conference! that we accessed from the iPhone app
  108. 108. 3Watch Apps
  109. 109. iPhone app extension!! (for now) Can share data with iPhone (app groups) Handoff: start on the Watch and finish on the iPhone! (or viceversa) May not work without paired iPhone
  110. 110. UI Navigation Hierarchy Page-based Modal! (page-based or hierarchy) can’t be combined
  111. 111. Eventbox Watch App Page based Modal Sheet Modal Sheet
  112. 112. Eventbox Watch App
  113. 113. App Store App installation iOS App Watch App
  114. 114. App Store App installation
  115. 115. App Store App installation
  116. 116. BlueTooth LE! (no internet required!) Communication between devices
  117. 117. Demo

×