Inspiration

There's a lot of good productivity apps out there, like Notion, Google Calendar or Apple Reminders, but there's no one-stop shop for getting all the features you want in one place.

What it does

Our app helps you focus on tasks, take notes, create (and finish!) to-do lists, set your calendar and track your health--all in one app. Each time you complete a task, you grow a star in the sky! And every time you finish a focus session, you grow a flower in the clouds. By the end of the week, you'll have a full garden! Then, it resets, and you'll be able to grow another garden the next week too!

How we built it

We coded our app entirely in Swift. We used Apple's SwiftUI and Core Data as the primary infrastructure for our project. We started with the basics of the MVC Architecture, with each page of the app getting its own View, and then expanded from there. All data is persistent and stored through Apple's CoreData, which is an easy and effective way to keep all of your data in one place. In order to make the interacting parts of the app, we created custom entities with many interconnected relationships. This is how we are able to do things like attaching completing a task to a specific star.

Challenges we ran into

Three out of four of us had never used Swift before, so we had to learn a new tech stack extremely quickly to finish our project on time. The haptic feedback on the circular timer was particularly rough to work with, since we had to to translate an x and y position from touch to its corresponding time on a circle. There was a lot of math involved! Additionally, our app is super interconnected, so we often found ourselves at a standstill because portions of our app were blocked by someone else's part.

Accomplishments that we're proud of

We were really happy that even though we essentially had zero experience, we were able to make a great looking and functional app that we actually want to use in our own lives. We also were able to fully implement a working star farm that successfully restarts each week and has fallbacks in case there is not one for the previous week. I think that using Swift's canvas feature to draw the garden, along with using entities to store persistent data such as star locations, was particularly inspired. Also, having directories in the Notes part of our app was really exciting. It's rare to be able to sort notes efficiently on a mobile app!

What we learned

One of the things we learned is that Apple has built a fantastic IOS developer experience. We only used library that was not natively built into Swift.

What's next for Starfall

We are going to work on this project and add all the extra features we wanted that we didn't have time to build (hint: AI). Other features include: finishing the health page, which will include sections for mental and physical health. We will improve the way we work with CoreData and how we organize models and relationships. Most importantly, we want to continue working on this app until it truly does become our everyday, all-in-one, one-of-a-kind mobile app!

Share this project:

Updates