Friend App - First Working Prototype

Dec 14, 2024

The first working prototype is done!

It wasn't too hard to work out how Swift works.

Knowing how to build a web app actually made it much easier to understand how mobile app development works. I found some concepts crossed over.

For instance, to modify the design of a HTML element you would need to use CSS to do this. In SwiftUI, you would use modifiers to do this. It's not exactly the same thing, but it has enough similarities for me to understand how it works quickly.

I'll add some videos of it shortly.


UPDATE

Here's a little look at how it works. It still needs some polish as I'm not happy with the design yet.

Adding a new friend

Adding a friend to the app is made easy with a simple form.

Editing a friend

Users can also edit a friend's details afterwards. They can also add a photo and crop it to their liking.

Adding an activity

The app allows users to keep track on when was the last time they contacted their friend. This can be either be in person, a phone call or a message. Adding an activity adds it to an activity log for the friend.

Configuring Notifications

Users can also set when how much time needs to pass before they will be sent a notification.

As shown, it currently defaults to 1 day. This can be set to days, weeks or months.

I did get the notifications to work, but they need to be enabled first.

I think I will need to design an onboarding process for this to be set up smoothly.

Importing friends from phone's contacts

I did also make it so users can import contacts to the app directly from their phone's contact list.

I'm still thinking about the user flow though. It may be more intuitive to import all contacts from the start during an onboarding process. Afterwards, the user can select which contacts to add.

It currently seems odd that the user has to import the contact and then add them to the app. Basically creating an extra step in the process.

Filtering list by activity

I also made it so users can filter the friend list based on last contact types.

I think I need to design this better though because the progress bar I made looks exactly the same between when an activity has been just added; and when there has not been any activities added.

Final Thoughts

Overall I am happy with the progress I made. I learnt a lot on how Swift and its accompanying frameworks/libraries work.

In hindsight, I should have designed the app properly with Figma. However, now that I have a better understanding of how Swift works; I think it may make the design process easier.

I'm also thinking that perhaps I should consider recreating the app in React Native Expo to see the differences in the development process.

But first, I need to finish the design and get it to a point that I am happy with!