Hi. So we’re going to start by looking at using some LLM chat apps like ChatGPT.
In fact we’ll start now with ChatGPT. I have a subscription for ChatGPT, but you don’t necessarily need one for what we’re going to look at now. You just pop over to chatgpt.com, and we’re going to try and get the LLM to give us a hand with figuring out what the specs for our app should be.
I’ve got the name yesterday’s weather, and I know roughly what I want it to do, but that’s not a software spec. Writing software specs is really boring. Let’s see if AI can help us.
So, head over. I’ve got. I’m using the ChatGPT 4o, model. I mean, if you understand these, you’re doing better than me. But this is great for most tasks, and this is a most task. And I’m going to start with a chat. Something I quite like to do is dictate to this because I don’t have to type it then. So let’s see how we can go.
All right. I would like to make an iOS app called Yesterday’s Weather. When you open the app, it should establish your current location and then get you the weather and display the weather for precisely where you are exactly 24 hours ago from yesterday.
I would like some help figuring out what I need to do to build this app. I don’t want to see any code at the moment. I want to see an outline of the steps I need to take, leading towards writing a software specification later on. Could you help me with that please? Thank you.
So I’ve dictated a line of guff and now it will transcribe that for me. And then I’m going to send it off to ChatGPT.
And actually, some of this is the most powerful aspect of building outlines. This is the kind of thing that you often do as a team is somebody will write this and you’ll bicker about it for ages, but here it’s quite helpful to have that person to bounce off.
So it’s got some what’s the goal? The scope. It’s a single screen, and some various other things. So some clarifying the scope. Functional requirement. It needs to know the location services and handle the permissions. So if you’ve ever done location work inside an iOS app, you know that you have to ask permission to be able to use these things.
It calculates the date correctly. Although this is clearly incorrect. Now yesterday. Subtract 24 hours. Target date time is now -48 hours. I mean, that’s clearly not correct, but we’ll come back to that later.
And it’s got this identified. It needs to use a weather API and it’s got some suggestions here. Open weather map tomorrow, I visual crossing, and it needs to check some things on there. It needs to handle errors. It needs to build a user interface.
And then there’s some non-functional considerations as well, which I think is also quite good because these are the things we forget. So things like accessibility, testing, some performance and privacy things, and then the planning to write the specification that’s going to write down some user stories.
Break down into different modules like the location manager. This all makes reasonable sense. And sketch some UI. So what I like to move into any of these areas. So I think I in fact as it suggests, let’s find out a bit more about some possible weather APIs.
Oh, I’m doing the typing thing. I don’t want to type. I want to dictate. Thank you.
Could you give me some more details on the different weather APIs available for this app now? Because it’s a prototype, I particularly like something that is free, that has historical weather data and is easy for us to integrate into an iOS app. Please.
Send that.
And it’s actually presenting this in quite a nice way. It’s got visual crossing over weather map tomorrow, Weather API and weather stack. Some of these things quite interesting because I’ve done this several times now, and this is one of the most difficult things for me to understand about AI, not to understand, I understand it. Difficult things for me to to deal with using any kind of generative AI is it gives you different answers.
None of these are the ones that I actually want to use. That I learned how I wanted to use because it suggests to me in the past. I find that non-deterministic nature of this quite challenging, but the best options for prototyping, it’s giving some, some ideas here with generous free usage.
Recommendation is it recommends visual crossing or weather API.
I’m going to suggest looking at Open Meteo as well. Could you also consider Open Meteo as well, please?
That’s not right. Is it? Open Meteo I think, is. I don’t know. Metro.
Okay. So this is now actually telling me it’s probably a reasonable thing to do. I like this bit of it. This is why I’m keen. Because it’s fully free. No API key detected, which for when I’m building a prototype, if we don’t have to go off getting API keys, it’s ideal. Not necessarily ideal for a production app, but what we’re doing here is perfect.
Okay. So that’s an excellent option.
So then the final thing I want to do is can you build me a software spec? Could you take this decision and the other things that we’ve considered and write a detailed software specification for how we’re going to build yesterday’s weather, please?
Well, notice that it still thinks it’s 48 hours ago because I haven’t corrected it. So I’m going to jump in and correct this. In fact, I’m going to stop it and correct it.
Just to clarify, yesterday’s weather should be showing us the weather yesterday, not 48 hours ago. Could you take that into account? Rewrite the software spec, please.
So we’ll let this finish writing it out.
And you’ll see. It’s got some of the same things that we talked about before. It’s got a summary. It’s got some key functional requirements like the location, the time calculation, the weather API and some display logic and some design. So we’ve got fairly enough for this fairly basic app. We’ve got all of the things that we need in the in addition to that, we’ve got the non-functional things we talked about before.
It’s suggested putting some particular modules together for us to use and then some optional future enhancements. So I think that’s really cool.
I will leave it there for now. I’m going to export this and put this so that you can read this. And part of the materials.
And in the next video what we’re going to do is take this and get a different AI to review it and suggest whether there are some questions that are unanswered.
See you then.