#90: Check the Weather
00:00:00
◼
►
Hello and welcome to Developing Perspective.
00:00:02
◼
►
Developing Perspective is a podcast discussing news of note in iOS development, Apple, and
00:00:07
◼
►
I'm your host, David Smith.
00:00:08
◼
►
I'm an independent iOS developer based in Herndon, Virginia.
00:00:11
◼
►
This is show number 90 and today is Wednesday, October 17th.
00:00:15
◼
►
Developing Perspective is never longer than 15 minutes, so let's get started.
00:00:18
◼
►
All right, first, before I get into the main topic of today's show, which if you've been
00:00:22
◼
►
following along, I'm pretty sure you can guess, I noticed something interesting about this
00:00:28
◼
►
This is the 100th regular episode of Developing Perspective that I've done.
00:00:34
◼
►
I was looking through my archives a little bit, and even though this is show number 90,
00:00:38
◼
►
it's actually the 100th episode because I had a few beta episodes, I called them, back
00:00:42
◼
►
at the beginning before I started actually with episode number one.
00:00:45
◼
►
And that's kind of interesting.
00:00:47
◼
►
That's kind of fascinating and kind of coincidental for what today is and the significance of
00:00:51
◼
►
the day, which I'll talk about in a moment.
00:00:54
◼
►
Now before I got into that, I just saw that and I just wanted to thank all of you listening.
00:00:59
◼
►
There's the, all of you developers, designers, just people who are interested in iOS development
00:01:04
◼
►
who've kind of been sticking with me for a hundred episodes, which is a nice round number,
00:01:10
◼
►
but it's kind of crazy.
00:01:11
◼
►
I think it's been a little over a year now, so it's about maybe about 15, 16 months that
00:01:17
◼
►
I've done a hundred episodes in.
00:01:19
◼
►
So I guess that's no more than 1,500 minutes of audio.
00:01:24
◼
►
But still, it's kind of a remarkable thing.
00:01:27
◼
►
And I just wanted to thank you for that,
00:01:29
◼
►
for sticking with me for this long,
00:01:30
◼
►
and hopefully, you know, fierce to another 100.
00:01:33
◼
►
All right, so if you've been following along,
00:01:35
◼
►
today is a big day for me.
00:01:36
◼
►
Today I just launched Check the Weather on the iOS App Store.
00:01:39
◼
►
Check the Weather is a weather app
00:01:41
◼
►
for really forgetting the weather in a way that
00:01:44
◼
►
makes sense.
00:01:46
◼
►
And what I love now is that it's launched,
00:01:49
◼
►
live, I can talk about it in depth, so I can kind of not be quite as vague about some of
00:01:53
◼
►
the things that I talked about before.
00:01:55
◼
►
So Check the Weather got started from, it's actually an idea I've had for probably about,
00:02:01
◼
►
I think about two years now.
00:02:02
◼
►
It's kind of a crazy thought that I never actually got around to actually shipping it.
00:02:06
◼
►
And I feel like weather apps are kind of something that every developer has an idea or a concept
00:02:12
◼
►
for what their ideal weather app would be.
00:02:15
◼
►
It's almost like a to-do app in some ways, where everyone kind of has their own unique
00:02:18
◼
►
spin or take or adjustment that they'd like to make on it. And for me it was
00:02:24
◼
►
always what I wanted was a layered weather app. And by that I mean I wanted
00:02:28
◼
►
something that I could open up and would open super quick and a really refined
00:02:32
◼
►
launch experience and give all the basic and timely information right there right
00:02:36
◼
►
then. And then once you have that screen up you have the very easy access to all
00:02:43
◼
►
the other information that I often need. And for me that's really hourly
00:02:47
◼
►
daily forecasts, daily forecasts, and a weather map.
00:02:50
◼
►
And really, that was it.
00:02:53
◼
►
And I tried so many different weather apps that would kind of sort of hit on that, but
00:02:57
◼
►
really would kind of fall down in one way or the other.
00:02:59
◼
►
I thought it was really awkward to get extra information.
00:03:01
◼
►
They were just hideously ugly.
00:03:03
◼
►
They were really bloated.
00:03:04
◼
►
I mean, if you look at any of the ones from the big people like the Weather Channel, Weather
00:03:08
◼
►
Underground, these kind of apps, they're just really just, they have too much in them, but
00:03:14
◼
►
it's not enough of what you want.
00:03:16
◼
►
And so that was really frustrating to me.
00:03:17
◼
►
And at one point, about six weeks ago, I just said,
00:03:21
◼
►
you know, I have a little bit of time.
00:03:24
◼
►
I'm going to make a weather app.
00:03:25
◼
►
I'm going to make something that I like.
00:03:27
◼
►
And if anyone else likes it, that's great.
00:03:29
◼
►
But if not, at least I'll have something
00:03:30
◼
►
that I can use all the time.
00:03:32
◼
►
And so that was kind of it.
00:03:34
◼
►
Like my concept-- and I have a sketch
00:03:37
◼
►
that I'll be posting in a blog post
00:03:38
◼
►
shortly about the design evolution of the app.
00:03:40
◼
►
But the goal was to take just that simple concept.
00:03:44
◼
►
It's just a dashboard with a panel on the left, right,
00:03:47
◼
►
And that was it.
00:03:49
◼
►
That's the weather app.
00:03:50
◼
►
And that's what I made.
00:03:51
◼
►
And that's Check the Weather.
00:03:53
◼
►
And then there was the usual design evolution
00:03:56
◼
►
from in terms of aesthetics, in terms
00:03:58
◼
►
of getting the gesture recognizers and things
00:04:00
◼
►
to feel nice and fluid, getting the performance right.
00:04:03
◼
►
But at its core, the goal was to have this really simple idea.
00:04:06
◼
►
And I think it's worked, especially
00:04:08
◼
►
from the feedback I've got.
00:04:10
◼
►
There's a lot of people that there's this weird hole
00:04:12
◼
►
in the weather market, apps that are either too styled or not enough or too bland or have
00:04:18
◼
►
too much information or just hard to read.
00:04:20
◼
►
The thing that I was always struck by is a lot of the really popular weather apps have
00:04:25
◼
►
these very bright colored graphics.
00:04:28
◼
►
Like if it's sunny outside, here's a picture of dandelions in a field.
00:04:33
◼
►
But the dandelions in the field graphic is actually really hard to read the text that
00:04:37
◼
►
you're putting on top of it from.
00:04:40
◼
►
And so that's not really useful.
00:04:42
◼
►
I want to open it up and immediately know what's going on, how it's working.
00:04:46
◼
►
And so that's hopefully kind of what I made.
00:04:49
◼
►
It seems to be going fairly well.
00:04:50
◼
►
It seems to be well received, and I really appreciate it, all the support I've gotten
00:04:55
◼
►
A couple of things, though, I wanted to talk about.
00:04:58
◼
►
And these are things that now I can kind of mention that I strongly encourage everybody
00:05:02
◼
►
to do before you ship an app.
00:05:04
◼
►
That's basically this.
00:05:06
◼
►
What little touches, what little surprises, what minor delights are you embedding into
00:05:11
◼
►
into your application that you hope your users will discover
00:05:14
◼
►
over time, or even things that you hope they'll never notice,
00:05:18
◼
►
but you know will make their experience better.
00:05:20
◼
►
And these little touches are little things you can do
00:05:23
◼
►
to just make that app feel the difference between something
00:05:26
◼
►
that's good and hopefully--
00:05:27
◼
►
the difference between that and then hopefully something
00:05:29
◼
►
that's great.
00:05:30
◼
►
So a couple of the little things that I did, for example,
00:05:33
◼
►
is I localized the screenshots in the App Store
00:05:37
◼
►
as well as in the tutorial based on where you are.
00:05:40
◼
►
I did this not with every country, but I did it with, I think, about 10 or 15 countries,
00:05:45
◼
►
which took a bit of time, but I think it's worth it.
00:05:47
◼
►
And so if you open the app and you're in Canada, you get a list in you.
00:05:52
◼
►
There's a tutorial screen showing you how to change your locations.
00:05:55
◼
►
Those locations that are listed there will be Canadian cities.
00:05:58
◼
►
If you're in Australia, they're Australian cities.
00:06:00
◼
►
If you're in France, they're French cities.
00:06:02
◼
►
And the goal of doing that is to make it feel natural.
00:06:04
◼
►
Now, many people probably won't even notice that, but it's a little touch that will hopefully
00:06:09
◼
►
make them feel more familiar, more at home in the application.
00:06:13
◼
►
Similarly, at the bottom of Check the Weather,
00:06:16
◼
►
there's a panel where I show the sunrise and sunset time.
00:06:19
◼
►
And in the middle, I was originally just
00:06:21
◼
►
going to have a little separating glyph,
00:06:24
◼
►
like a little triangle or a little circle or something.
00:06:26
◼
►
And I looked at that, and I was like, you know?
00:06:28
◼
►
You know what I should put there?
00:06:29
◼
►
I should put the current moon phase.
00:06:31
◼
►
It kind of works in the same way, because a lot of it--
00:06:33
◼
►
like right now, it's just a black circle.
00:06:36
◼
►
But then in a couple days, it'll turn
00:06:38
◼
►
into a, let's see, a waxing gibbous, I think,
00:06:43
◼
►
or a waxing crescent.
00:06:45
◼
►
I always get those confused.
00:06:46
◼
►
It's a new moon right now, which, as a side note,
00:06:48
◼
►
actually kind of really annoyed me
00:06:50
◼
►
when I was looking at my launch window.
00:06:51
◼
►
I opened up the moon, and I'm like, ah, of course.
00:06:54
◼
►
I'm launching right around a new moon,
00:06:56
◼
►
so that cool little touch,
00:06:58
◼
►
well, no one will actually see for a couple of days.
00:07:00
◼
►
But it's those kinds of little things
00:07:02
◼
►
that aren't core functionality things.
00:07:05
◼
►
These aren't things that are going to
00:07:07
◼
►
sort of make or break your app.
00:07:12
◼
►
If my app doesn't have something,
00:07:13
◼
►
it doesn't show probability of precipitation,
00:07:16
◼
►
like no one's going to use it.
00:07:20
◼
►
If it doesn't have temperatures,
00:07:21
◼
►
if you can't change temperature degrees,
00:07:23
◼
►
those kinds of things are just givens.
00:07:25
◼
►
But you want to add these little touches,
00:07:28
◼
►
these little niceties inside of your application
00:07:29
◼
►
to make it useful and to make it work well in that sense.
00:07:32
◼
►
The next thing I did that I think I'm really--
00:07:37
◼
►
this is something that I'm very proud of,
00:07:39
◼
►
and I think I may have mentioned it before,
00:07:40
◼
►
but I'm really--I want to emphasize it here
00:07:42
◼
►
because I think it's really important,
00:07:43
◼
►
is I spent a lot of time on the accessibility
00:07:45
◼
►
features of this app.
00:07:48
◼
►
Now, by the nature of what it is and how it's structured,
00:07:50
◼
►
it's not a very accessible app.
00:07:52
◼
►
It's got a lot of gestures, a lot of things
00:07:55
◼
►
that are really hard to do if you can't see.
00:07:57
◼
►
And so, at first, you could take the naive approach
00:07:57
◼
►
and just, well, okay, everywhere I have a label
00:07:59
◼
►
that has a display, make sure that the accessibility label
00:08:02
◼
►
is set for that as well, and they can tap around
00:08:04
◼
►
and sort of get it.
00:08:06
◼
►
But that wasn't enough.
00:08:08
◼
►
That seemed kind of like a cop-out for me,
00:08:10
◼
►
even though, I think it's what a lot of my competitors do.
00:08:13
◼
►
I was trying to think of, if I was poorly-sighted,
00:08:15
◼
►
and you kind of try to use your app with your eyes closed,
00:08:18
◼
►
see what it's like, what I want to know is,
00:08:20
◼
►
what's the weather like now?
00:08:22
◼
►
What's it going to be like in the future?
00:08:23
◼
►
How is that going to evolve over time?
00:08:26
◼
►
and try and make that useful.
00:08:29
◼
►
And so I kind of went for the approach
00:08:30
◼
►
of turning the app into a weatherman,
00:08:32
◼
►
kind of giving a weather forecast
00:08:33
◼
►
that say you were listening to it on the radio,
00:08:35
◼
►
rather than doing it as just a very naive,
00:08:39
◼
►
making sure my labels work.
00:08:41
◼
►
And I think it really worked well.
00:08:44
◼
►
Now I'm going to play sort of an example
00:08:46
◼
►
of what this sounds like,
00:08:47
◼
►
and you can hopefully get a sense of what it's like
00:08:49
◼
►
to use the app if you're poorly sighted.
00:08:51
◼
►
- Weather for Cupertino, California.
00:08:54
◼
►
Current temperature 73 degrees Fahrenheit, feels like 76 degrees, it is currently sunny.
00:09:00
◼
►
The weather outlook for the next 16 hours looks like it will be hottest around 2 pm
00:09:04
◼
►
at 84 degrees Fahrenheit, and coldest around 2 am at 63 degrees Fahrenheit, with an average
00:09:09
◼
►
chance of precipitation of 0%.
00:09:12
◼
►
Forecast for Thursday, expected high temperature of 91 degrees Fahrenheit with a low of 59
00:09:17
◼
►
degrees, the weather on Thursday is expected to be sunny.
00:09:20
◼
►
sunrise today is at 719 a.m.
00:09:23
◼
►
Sunset tonight is at 626 p.m.
00:09:25
◼
►
The moon is currently a waxing crescent.
00:09:28
◼
►
- And so hopefully that gets you a sense of kind of
00:09:31
◼
►
how the app works if you're poorly sighted.
00:09:32
◼
►
You get a full forecast.
00:09:33
◼
►
It gives you depth and usefulness.
00:09:36
◼
►
That's hopefully distinctive from what you would get
00:09:39
◼
►
if I just took all the labels and added some values to them.
00:09:43
◼
►
And if there's a weather alert,
00:09:44
◼
►
it's like there's a thunderstorm warning,
00:09:45
◼
►
it'll read the alert to you.
00:09:46
◼
►
If you're patient enough,
00:09:48
◼
►
it'll actually read the entire thing
00:09:49
◼
►
telling you about where it is and what it's like
00:09:51
◼
►
and where it's moving, to try and really be helpful.
00:09:54
◼
►
And that's something that I'm proud of,
00:09:55
◼
►
and that's something that you should always have
00:09:56
◼
►
with an app, that you look at it and you have a feature
00:09:58
◼
►
that you think, you know, that'll probably help somebody.
00:10:01
◼
►
That may make someone's life better.
00:10:03
◼
►
That may help something make the app truly useful,
00:10:06
◼
►
not just interesting.
00:10:09
◼
►
And then I also want to talk about,
00:10:10
◼
►
and this is something that I've gotten a lot of feedback on,
00:10:12
◼
►
is trying to have a distinctive design.
00:10:15
◼
►
I'm not a designer by trade.
00:10:16
◼
►
I'm a developer.
00:10:17
◼
►
I outsource the things that I really can't do.
00:10:19
◼
►
I got the icon design, got the icon factory to do it.
00:10:21
◼
►
My icon glyphs are coming from the symbolic concept.
00:10:25
◼
►
But I tried, you know, a few things that are very distinctive.
00:10:28
◼
►
I use a very bold font called Idlewild.
00:10:31
◼
►
And bold, I mean, sort of in a, it's a step out, it's very distinctive.
00:10:35
◼
►
And, you know, I've gotten some feedback, some people love it, some people hate it.
00:10:38
◼
►
But it's distinctive. It's something that if you look at it in the app store, you're like,
00:10:41
◼
►
"That is not Helvetica." And I like that.
00:10:44
◼
►
I like having something distinctive, and it's in a way that I can do it without
00:10:48
◼
►
reaching perhaps beyond my design skills,
00:10:52
◼
►
beyond my design capabilities,
00:10:54
◼
►
because I can decide if a font looks good or not.
00:10:56
◼
►
And I'm not the one designing every glyph in that font.
00:10:59
◼
►
You know, there's a type designer at Hofler
00:11:01
◼
►
and Freier Jones who's done that.
00:11:03
◼
►
And that's kind of an approach I took,
00:11:06
◼
►
and it seems to be paying off.
00:11:08
◼
►
And the design is one of those things that,
00:11:11
◼
►
I strongly believe that the best designs
00:11:14
◼
►
are the ones that get out of the user's way.
00:11:17
◼
►
And this is something that when I was looking at my competitors in terms of other weather
00:11:21
◼
►
apps and things that are out there, more often than not, there are a lot of apps that are
00:11:28
◼
►
You could say sort of very Helvetica, not just in font but in sort of style.
00:11:32
◼
►
Or there were apps that were just kind of over the top in terms of overly designed,
00:11:36
◼
►
lots of textures, lots of images, all these things.
00:11:39
◼
►
And the thing about weather, and specifically about this kind of area, is your goal of the
00:11:45
◼
►
app is to give someone information.
00:11:47
◼
►
The goal of the app is not to impress them necessarily,
00:11:52
◼
►
or that kind of thing.
00:11:54
◼
►
You want to hop in and very quickly give them
00:11:56
◼
►
all the different cues for how they're going to--
00:11:59
◼
►
what the day is going to be like,
00:12:00
◼
►
what the weather is going to look like.
00:12:02
◼
►
Something I do in the app is there's
00:12:04
◼
►
a little chart that shows the hourly temperature forecast.
00:12:06
◼
►
And the background of that chart dynamically
00:12:09
◼
►
changes based on temperature.
00:12:12
◼
►
So if it's going to be really hot,
00:12:13
◼
►
the graph is going to look fairly red, orange, yellow.
00:12:16
◼
►
If it's going to be really cold, it'll be blues and purples.
00:12:18
◼
►
And it changes dynamically, and it changes fluidly.
00:12:21
◼
►
And it's the kind of thing that just--
00:12:23
◼
►
I mean, I love that.
00:12:24
◼
►
When I open it up, it's like, if it's blue, oh man, it's cold.
00:12:27
◼
►
Open it up, it's orange.
00:12:28
◼
►
Oh, it's going to be kind of warm.
00:12:30
◼
►
Trying to do all those little design
00:12:31
◼
►
cues and those colors and the choices
00:12:33
◼
►
you make to just make it good.
00:12:35
◼
►
So that's kind of the app.
00:12:37
◼
►
I'll be talking a little bit more
00:12:38
◼
►
about some of the few things, probably wrapping up
00:12:40
◼
►
this series that I've been doing about the app that's going.
00:12:43
◼
►
I wanted to say thank you to all of you
00:12:45
◼
►
who've sort of stuck with me through this arc,
00:12:47
◼
►
I really appreciate the support, the feedback,
00:12:49
◼
►
and just kind of putting up with me thinking about this app
00:12:52
◼
►
as it's gone from just sort of when it was first conceived
00:12:56
◼
►
a couple months ago to right now.
00:12:58
◼
►
And I especially wanted to thank all of you who've bought it.
00:13:00
◼
►
I've gotten a lot of feedback from people who said,
00:13:03
◼
►
"Hey, I went and bought it, and I really appreciate that."
00:13:06
◼
►
I mean, sort of the business I'm in
00:13:08
◼
►
relies on people buying my app,
00:13:10
◼
►
and so I'm never going to take for granted
00:13:11
◼
►
that people will do that.
00:13:13
◼
►
And if you haven't and you'd like to,
00:13:15
◼
►
there'll be a link in the show notes to it,
00:13:17
◼
►
or just search check the weather in the app store.
00:13:19
◼
►
It's definitely a way I really appreciate that support.
00:13:22
◼
►
But otherwise, I'm going to go rest.
00:13:25
◼
►
It's been a bit of a crazy day trying
00:13:27
◼
►
to keep track of everything, kind of following up
00:13:29
◼
►
with everybody, reading the reviews as they come in,
00:13:31
◼
►
and those kinds of things.
00:13:32
◼
►
And it's just kind of exhausting.
00:13:34
◼
►
But it's exciting, and it's terrifying, and that's OK.
00:13:38
◼
►
But it's fun, and it's exciting.
00:13:40
◼
►
And I'll be talking about new fun things that
00:13:42
◼
►
on the horizon, an iPad version that's hopefully coming out soon that I'm working on, and who
00:13:47
◼
►
knows, maybe a new iPad mini version that will also be coming out.
00:13:50
◼
►
But otherwise, that's it for today's show.
00:13:53
◼
►
As always, if you have questions, comments, concerns, or complaints, I'm on Twitter @_davidsmith,
00:13:58
◼
►
I'm on AppNet as @davidsmith, and as always, have a great week, happy coding, and I'll
00:14:03
◼
►
see you next week.
00:14:04
◼
►
[BLANK_AUDIO]