Inspiration
I like the to-do list app. I'm currently using the Things 3 app to manage my tasks; both personal and work. While it is nice to have everything in one app, having my grocery list mixed with work-related tasks makes things a bit of a mess. I also want to share the list with my wife, and Things 3 cannot do that.
I browsed through the App Store to see what's available out there before I committed to building it. I found out that many of the top 10 looked a bit outdated and full of unnecessary features for me. I wanted something simple that I would use myself, but it should have extra functionalities for managing a grocery list that a general to-do list app lacks.
And then Ship-A-Ton happened! And I'm a developer. So why not make another one?
What it does
It is a to-do list app made specifically for managing grocery lists. It allows users to:
- Create to-buy items (Obviously!)
- Group items into places to buy
- Separate everything by lists
- Share each list with different people (future update)
- Check off items from Apple Watch (future update)
- ...while keeping things simple and clutter-free
How I built it
- I sketched things out on paper. I followed what I had in mind and just sketched the flow. I tried to avoid checking for inspiration as the first step. I didn't want my ideas influenced by all sorts of other stuff.
- After the sketch, I went to Dribbble and Pinterest for inspiration.
- Then I started coding. The fun step.
- Throughout the development process, I occasionally shared updates on Twitter (X) to see if anyone had any feedback.
Challenges I ran into
- Design: Design is not my strong suit. I want things to look nice but as a developer, it's hard to come up with a cool design by myself. I have to balance getting inspiration from existing designs without simply copying everything.
- Customization: Working with a custom design is always challenging. There are many things I get for free if I stick to the standard UI. Customizing the UI means I have to build some of those functionalities myself too.
- CoreData and SwiftUI Integration: Surprisingly, they don't fit that well together. While CoreData is powerful, it feels a bit clunky to make it work with SwiftUI. SwiftData is not an option because I need to be able to share the data between users.
- Building in Public: I don't know what to share. I can't justify why what I'm sharing is interesting enough for people to read. And during the busy time, I just don't want to share anything at all and just focus on coding. I haven't found the right balance yet.
Accomplishments that I'm proud of
- This might not actually fit in here at all, but I'm going to mention it anyway. This is my second app since I started to become an indie iOS developer. To think that I didn't have any apps at all at the beginning of the year to now having 2 apps in the store is just amazing.
- I managed to finish this app from scratch in just about a month's time. Of course, I needed to scope down so many features, but a month to get everything from picking an idea to getting it on the store is a lot of work. I almost couldn't believe that I could pull this off. Do you know that my first app took me about 6 months?
What I learned
- Building a good app takes time. Building an MVP doesn't mean building a good app. An MVP is meant to be "minimal". It's still difficult to accept that the app I've just released is not as good as I want it to be, but that's the point of building an MVP.
- Having a hard deadline is great. I can always set my own deadline, and I can always extend it. I can't extend the deadline of Ship-a-ton. It helps me justify cutting out many features that I want to include on the day-one release.
- Sharing progress on social media is quite rewarding. I got to talk to other people who are going through the same journey as I am. Everyone was trying to release their app before the same deadline, and everyone was struggling with the same issue. I still don't know why they read what I wrote, but probably it's the same reason that I read theirs.
What's next
I consider what I'm having as an MVP of the MVP. So what's next is to get it into the MVP state.
- Sharing: It needs to support sharing to allow family members to use together.
- Apple Watch: Nobody wants to bring out their phone to check off items while being at the store.
- Latest iOS features: Widget, ControlWidget, AppIntent, etc...
- Smart suggestion: Suggest items that are purchased frequently
- Bug fixes and stability improvements. 🤣

Log in or sign up for Devpost to join the conversation.