ISPP 2015

Career Opportunities in Pharmacy
The App Clinic: Device Profile Apps

[MUSIC PLAYING] RETO MEIER: Hi there. My name is Reto Meier. IAN NI-LEWIS: And I’m
Ian Ni-Lewis. RETO MEIER: And we’re going
to be taking a look at the technology behind the Device
Profile Switcher Apps Tasker, NFC Task Launcher, and
Profile Widget. IAN NI-LEWIS: So stick around to
find out what features and technical tips and tricks it
takes to make a device profile app today on– RETO MEIER: “The App Clinic.” So
we’re going to take a look at these three apps today. And they’re all fairly similar
in what they’re trying to do, which is excellent because it
makes it much easier for us to talk about the technology that
really makes them great. IAN NI-LEWIS: It’s also great
because we really relate to these apps. I think that these apps,
although they have an appeal to everyone, I think everyone
would like the functionality that these apps provide. But it turns out that the people
that actually use them are mostly hackers and
software engineers. RETO MEIER: It’s true. And that’s actually something
which we’re going to see as we go through each of these apps. You can almost see who the
target audience ends up being. So I think much like the
evolution of most technologies, and mobile phones
most recently, you start off with something that
appeals to a geek crowd. And then if you create something
which just anyone can use to make their life
easier, it’s going to become massively popular. So we’re going to look at how
these apps are approaching those problems and how we think
they can do a good job of taking that one
step further. So we’re going to start
off by looking at the standard features. So these are the things that
all of these apps can do. And so this is basically the key
core functionality that we would consider that you need
in order to make a device profile switching app. IAN NI-LEWIS: Yeah, let’s talk
about what a device profile switching app is. RETO MEIER: It’s a mouthful. IAN NI-LEWIS: It is
definitely that. Well, it’s just because
I call them task apps. RETO MEIER: OK. Well let’s call them
task apps. IAN NI-LEWIS: You know what? I don’t call them anything. RETO MEIER: Maybe that’s
the problem. You call them task apps and– IAN NI-LEWIS: Maybe
they’re auto apps. The thing about device profile
is, I think the terminology comes from the idea of having
a device in a completely different state for
certain things. And we certainly introduced that
concept when we started looking into Docs. And the idea is you have one
profile when you’re undocked versus another profile
while you’re docked. But these apps that we’re
looking at today go far beyond that. And I think it’s almost hard
to talk about a specific profile because there are
multiple overlapping things that each app can do. RETO MEIER: Absolutely. IAN NI-LEWIS: But the core of
it is we’re going to change something in the system, or
possibly just do something in this system when you execute an
action, when the conditions of the system change. RETO MEIER: Exactly. And so the idea here is that
rather than having a single toggle, you’re able to say I’m
at home, I’m at work, I am entering a meeting, whatever
your profile case is. And execute a whole bunch of
different settings changes or launch a bunch of apps, and as
Ian says, basically perform a series of actions in relation to
that change in environment. So they can all change the
volume in ring tones, they can all change brightness, they
can all modify your connectivity settings as well. Some of the apps, I think Tasker
in particular, goes significantly further
than that. But these are the core things
that I think anyone downloading one of these
apps is going to want to be able to do. Mute the volume, change your
ring tone, alter the screen brightness based on time
of day or location. IAN NI-LEWIS: And in addition
to that, although it doesn’t really fit into the profile
idea, I think I would add sending alerts and
notifications, SMSes, things like that. RETO MEIER: Absolutely. OK. So these three apps. Like we said, they have these
things in common. I like to think of them as three
variations on a theme. And we’re going to see this
as we go through. Tasker is kind of like
a self driving car. You spend a lot of time
setting it up. And once it’s going, you just
sit there and it does everything for you. IAN NI-LEWIS: I wonder if that’s
a really good analogy or if it’s going to resonate. Because while everyone can
understand the experience of getting in a self-driving
car– I mean, everyone’s been
driven by someone– only people like you and I know
what it takes to set up a self-driving car. RETO MEIER: This is very true. IAN NI-LEWIS: Hours
in the morning. RETO MEIER: Yeah. I know, right? You’ve got to plug things in. We shouldn’t go into. IAN NI-LEWIS: Right. RETO MEIER: NSC Task
Launcher is kind of like driving an auto. It does most of the hard work
for you, but you still need to initiate the action. You still need to
do something. And you still have some
element of control. Profile Widget goes
the other way. You basically have to initiate
it yourself entirely, choose which widget to click, which
profile you want to switch to. So you have to be conscious of
that rather than just being able to use a particular
location. So let’s talk a little
bit about what we want from the apps. So we’ve talked about what they
can do, what they all should do, and how they vary
at a very high level. So what are the things that you
want to see in an app like this for it to be your go-to? IAN NI-LEWIS: Well, I think the
most important thing that I want is for it to be able
to control everything. I don’t want any part of
my system to remain untouched by this app. Now, of course, as we talked
about yesterday– we had a long conversation about
permissions and how wanting to control everything imposes
some really interesting restrictions and
responsibilities on the developer of the app. But I want it to
do everything. I don’t want there to be
anything that I can do to the phone that this app can’t,
because I want it to be an agent or a proxy for me. I also want to make sure that it
can combine multiple events and multiple actions with
multiple conditions, because the sort of profile that I can
use to tell you that I’m at work, for instance, unless
it’s got machine learning along the lines of
Google Now– only next year’s version
of Google Now– it probably doesn’t know
that I’m at work. It probably doesn’t know
that I’m in a meeting. I need to be able to tell it
that, yeah, when I’m attached to this Wi-Fi network during
these hours of the day, and possibly some other conditions,
that’s when I need to be not disturbed. Or that’s when I can accept
text messages. So I need to be able
to push all of those into one container. And several of the apps that
we looked at have this functionality, but only
in the pro version. So that’s something
to look for. RETO MEIER: Absolutely. IAN NI-LEWIS: Now the other
thing that you need, I think you mentioned, is these
things are really difficult to set up. RETO MEIER: Yes, they are. And I think the core thing here
is that it’s something which if you describe the
functionality to people, it’s kind of obvious. And there’s been things like
this built into mobile phone operating systems for a
long time on and off. This notion of being able to
click a button, change a setting, and you’re at home, at
work, receiving calls, not receiving calls. I think the challenge has always
been presenting this in a way that just regular
people can use. At the moment– and we’ll see it varies for
each of these apps. But at the moment, you’ve got
that tendency to feel like you’re having to program
the phone, right? And that’s what you want
to get away from. So when we say easy to use,
what we mean is easy to configure, especially. The actual use case, I think,
for all three is pretty straightforward. But the configuration
is the trick. And so we really want to make
it as easy as possible. And that kind of relates
to the last point. IAN NI-LEWIS: Yeah there’s
really two ways that you can make this easy to use. You can either make it very easy
to program, which if you figure out how to do
that, let me know. RETO MEIER: Yeah, that
could be [INAUDIBLE]. IAN NI-LEWIS: I used to program
games, and one of the things that we would always say
is, boy, I don’t want to program all this game play. It seems like the designers
should be able to do that. And so multiple projects,
this happened to me. I wasn’t always the one
calling the shots. But you make a scripting
language and give it to the designers, and they’re
like, oh thanks. And then they come to you
and say, hey, can you write this script? And you realize, wow, I just
spent a huge amount of time making this scriptable, and I’m
going to have to write all the code to script it. And that’s the feeling that
I get with these apps. For a software engineer or
someone who’s used to thinking in terms of code, these
are very easy to use. Some of them are more cumbersome
than others, navigation-wise. Some of them are prettier
than others. But the concepts are easy. At the same time, for most
people, I think it’s going to be like programming a VCR, which
is, you want to do it. You know what you want. But you’re never
going to do it. You’re never going to figure
that out, right? RETO MEIER: It’ll one person
in the house who figures it out, and that’s it. IAN NI-LEWIS: Exactly. RETO MEIER: They’re the go-to. Can you set up the– IAN NI-LEWIS: No, one person
in the extended family, and you don’t want to be that guy. RETO MEIER: You do not
want to be that guy. IAN NI-LEWIS: So let’s take
a tip from the VCR world. You remember that this was very,
very difficult until things like TiVo came along. And what they were doing was
leveraging the information that was on the internet or
in the community to help– instead of saying, I want to
program this amount of time, you could say, yeah, I want
to watch this show. RETO MEIER: Yeah, which
is always what you want to do, right? No one just randomly wants
to record half an hour of television sometime
on Friday night. There is a thing. There is something on that
they want to record. IAN NI-LEWIS: Usually, yeah. RETO MEIER: Generally. IAN NI-LEWIS: So it turns out
the best way to solve this is to have a community repository
so I can go to the internet and say, oh yeah, someone else
had a problem where they don’t want to receive alarm
notifications between 10:00 PM and 6:00 AM. And yet they still want their
clock to be able to send them an alarm. And I pull down that code and
install it into the task application that I’m using. And boom, I got what I wanted. And I didn’t have to learn
how to program the thing. So the ease of use is important,
but you can get away with less ease of use if
you have a better repository of community scripts that people
can very easily browse and install. RETO MEIER: Exactly. And this gets to one of the
points which we tend to make again and agains– it’s one of
these recurring themes– is you want to make it really
easy for people to see the value of your app within
the first 30 seconds of installing your app. So if they can press a couple of
buttons as soon as the app is open and say, ah. Oh, OK, cool. So this is now going to mute my
volume after 9 o’clock at night, before 6:00 in the
morning and maximize my alarm. That’s perfect. That’s going to be
useful for me. I can use this right away. And it gets their minds thinking
as to how else they’re going to use it. If all you’re presenting them
with is a blank canvas, hit plus to create a new action
and then you’ve got this massive array of controls for
virtually everything, if the app is doing the right
thing, it’s daunting. It’s like, I don’t know how I
would even want to use this. And they’ll move on. So make that initial action
of learning the app and understanding how to use it as
simple and easy as possible, and you’ll get a lot of
mileage out of that. IAN NI-LEWIS: So let’s take a
trip to the top of the power curve and possibly the
bottom of the ease of use curve with Tasker. OK. As you know, a feature graphic
is a great way to grab people’s attention and let them
know in a nutshell what your app is about. And Tasker doesn’t have
a feature graphic– RETO MEIER: No it doesn’t. That’s unfortunate. IAN NI-LEWIS: Which
is very sad. So I’ve gone ahead and tried
to take the liberty of creating a quick mock up. I’m not an artist, and so this
doesn’t have the flair of, let’s say, a Roman
Nurik design. But I think it captures almost
perfectly what the average user can expect when
they start Tasker. Yeah. You like that? RETO MEIER: That’s
pretty good. It’s got glow, it’s got big
text, which you like. Yeah, I think it’s
representative. IAN NI-LEWIS: Yeah. And a beautiful photo. RETO MEIER: Absolutely. IAN NI-LEWIS: Only 14 iStock
photo credits. RETO MEIER: Nice. IAN NI-LEWIS: The point that
I’m trying to make– I’m being a little
[INAUDIBLE]. It’s just like an airliner. It might be the best way to get
you where you want to go, but there’s a good chance that
you’re not actually qualified to take the wheel and
fly it yourself. And I think that’s the way most
people are going to feel about Tasker. RETO MEIER: That’s the
thing about Tasker. It is an app which
does everything– literally everything– but it is
a little like sitting down in the console of a 747 the
first time you open it up. IAN NI-LEWIS: Bingo. RETO MEIER: So you spent a
little more time looking at this app, didn’t you? IAN NI-LEWIS: Oh yeah, yeah. It’s a great app. And oh, yeah– RETO MEIER: Let’s
switch sides. IAN NI-LEWIS: Look at that. Yeah. RETO MEIER: Nice. IAN NI-LEWIS: OK. All right. So Tasker is tackling a
really difficult job. The mission of the Tasker app is
to let you define what your phone does in any specific
set of circumstances. And it wants to let you define
those circumstances as precisely as possible and give
you as many things to do in those circumstances
as possible. So for instance, you might want
to turn off Wi-Fi when you leave your house, or turn
off Bluetooth when your battery gets low, or
even– and this is something Tasker can do– automatically respond to
text messages when you’re in the car. It sends a little text saying,
sorry, I’m driving. I can’t respond to you. Which I think is awesome. RETO MEIER: That’s very nice. Yeah. IAN NI-LEWIS: I actually
used Tasker for several months myself. I don’t think I’m as big of a
fan of these apps as you are. I have no idea why. I think it’s just because I have
very irregular habits. RETO MEIER: I think that’s the
key to these apps, is they presume that you are going to
want to respond to the same situations in the same way. IAN NI-LEWIS: Right. RETO MEIER: At the same
general time. IAN NI-LEWIS: Yeah, exactly. Whereas I am irregular, lazy,
and sort of odd in my habits. RETO MEIER: You’re
a free spirit. IAN NI-LEWIS: Right, exactly. And you’re practically
British. So depending on where you’re
coming from, you’ll have a different experience
with this. But there was a time in my life
when our dear employer decided to turn on alarms for
all calendar invites that came from our corporate email center,
which meant that we got alarms set on all of
our holiday reminders. You’d get woken up at midnight, going, oh, it’s midnight. It’s Christmas Eve. Don’t forget to sleep
in tomorrow. That was a good time. So I specifically used Tasker
to just turn off calendar notifications between 11:00 PM
and 1:00 AM, and that worked out pretty well. RETO MEIER: Nice. IAN NI-LEWIS: But when you
think about it, Tasker’s really offering an environment
for programming your phone. So it’s not surprising that most
of the people that love this app are software engineers,
and using it feels like software engineering. In fact, you can actually write
Android apps in Tasker. We’re not going to cover
that functionality. That’s for a different time when
we talk about on-device IDE’s someday. RETO MEIER: That would
be a fun one. IAN NI-LEWIS: So it’s a very
powerful program, and this is really the problem. With great power comes great
usability issues. My complaint with Tasker,
though, is not that it’s difficult. I expected that. It’s that it’s more difficult
than it has to be. So let’s switch to
the giant phone. Oh, and we can swap places. RETO MEIER: We’re going
to swap back. IAN NI-LEWIS: Yeah, yeah. RETO MEIER: This is getting
a little crazy. IAN NI-LEWIS: Yeah. RETO MEIER: You’re going to trip
yourself over my cord. IAN NI-LEWIS: I said wireless
mics, and everybody said no, that’s crazy. And I said, I’m buying them
anyway, and then they sucked, and everyone went, OK. RETO MEIER: So now after last
week’s issue, some people said that we shouldn’t use
the giant phone. They said that it’s too much
phone for us to handle, that a smaller, more discreet phone
might suit us better. To them I say, witness the power
of our fully operational giant phone. IAN NI-LEWIS: Which I can
handle just fine. RETO MEIER: OK. Well, that’s disturbing. IAN NI-LEWIS: Yes. So leaving aside the issues that
we have with navigation, legacy buttons, and just
general Android design guideline issues, let’s just
focus on the meat of Tasker. Let’s actually define a task. So when I start up, the first
thing I see is three tabs, is Profiles, Tasks, and Scenes. Now as a user, I’m thinking
to myself, OK, I know I want to do tasks. At least that’s what
I thought. Right? RETO MEIER: Sure. It’s Tasker, right? IAN NI-LEWIS: Now I think that
other people might say, oh, I want to define a
profile, right? It depends on how
you look at it. RETO MEIER: Yeah. I think it depends on how
familiar you are with the programs and the terminology
that goes around it, because it’s not always obvious
to me what’s a task and what’s a profile. IAN NI-LEWIS: Right. Now it turns out in Tasker, a
profile is a set of contexts that contain tasks. RETO MEIER: OK. IAN NI-LEWIS: Now you’ll
notice there is no Context button. Instead, there is a Scenes
button, which actually sounded like a content. Like oh, maybe if I’m in this
scene– perhaps I have become an actor in the scene. When I exit stage left. RETO MEIER: Are we all not
actors on the stage of life? IAN NI-LEWIS: I will be
pursued by a bear. So, acting. So I immediately went to Scenes because that made sense. Now it gives me a helpful pop
up, which essentially says, please do not press
this button again. RETO MEIER: Wait, why did
you press the button? Stop pressing it. IAN NI-LEWIS: Yes. But it turns out that Scenes are
actually the GUI designer for writing your own
applications in the Tasker design language. RETO MEIER: That’s
kind of cool. IAN NI-LEWIS: It is cool. RETO MEIER: While you’ve got
that up as well, what I wanted to point out, A, modal
dialog– please don’t do modal dialogs. IAN NI-LEWIS: Right. RETO MEIER: Particularly when
it’s a modal dialogue popping up over an empty screen. So I mean, there is
nothing here. So if you want to display some
information, that’s the place to put it. Not on a pop-up box. IAN NI-LEWIS: Well, and that’s
really the issue that we’re going to see over and over again
is that this is a very modal dialog based
application. And I think part of it,
especially when you look at the buttons, I think you can see
that this was definitely designed in the Eclair era. And that used to be, I think,
a better way of doing things than it is now. I think we have much
better design language now than we did. RETO MEIER: I think the problem
was at that time, it was quite ambiguous. And it was really up to you. And if you wanted your app to
look good, you really needed to do it all yourself. And I can see that they’ve put
some effort in here to try and make it look better
than the stock Gingerbread, Eclair stuff. Unfortunately, now it starts
to look a little dated. And look, I understand. We all definitely understand why
people have been reluctant to update their app with every
single version of Android. But since Holo, since Android
3, things have been pretty consistent. We’ve added new things. But if you create an app which
is consistent with those design guidelines, I think
you’ll find something which is going to look good for
a while to come. IAN NI-LEWIS: So I’m really
excited to see what Roman has to say about this. But I will point out that there
are some great apps on Google Play right now that
sign a little bit more in this area. Now I haven’t found anything
with the power of Tasker. But for instance, there’s an app
called Automate It, which uses almost an identical
paradigm, but it allows me to swipe between the
different pages. And as I do different actions,
where Tasker uses modal dialogs, Automate It uses drop
downs, and it uses– what do we call those things
where they open up? RETO MEIER: Like an expanding
list view? IAN NI-LEWIS: Exactly. Exactly. So they use expansions. One really obvious place, for
instance, is when you choose a location on Automate It, then it
expands a map view directly underneath the piece of script
that you’re working on. Whereas here, it actually takes
you to a completely different screen. RETO MEIER: All right. So it’s just providing you
the context without breaking your workflow. IAN NI-LEWIS: Exactly. RETO MEIER: I like that. IAN NI-LEWIS: Again, not
a huge big deal. Just some things that could
be polished there. The important thing is helping
people to understand how these things actually work. Now these little modal dialogs
that pop up are certainly better than nothing, but
could be better. Now it is pretty obvious,
though, what I need to do to add a profile. I don’t really want to click
the Plus button down here. I probably would’ve rather
had it in the list, but that’s a quibble. I do like that the new profile
name is optional. Great. I can click right past it
without having to think of something to type in and have
all of my profiles named QWE. So the first context it’s
going to give me– I’m sorry, it’s naming
it first context. But it’s giving me some options
for context, and this is essentially the conditions
under which you are going to run. So for instance, I’m going to
want to be, let’s say, during a particular time. Time entry is painful, more
our fault than theirs. RETO MEIER: It’s just our
fault, but we fixed it. So please hide our shame. IAN NI-LEWIS: Exactly. So OK. I’ll say it’s in this. And then I’m going to do a task
at that particular time. Again, optional name,
thank you. And a task contains actions,
and then actions go into a huge amount of work. RETO MEIER: This is good,
because this is everything, I mean, it’s everything you
could want to do here. IAN NI-LEWIS: Exactly. RETO MEIER: It’s great. IAN NI-LEWIS: And it’s
categorized. So that’s good. I mean, there’s probably over
100 options here, and I don’t have to look at all
of them at once. So maybe I want to do
a particular task. RETO MEIER: That’s nice that
you have ifs and elses. IAN NI-LEWIS: There are. There are ifs and
elses all over. RETO MEIER: This really is kind
of a programming language for programming your phone
rather than programming apps. IAN NI-LEWIS: There are, in
fact, even variables that you can set, et cetera, et cetera. RETO MEIER: So I see
the challenge here. So the Tasker guys–or guy. I’m not sure how many
people are involved. But they’re basically trying
to implement a GUI-based programming language for
altering your phone’s behavior on the fly. IAN NI-LEWIS: Exactly. RETO MEIER: And that’s
apparently hard. That’s not really surprising. IAN NI-LEWIS: It’s a relatively
difficult activity. RETO MEIER: So we really are
asking them to say, look, we love the functionality of your
jumbo jet, but we’d like to have just sort of a steering
wheel and maybe a brake pedal and an accelerator. IAN NI-LEWIS: Well, this is
where I think Tasker could make the most difference is in
having a usable repository that can be the first
thing that I see. So instead of seeing the ability
to program things coming up initially, I’d rather
see a bunch of stuff that other people
have programmed. RETO MEIER: But this is the way
a lot of people learn how to write code in
a new language. It certainly is for me. I’m not so much the “read all of
the API docs first before I get started.” I’m all like, let
me download a sample app that does something in the vague
vicinity of what I want, and I’m just going
to mess with it. IAN NI-LEWIS: Oh I think it’s
telling that, for instance, the JavaScript guys we work
with, they say, yeah, they’ll never obfuscate source code,
because otherwise, how would anyone learn JavaScript? And I answer, no one
learns JavaScript. So I don’t want to get too
far into it, but– RETO MEIER: Yeah, we probably
shouldn’t rabbit hole too far. IAN NI-LEWIS: The other thing
that I wanted to bring up though was– well, actually, let me finish by
adding some random accent. OK. They do have conditions on
everything, but it makes the defining a task a little bit
difficult, because you need to define, essentially, an event. Now, they call them contexts,
and they can be stateful in the sense that you can
enter and exit them. But you basically have to say,
in response to this event, do this task, but only if
this other thing. And that’s how most of the
things are structured. And some of the other things we
looked at were a little bit more explicit as far as
the conditionals. Because right now, you’d
actually have to burrow in to each conditional to see which
one actually applied. RETO MEIER: Gotcha. IAN NI-LEWIS: OK. So we could talk about Tasker
for hours and hours. It’s a wonderful program. You should definitely
check it out. But let’s go ahead and move on
to something that’s maybe a little bit easier
to configure. RETO MEIER: Yeah. It’s a little easier for you. Before we do, I just wanted to
do a really quick call out. Thank you for blocking
the photo of me. One of the things about
an app like– perfect. It’s like I’m– whoa, what’s the photo? What’s being overlaid? One of the beautiful things
about Tasker and a lot of these apps is that they function
based on location, so whether you’re at home or at
work or whatever else. And so it’s really, really
important in that context to be as efficient as possible in
your location updates, because this is just something which
is going to help give you a short cut. No one wants to sacrifice hours
of battery life to be able to save themselves
two or three seconds of clicking things. So I have a deep dive into
location on the Android Developers blog, which you can
check out, which can give you some of the details there. IAN NI-LEWIS: There’s also a
section on the Tasker wiki. So it’s not that they don’t
have a community. It’s that they have a community
with a wiki, where you can download XML
and presumably load it into Tasker somehow. So it’s not that it’s not
friendly, it’s just that it’s not friendly for
normal people. RETO MEIER: Yeah. Yeah. OK. IAN NI-LEWIS: So they have a
section called “Location Without Tears,” which also goes
over some of this and has some very interesting Tasker
specific info. RETO MEIER: Perfect. All right. So let’s have a look at the
next app which is NFC Task Launcher from Tagstand. Now they have, as you can see,
a lovely feature graphic. Gives you an idea of how
it’s going to work. It’s kind of artistic. I kind of like it. Don’t know if you’d necessarily
need to have the phone on there, but in this
instance, it kind of makes sense, because it’s showing
how the app gets used. There’s an NFC tag there, you
hold your phone over it, that’s how the magic happens. Now I actually have used
this app quite a bit. I had a big set of suggestions
from my initial experience working with the app, getting
everything configured. And since I had everything
configured the way I wanted to, I haven’t really had to go
through that process again. So I opened up the app just to
confirm my thinking, and it turns out that they’ve fixed
pretty much everything I was going to tell them to. IAN NI-LEWIS: It’s good being
Reto Meier, isn’t it? RETO MEIER: I don’t even
think I told them. IAN NI-LEWIS: I think you
blogged about it, and they just read your blog. RETO MEIER: That’s possible. That’s possible. But it’s wonderful
for me to see. Like the big questions I had was
particularly around things like navigation, getting
started, a lot of things that we’ve already talked about. And they’ve actually fixed a lot
of what I was asking for. So as a little bit of context,
the way I used this app, I actually talked a little bit
about it when I did a blog post about how I modded
my Prius to be able to use my Nexus 7. IAN NI-LEWIS: I love that
you drive a Prius. That’s so San Francisco. RETO MEIER: It’s so perfect. If you’re going to move, move. IAN NI-LEWIS: I, on the other
hand, drive a Mack truck with windshield washers that squirt
West Texas light crude. RETO MEIER: Nice. IAN NI-LEWIS: Yeah. RETO MEIER: That way,
you get that rose colored tint to the world. IAN NI-LEWIS: You’re not going
to kill many birds in your Prius, that’s all I’m saying. RETO MEIER: Well no, you
have to really aim. So this is how I use
the app every day. So in my car, as you can see,
there I’ve got a tablet. There’s an NFC sticker
stuck on that mount. So when I put the tablet in
there it turns on navigation, it turns on Wi-Fi and connects
to the hot spot which is enabled when I put my phone
into the center console. So again, I’ve got a sticker
stuck underneath the other little tray for my mobile phone,
and that turns on the hot spot for my Nexus 7. It also turns on the Nexus 7
music, so as soon as I sit down, put it there,
I start getting my music, which is lovely. When I get to work, I have an
NFC tag stuck under the bottom of my desk. I’ve got a little X
marked on my desk. I’ve got my phone there. It turns off my volume, connects
to the office Wi-Fi, and does a bunch
of other stuff. IAN NI-LEWIS: So you’re able to
get it through your desk? RETO MEIER: Yeah. It’s like an inch of, I guess,
really, really light wood. But it gets through,
which is nice. At home, where I put my wallet
and keys, again, I have an NFC tag. So I just pop my phone
against that. Connects to the home Wi-Fi, does
all of the other things I need at home. And then the last thing is I
have a little coaster, which I stuck an NFC tag to. It sits next to my bed. Boom. Pop is there when
I go to sleep. Mutes everything, turns on the
alarm, et cetera, et cetera. So it’s really automating
a lot of the stuff that I do every day. And once you’ve set it up once,
you never really need to think about it. IAN NI-LEWIS: It’s genius. And actually, I tried to do
this very same thing. I ran into a few problems. I realized that actually, this
app works a lot better if you’re consistently sober. So that was an issue. RETO MEIER: There
is an aim issue. IAN NI-LEWIS: Right. RETO MEIER: There is that. IAN NI-LEWIS: But also, the one
thing I noticed– and this really isn’t an issue with
this app, per se. It’s more of the operating
system in general. I would love to see us
add this, is the app needs to be installed. So for instance,
I thought, oh. I’ll put a Wi-Fi sticker
for my guest network next to the door. That was one of the things
the app suggested. Then I went to the sticker, and
it turns out first thing it needs to do is download the
app, because there’s no general set up a Wi-Fi
NFC intent. RETO MEIER: Which is a shame. Which in a way is a shame
because that would be really useful, but it would also make
this app less useful. So, yeah. It’s chicken and egg. You always want to stick a bar
code onto the NFC tag so you can scan the bar code, which
will install the app, which will then let you use the tag. IAN NI-LEWIS: Well, no. It does actually install
the app. But the problem for me was,
well, if I’m bringing somebody over to use my guest network,
and the first thing they need to do is install an app, how are
they going to get to the network to install the app? RETO MEIER: That’s going
to be a challenge. IAN NI-LEWIS: Right. I mean, you might say via mobile
network, but come on. This is the Bay Area. What if they’re on AT&T? RETO MEIER: And then
they’re out of– [INAUDIBLE], IAN NI-LEWIS: In my house,
yes they are. RETO MEIER: Yeah. I guess this is particularly
useful if you happen to have a Nexus Q. So you need to get onto
the right network so you can have the tag here and you
don’t have to worry so much about Wi-Fi in general, but
for specific Wi-Fi. Anyway. We’re rabbit-holing again. So I want to move
on real quick. So happily, this– now we’re going to
have to switch. We did this really well. IAN NI-LEWIS: Yeah. RETO MEIER: You should
go in front. IAN NI-LEWIS: All right. RETO MEIER: Excellent. Yay. So like I said, I had
a whole bunch of suggestions for these guys. But as it turns out, I can go
through this pretty quickly, because most of what I wanted
them to do, they now do. So the welcome is really nice. This, I think, works
really well. This is what happens when
you load the app for the first time. You have a little
welcome dialog. It explains how to use the
app, what it’s there for. But it’s not modal. It’s not going to stop you
from doing anything else. And you can dismiss it after
you’ve read it the first time. So I actually really like this
as an introduction to an app. I think it works really,
really well. Once you do dismiss this, you
have preexisting suggestions. You have all of these profiles
which have descriptive names. So you go, this is for work. This is for home. This is for daytime, nighttime,
These things which you can immediately say, OK,
well yeah, that sounds like exactly what I want to do. I downloaded this app so that
I can shut down everything when I went to sleep. And so I’m going to choose this
and see what happens. And then once you select any
of those, you can then continue to modify them. But it gives you a start. It gives you, as a user, an idea
for how am I going to use this and what do I need to do
in order to get the obvious things working? So we’ll jump back to
the giant phone. And I’ll bring up NFC
Task Launcher. Perfect. So it’s all got a really nice,
modern Holo-type UI. Still customized. It’s got this orange theme,
which is similar in color to the Gingerbread orange
but nicer. It actually looks good. IAN NI-LEWIS: Exactly. RETO MEIER: It’s a
different shade. IAN NI-LEWIS: More creamsicle,
less pumpkin. RETO MEIER: Indeed. Indeed. And you can see here, you’ve
got all these locations. So these are popular tags, which
people have created and configured. You’ve got your nice icons. And that was one of the things
I wanted to say. Once you’ve created your own
tags, they’re listed here under My Tags. But you lose the cool icons. Like, I would like to be able
to have that as a shortcut. It’s a small thing, but it just
makes it a little bit easier, particularly if you
have a lot of these, to be able to easily recognize them
if you want to edit them. Now of course, you’re not
actually going to be using the UI that much, because it’s one
of those you set up once you leave it forever
type scenarios. So if we go through, we’ll
create a tag based on something else. So create a Wi-Fi network. That’s probably a bad example
because we need to actually have a Wi-Fi network. We’ll go home. So it’s going to change
my ring type to normal and turn on Wi-Fi. That makes sense. And when you get to this point,
it can almost get a little bit confusing. So we’re going to say
Save and Write. So I like that they’ve got the
confirmation at the top here. That’s great. And at this point, it gets
a little bit confusing. So this is the point where you
would put your phone against the tag to record this. Once you do, it will vibrate,
tell you it’s done, which is great. But then to finish, you have
these two options. So on the one hand at the top
left, it says Finish. And on the top right,
it says Done. And if you hit Finish, it goes
back, which is correct, because it’s actually the up
affordance that I’m clicking. So you do have to write Done. But I just found that a
little bit confusing. You almost don’t want
to use that word. IAN NI-LEWIS: So in
other words, this page is called Finish. RETO MEIER: Yes. IAN NI-LEWIS: And it has
an up affordance. RETO MEIER: Yes. IAN NI-LEWIS: But it has
also a Done button. RETO MEIER: Yes. IAN NI-LEWIS: Do they both
do the same thing? RETO MEIER: No. So if you hit the up affordance,
it goes back. And that’s kind of
important here. So up, in terms of Android,
means, don’t go to a sibling, go to a parent. Now basically, what you’re
going through here is a wizard, and a wizard is a
horizontal sibling flow. You’re moving from equal
stages along the path. So Back should take you back. Up should take you out
of this workflow. And in this case, it’s
basically the equivalent of cancel. So you probably don’t actually
want to do an up affordance here. You want to have basically
a Save and Write. Or I can’t remember the name
that Roman has been using for it, but the alternative way, you
basically have a Save and a Cancel right at
the top here. So those are the two things
that you can do. IAN NI-LEWIS: A commit
type of thing. RETO MEIER: Yeah, exactly. Like a Commit or Cancel
at any point. IAN NI-LEWIS: Right. And in general, if you’re going
to do a wizard, the very best way to do it that
users like is to just use a view pager. Because it is weird to have
a verb in your action bar. RETO MEIER: In your title bar. IAN NI-LEWIS: Yeah,
in your title bar. But having that as a particular
tab on a wizard, especially a wizard that you
can swipe through, which is becoming a far more interesting
and understood action than a Back
button, honestly. I mean, you’d think a Back
button is the easiest thing in the world. RETO MEIER: Yeah. IAN NI-LEWIS: But I’ve seen
people with a Back button right there trying to swipe. Because as soon as you start
thinking in a horizontal flow, you want to be able to swipe
view pager style. RETO MEIER: Exactly. And that is still one of the
bigger challenges, and particularly if you’re using a
view pager to swipe between things which aren’t necessarily contextually identical. So if I swipe along this main
page, it tells you where you can buy tags, which is a great
feature, because the first thing you goes is,
oh that’s great. But where do I get
the tags from? IAN NI-LEWIS: Right. RETO MEIER: So this is nice. And you’ve got Popular Tags,
My Tags, and Statistics to tell you how many actions you’ve
performed and how much time you’ve [INAUDIBLE]. IAN NI-LEWIS: So popular tags,
is that sort of a community repository? Can you upload your own? RETO MEIER: Well, this
is what I’m not sure. I don’t know that you
can upload your own. So I’m not sure whether they
mean popular as in used by a lot of people or popular as in
asked for by a lot of people. So they don’t have a community
repository. It would be wonderful
to see that. But the trick here is that when
I’m in By Tags, or if I’m over in Statistics, mentally
my context has switched. I’m no longer looking at tags,
I’m looking at stats. And so my temptation is more
frequently than I’d like to admit to hit Back to go back
to my tags, and then I exit the app and I’m angry
and frustrated. I don’t necessarily have a great
solution, but it’s a risk of having contextually
independent items all in the same view pager. So again, we’re short on time,
so I don’t want to go into too much depth here. One thing I did want to point
out, so the difference between this and Tasker is Tasker
is fully automated. You set up your context, and
then you leave it in your pocket and it does
it all for you. IAN NI-LEWIS: Right. RETO MEIER: This, you do
need to hit the NFC tag, which is nice. The disadvantage here, of
course, is that you have to be conscious of it. You have to have a tag
in the right place. You have to manually do the
tapping rather than just having it automatically. The advantage is that you
don’t need to have any services running. It’s really efficient. Nothing needs to be running
in the background. The app can be completely
gone. And once you hit an NFC tag,
it’s still going to wake up and do what it needs to
do, which is nice. So how would you go about
building something like this? Well, you need to learn
a lot about NFC. Really, the key here is you need
to learn to listen for tags and try and be as specific
as possible as to the type of data that you’re trying
to listen for so that you’re not colliding with other
apps which are also listening for NFC data. There’s a couple of really good
Google IO talks, which you can check out. One from 2011 with Nick Pelly
and Jeff Hamilton, which really give a great introduction
to how NFC works, how you would build an
app that works in a similar way to this. And then last year there was
another follow-up session to that, “Up Close and Personal,
which talked a little bit more about Android Beam, but again
gave more of an update into how NFC can be used for
apps like this. So I’m going to buzz really
quickly through Profile Widget as well. So this is the fully manual
version, I suppose. You have to know exactly what
you’re switching to. IAN NI-LEWIS: Right. So it’s got the task part but
not the detection part. RETO MEIER: Exactly. Exactly. It’s probably one of the most
simplistic of the three apps that we’ve looked at. But in some ways, it’s almost
a positive, because there should be a much smaller
learning curve to get going. IAN NI-LEWIS: Indeed. Well, especially as we talked
about, deciding what profile I’m in is actually a really
interesting machine learning task, which a lot of users
wouldn’t be able to program even if they knew how. So this is actually
really attractive. RETO MEIER: Exactly. So you can see, they’ve got
the nice profile graphic, which is great. Always like to see that. And that is a prerequisite in
order to be considered for our Pure Android collection, which
we will have more on soon. We’ve got a few likely
candidates, which may be getting un-veeled. Soon. Un-veeled? That’s not a word. Unveiled. IAN NI-LEWIS: Assumed
it was British. RETO MEIER: Maybe it is, but
either way, I don’t know it. Should we switch back? IAN NI-LEWIS: Sure. RETO MEIER: This is awesome. All right. IAN NI-LEWIS: We had half an
hour to review these slides. How did we not catch this? RETO MEIER: Longer than that. So this is Profile Widget. So they’ve got a dashboard
pattern, which is a bit of a shame, particularly because one
of the key things for me on all of these apps is
that they need to work well on tablets. Because there are tablets with
NFC, and I use those just as much as my phone. So it doesn’t work
quite as well. It also means that the learning
curve is much higher than it should be. I started this app off, and this
is the page that I get. And it’s not obvious to
me, what do I do here? Profile, Widget, I don’t really understand how to get going. And as you navigate through the
app, it doesn’t really get any clearer. It’s kind of hard
to understand. And I’ll show you that
when we bring up the giant phone in a moment. One thing that I really did want
to point out is they have a really nice toast. So because it’s all sort of
automated, [? plus ?] a widget, you don’t have an
activity to show information, you need to use something
like a toast. And they’ve customized their
toasts really well. They’ve added color,
a background. So it’s not just sort of that
general, standard generic toast which pops up. IAN NI-LEWIS: And this is one
of the few places where a toast is truly appropriate. RETO MEIER: Exactly. And it’s nice to see that they
have used it appropriately and prettied it up as well,
which is great. So let’s jump to the giant
phone really quickly. So if we have a look at Profile
Widget here, you can see straight away if we go
back to the main page. So the way it works is, you go
into your profiles, and then there’s Activate Profiles
and Create and Edit. And what you actually want to
do for most cases is either Create or Edit a profile. Reordering and activating
are secondary functions. If we go into Editing,
Day, then we end up with this screen. So we’re already having to
navigate deeply into the innards of the app. And at this point we can do
things like change the icons, modify the sound, connection
and screen. So one of the others, I guess,
not necessarily issues but observations about this app is
it doesn’t have quite the same level of control that
the others do. So you can’t do things. You can turn on and off Wi-Fi,
but you can’t specify a Wi-Fi network to connect
to, for example. So it’s a little bit
more limited in its functionality there. As well, once you actually have
it set up, it creates this really nice widget on the
home screen, which is great. Again, they’ve put a lot of time
into the design effort of making sure that the
things you actually use a lot look nice. And so if I click on the widget,
it lets me choose a profile to activate. Displays it in the nice little
toast, and then changes the actual widget so it can see
what profile you’re in. So the expectation here is
really much more sort of that older approach of defining a
profile for your phone, where you basically want to say
night mode, day mode. at-home mode, Wi-Fi on
mode, whatever it is. IAN NI-LEWIS: I think people
certainly get used to that. I mean, we’ve got airplane mode
for instance, night and day mode, work mode,
home mode. Those all makes sense,
and I like that. It’s probably worth mentioning
that Tasker, for instance, and most of the other profile apps,
also offer widgets. RETO MEIER: Yes. IAN NI-LEWIS: If that’s
what you’re into. It’s just that they focus most
of their efforts on the more interesting conditional stuff. RETO MEIER: Exactly. And so I think there is a niche
for an app like this, which provides a much smaller,
simpler subset for the most common, the 80% of things
which people want to do. Turn up screen brightness, mute volume, change ring tones. IAN NI-LEWIS: Well, if I was
trying to do this for my mom, this is exactly what I would
use, because I don’t want to have to do tech support for
the set of profiles and conditions that I wrote
to figure out if she’s at work or not. RETO MEIER: Yeah. IAN NI-LEWIS: If she has a
problem with that, I’d rather that she just presses
a button. Because the code that I can
write in their script is not going to be nearly accurate
enough to cover all the cases. And if it ever fails,
she’s not going to be able to fix it. RETO MEIER: Exactly. So this is kind of nice. So the downside here for this
app is that it’s simpler once you understand how to use it,
but that learning curve to understand how you’re setting
up your profiles, where that happens, how you
place a widget. The actual process of putting
your widget on the home screen and choosing how it’s going to
choose between the different profiles you’ve set up is a
little bit harder and less intuitive than it should be. So that’s, I think, the key for
these guys is to really try to make that process as
simple and easy to do. IAN NI-LEWIS: Well, I think we
knew this show was going to run long, because these
are such complex apps. But let’s go ahead and talk a
little bit now, wrap it up, and see what all these
apps should be doing. RETO MEIER: Absolutely. So we introduced this stuff
at the beginning. We want it to do as
much as possible. We want it to be easy to use. We want it to work on tablets. And tablets, I guess, is one
which I do want to bring up, because I think they’ve all
been designed for phones. Which makes sense, but we
really want to try and emphasize how much people should
be thinking about doing those things. And so step one is really
creating a great responsive design so that the app is going
to look good and work great on any device that
you happen to be using. It doesn’t matter what
orientation you’re in. It doesn’t matter whether
it’s a tablet, whether it’s a phone. Whatever it is, it should just
adapt and work well. And similarly, you want
to create that great tablet-specific experience. And even if you’re not planning
to do anything tablet specific, it should
still work. You shouldn’t have to worry
that, well, actually, on my Nexus 7, it doesn’t work. And I have to mount it
differently in my car or place the NFC tag in a different
place. And so really, you want to
optimize in all ways. And in fact, there can be
opportunities to take it a step further. Now we can see that the NFC
Task Launcher is providing some statistics. That sort of stuff works really
well on a tablet where you may want to sit down, or
indeed for a Tasker, where you’re having to create GUIs
and those sorts of things. That on my phone, not so much. That on a tablet, well, I think
we’d all like to be able to write code on a tablet. Maybe this is the first step. IAN NI-LEWIS: Yeah, giving
yourself a little more space is always a good thing. Although one thing you should
also remember when you’re going between tablets and phones
is that most people have both devices. If they have a tablet, they
almost certainly have a phone. RETO MEIER: Absolutely. IAN NI-LEWIS: And so being able
to create something on one device and use it on another
device, or on all of your devices, is also
a feature I would really like to see. RETO MEIER: Absolutely. I guess it’s the other side of
that community repository. I want my own repository. IAN NI-LEWIS: Bingo. RETO MEIER: It’s like I’ve
created it, I want to apply this to all of my devices. IAN NI-LEWIS: Exactly. Alright. So before we sign off, let’s
take a look at our prescriptions for reach app to
help them move towards a pure Android experience. Do we put that in
scare quotes? RETO MEIER: I think until we
actually launch it, yes. IAN NI-LEWIS: No problem. RETO MEIER: Once it’s launched
then we lose the scare quotes. IAN NI-LEWIS: Awesome. All right. So the prescription
we have for Tasker is first a UI makeover. I think it needs one. It deserves one. It’s a wonderful program,
and it’d be nice if it looked nicer. RETO MEIER: Yeah, don’t
sell yourself short. It’s a great app with huge
amounts of functionality. It just looks like it’s old. And give it the Holo makeover. IAN NI-LEWIS: Exactly. And lose the dialogs. More than anything else,
this is what makes the program hard to use. It puts you in a very modal
position, so it’s difficult to quickly edit things because
you have to jump in and out of modes. I’d love to see a tablet version
where I could see multiple conditions, multiple
contacts, and multiple tasks all laid out where I could
tweak each one of them. RETO MEIER: Oh, that would
be beautiful, yeah. IAN NI-LEWIS: They definitely
need a repository. The wiki is awesome, but only
if you’re willing to really work at something. Some of the competitors out
there actually have something where the first thing you do
is press a button, or you don’t even need to
press a button. You just see popular tasks, or
popular contexts, or popular profiles that other people
have defined. And it turns out, when I went
looking, that everything that I wanted to do had already been
defined, and all that I needed to do is change the
location or change the time. RETO MEIER: A couple
of variables, yeah. IAN NI-LEWIS: So let’s
get that in. I think that if that was in the
app, it would be a winner. It would be, hands down, my
favorite profile app. But finally, I think that you
could have a little bit more appropriate feature discovery. Things like variables that are
very important– like if I want to see what speed I’m
going, for instance– are very difficult
to discover. You have to drill all the
way in to a condition. And then sometimes you have to
type in the variable name, but sometimes you can select
it from a list. And that’s very, very odd,
especially since there are about 100 different built-in
variables that let you check different things
on your phone. It’s really, really nice. But then again, you’ve got the
Scenes feature, which is an app builder. It’s an IDE, which most of the
users of this particular application will probably
not use. It’s a niche feature. And yet it’s given a very
prominent position on the very first page. So it’s not about making
things more or less discoverable. It’s making them more
appropriately discoverable. RETO MEIER: That makes
a lot of sense. For NFC Task Launcher, like I
said, they’ve actually done a lot of things that
I was hoping for. I think there is still a little
bit of work to be done in navigation. And that’s maybe something that
you guys can find out exactly, if I am a one-off case
or if a lot of people are having the same problems,
using analytics. Find out how many times people
are accidentally exiting out of your app. Don’t put up an “are you sure
you want to exit” dialog. That is not a solution. That is just an indication that
your navigation is more confusing than it needs to be. I’d love to see icons for My
Tags because they look really nice on that front page. The icons exist. I copied a profile which had
an icon associated with it. So having those there available
for my own apps would be really nice. What I’ve said here is avoid
duplicative actions, because when I wrote this, I thought
that Finish and Done did the same thing. As it turns out, they don’t. So do check out the way the up
affordances are supposed to work, and make sure that that’s
consistent with the way the platform has
been designed. IAN NI-LEWIS: And in general,
try to avoid using verbs as app titles, because they will
show up as if they were buttons to a lot of people. RETO MEIER: Absolutely. Even experienced Android users
like myself get confused. IAN NI-LEWIS: Indeed. RETO MEIER: And also take at
leaf out of Profile Widget. They’ve done a really nice job
customizing their toasts. I’ve seen other apps which
have really rich notifications. We do use both of those things
in this app to notify you that the profile has changed. So maybe you spend a little bit
of the awesome design work that you’ve done throughout the
rest of the app just to make those final couple
of pieces a little bit more polished. IAN NI-LEWIS: But remember,
for those of you at home watching this do not make toasts
for any other reason. Toasts that say, please don’t
press that button again, no. RETO MEIER: This is a perfect
example of where toasts are useful and are appropriate. IAN NI-LEWIS: Right. Because it’s a short
lived notification. It’s a notification. You need to be notified if
you’re paying attention. You do not need to be
notified later. You do not need the notification
to persist. And you don’t need to pop
up its own activity. RETO MEIER: Exactly. And the good job that they’ve
done here as well is that both toasts and notifications
are optional. So if you don’t want to have
anything pop up or appear in your notification
tray, it won’t. And the last app, Profile
Widget, it’s a little bit simpler, so we don’t have
as much feedback. Really, make that getting
started as simple as possible. If you take a leaf out of some
of the other apps here, particularly NFC Task Launcher,
to say, well, here are the most common things. Press this button once, and make
that part of the flow. So when I drop the widget onto
the home screen, basically just give me a list of either
existing or new profiles that I want to associate with it so
that it’s click, click, done. And then I can worry about
customizing it and everything afterwards. But I need to understand how it
works as quickly as I can. And maybe revisit the
dashboard pattern, particularly because even on
a phone, if I rotate into landscape mode, it doesn’t fit
and I end up doing mini scrolling, which is a little
uncomfortable. So that is all for us today. Don’t forget to tune into Roman,
Nick, and Adam for “Android Design in Action” next
Tuesday, when hopefully they’ll be setting their design
skills loose on some of the apps we looked at today. IAN NI-LEWIS: Absolutely. And we’ll be back again next
week to look at sleep monitoring apps. RETO MEIER: Which will make a
nice change from having Ian monitoring my sleep every
evening, which is getting a little creepy. IAN NI-LEWIS: Yeah, it’s also
a really difficult job, and I’m very tired in the morning. Now, if you’ve got a device
profile app you’d like us to take a look at– RETO MEIER: Be sure to
hit our Trello page. IAN NI-LEWIS: Absolutely. I think we meant sleep
app, though. I meant sleep app. RETO MEIER: I don’t know
what you said, because I wasn’t listening. IAN NI-LEWIS: I said
the thing that you wrote, and it was wrong. RETO MEIER: The thing which
we didn’t update. Right. Well, yes, so if you have a
sleep monitoring app or any of the other categories– we’ve got
ebook readers coming up in a couple of weeks. There’s a whole bunch
of options there. So go to
and get your votes and your
self-nominations in. We love to review apps from
people who have written them and asked for us to take
a look at them. It’s the easiest way for us to
be able to really have an impact on what you
guys are doing. So please do it. IAN NI-LEWIS: Exactly. And we hate people calling in
to complain later that we reviewed their apps without
their permission. So please don’t post an app
unless there’s a way for us to get in touch with the author. RETO MEIER: Absolutely. So until then, thank
you for watching. My name is a Reto Meier. IAN NI-LEWIS: And I’m
Ian Ni-Lewis. RETO MEIER: And this has
been “The App Clinic.” IAN NI-LEWIS: Thanks
for watching.

Leave comment

Your email address will not be published. Required fields are marked with *.