Seriously, it is. If you ever find yourself having to work out the correct amount of change to give a friend, relative or customer but find yourself getting stuck; this is the app for you.
Whilst working as a delivery driver for Dominos Pizza, I feared getting cash deliveries, purely because I wasn't able to work out the correct amount of change whilst the customer stared at me.
I know, it's pretty silly, but I know I'm not the only one who has this issue. Like many of my other apps, the reason for creating this app was purely to provide a solution to a problem I was having.
There's 2 types of deliveries that the drivers get at Dominos:
Now, paid deliveries are pretty great, you grab your pizzas, drive to the customer, pick up your pizza, knock on the door, give them the pizza (sometimes be given a small tip) and be on your way. This is THE perfect delivery, nothing to worry about and nothing that can go wrong (I mean, you could drop a pizza, but we won't talk about that).
Cash Deliveries on the other hand, do EVERYTHING you can to stay away from these; or atleast that's the mentality I had. There's nothing worst than getting to the customers door step and being given a handful of change (most of which is definitely from the back of the sofa), having to stand there and count this change using only your hands whilst holding a stack of pizzas as well with literally nowhere to put this money. Then if you're like me, you've lost count about 5 times and finally have the amount of cash they've given you but can't actually do the math to subtract the order total from the cash given so you know how much change they need. They also decide to be generous and tell you "keep £1 for yourself"; great so now I've got to try and work that out too. Just to top it all of as well, they're stood there, staring, the. entire. time.
So yeah, it's a pretty interesting scenario and you can see why I'd grew to dislike them.
Most of these cash deliveries I was able to avoid, the ones I couldn't I started to work out all of the possible outcomes for change the client could give. I'm not kidding, I would work out EVERY scenario that could happen so I was ready for whatever cash they gave me.
This was pretty great for a while, I'd always be ready. But a lot of the time I spend listening to audio books or the radio whilst driving to orders was then taken up by me trying to memories the change outcomes and it quickly became less enjoyable.
That's essentially what sparked the idea, I started to think there must be a better way, I'm doing the same thing every time, surely I can automate it. And then it struck me, I'll just build an app.
So, I knew the app had to be nice and clean, easy to use and quick to develop.
It needed 3 simple screens:
But that was it, there wasn't much else the app needed to do. Obviously, it needed to be maintainable and scalable but we'll talk about that later.
Most of the apps I build are developed using React Native; It's a JavaScript framework created by the guys at Facebook which results in a single JavaScript codebase that uses react components and bridges them into their native corresponding components on the Android or iOS platform.
Put simply, this means I can develop an app using a single codebase and target both the Android and iOS stores with the exact same code (for those of you that don't know; typically Android & iOS development is done in 2 seperate languages).
Due to the simplicity of the project and the scalable nature it needed to adopt I knew React Native would once again be the perfect fit.
Now, I've mentioned this a couple times so I'll quickly go over this.
One of the great things about using a single codebase is making features or updates is super simple and doesn't take long.
With a super simple app like correct change, i need to bare in mind features will have to be rolled out to get more trafffic, although the app concept is solid and people (or atleast myself) would use it for years to come, custom features are what keep people returning.
For example;
Both of these are features that the app should and could easily accommodate, but instead of taking more time to develop in the future I'll just bare this in mind so it's easy to add later.
One of the key technologies that ensures scalability and maintainablility is the component driven development style that react native uses; put simply, everything you write in the code is a component, this makes it super simple to swap out and add new features; you just write a new component and drop it in.
For example;
It's the same with the correct change app, If i need to replace one of the screens (which is unlikely), or add a new screen (which is likely) then i'll just add a new component.
Put all of that together and you've got a component driven app that's extremely scalable and maintainable.
The correct change app doesn't use any monetization currently, however it's got google ads integreated. I'm a strong believer that building a trusting relationship with customers is important and during the launch of such a super simple app it's not that wise to bomb users with ads. Therefore, I've integrated it but left it off until one day when I see a reason to enable it.
Well, that's pretty much it!
Download