Developing Perspective

#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:06   the like.

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:27   episode.

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:46   and bottom.

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:54   so far.

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:27   very plain.

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   Bye.

00:14:04   Bye.

00:14:04   [BLANK_AUDIO]