Google Glass Barry Burd Drew University [email protected] 1 This presentation © 2014 Barry Burd Slides available at http:// allmycode.com/ewing
Dec 29, 2015
1
Google GlassBarry Burd
Drew [email protected]
This presentation © 2014 Barry Burd
Slides available athttp://allmycode.com/ewing
2
Agenda
• What's Google Glass all about?• Try them on• ? & !
3
Availability
• Available to Explorers for $1500 (If you're interested, I have invites.)• Available to the general public sometime in 2014(?)• You can try it today
4
The MyGlass page
5
Network Connections
• WiFi directly to unsecured hotspot• WiFi directly to secured hotspot via MyGlass setup• Wifi tethering to Android phone or iPhone
The Card metaphor
6
8:00
"ok glass"
Ewing, NJ
64o
(most recent card)8:00 (device settings)"ok glass"
(next most recent card)
Your current timeline
7
Controlling the device
• Voice commands• "OK Glass" activates voice commands
• Head movements• Lifting head brings Glass out of dormancy
• Swipes on the side• Tapping brings Glass out of dormancy or drills down into a card (for a "sub-
timeline")• Side-to-side swipe is like a carousel for the cards• Down-swipe is "dismiss" or "back" or "become dormant"
• (No keyboard input that I'm aware of without a hack or an app)
8
Demos• Take a picture; take a video• Google for something• Get directions• Word Lens• How do you say " " in " "?• Level app, Compass app• Play a game with... Matcher, Tennis• Post an update...• My learn-a-language app• Students' keyboard apps
http://glass-apps.org/google-glass-application-list
9
10
The Level App
11
Developing for Glass
12
13
{
"kind": "mirror#timelineItem",
"id": "cedf4878-b2e7-4a9e-9fb8-6d6b66527932",
"created": "2014-02-26T04:14:20.120Z",
"updated": "2014-02-26T04:14:20.120Z",
"etag": "1393388060120",
"html": "<article>\n <section>\n <p class=\"text-auto-size\">This <em class=\"yellow\">paragraph</em> auto-resizes according to the <strong class=\"blue\">HTML</strong> content length.\n </p>\n </section>\n</article>\n",
"notification": {
"level": "DEFAULT"
}
}
14
Developing with Android: Handling Cards
swipe
15
Developing with Android: Handling Cards
16
The code:
public class CardScrollActivity extends Activity {
private List<Card> mCards; private CardScrollView mCardScrollView;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
createCards();
mCardScrollView = new CardScrollView(this); ExampleCardScrollAdapter adapter = new ExampleCardScrollAdapter(); mCardScrollView.setAdapter(adapter); mCardScrollView.activate(); setContentView(mCardScrollView); }
17
private void createCards() { mCards = new ArrayList<Card>();
Card card;
card = new Card(this); card.setText("This card has a footer."); card.setFootnote("I'm the footer!"); mCards.add(card);
card = new Card(this); card.setText("This card has a kitten background image."); card.setFootnote("How can you resist?"); card.setImageLayout(Card.ImageLayout.FULL); card.addImage(R.drawable.kitten_bg); mCards.add(card);
card = new Card(this); card.setText("This card has a mosaic of kitties."); card.setFootnote("Aren't they precious?"); card.setImageLayout(Card.ImageLayout.LEFT); card.addImage(R.drawable.kitten_small_1); card.addImage(R.drawable.kitten_small_2); card.addImage(R.drawable.kitten_small_3); mCards.add(card); }
18
private class ExampleCardScrollAdapter extends CardScrollAdapter {
@Override public int findIdPosition(Object id) { return -1; }
@Override public int findItemPosition(Object item) { return mCards.indexOf(item); }
@Override public int getCount() { return mCards.size(); }
@Override public Object getItem(int position) { return mCards.get(position); }
@Override public View getView(int position, View convertView, ViewGroup parent) { return mCards.get(position).toView(); } }