PodSearch

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]