The Friends Roster Project

While 2020 has tied many people to their homes, it also encouraged many to seek out old friends. The same happened with me and a bunch of my friends. I have lost touch with a lot of my school, college and work friends as the years passed. You find new friends. You get busy with work and family and eventually don’t find time to call or meet friends as much as you might have when you were young.


When I look back at my school or college days, I think of all the time spent with them. Not just during the school hours but you get to enjoy playing with them after hours as well. After COVID and work from home, there is barely any time left to meet and chat with friends. It is “office hours” all day long for many. May be people got fed up with this kind of lifestyle. The activity in WhatsApp groups increased during this time.


Finding old friends

Somehow my college group got excited for a virtual reunion over a video call during the peak of the lockdown here in India. Perhaps they wanted to see faces of someone other than work folks over a video call. Same thing happened with my school friends too. It was so exciting to get in touch with all these folk that I vowed to keep in touch more often.


So I made a list of all the friends and decided to call them one at a time every weekend. The total list of friends I wanted to call is some 70 odd number! So even if I called a couple of friends a weekend, it will take more than 8 months to go back to calling the first person again :). But I promised myself to call all of them in 2020 and I did. Having achieved the goal, I wanted to make it a habit and continue keeping at it.


Too many to keep track

The only problem is that it was too hard to keep track of who I called and when. I used to randomly select one friend from my list and call. Sometimes they would miss my call or they would call me at a later time. So at times, I would miss calling a friend for a long time or call too frequently. How to fix the problem? Well, to a software engineer every problem looks like a chance to write an app.


To a man with a hammer, everything looks like a nail

Abraham Maslow (Law of the instrument)

Enter friends roster app

I decided to write an app that will load all my contacts from my phone and make a friends list. Then the app will also monitor my call log to track when I call a friend or a friend called me. Based on the call history the app will recommend a friend I can call next based on how long it has been since I called the friend. The project plan is ready.


But what is a project without a challenge? So I decided to write the app completely in Flutter which I had to learn from scratch. Well, that is not completely true. I did learn Flutter 3 years ago but it has evolved quite a bit since the beta launch back then and I forgot most of it. Anyway the advantage of writing in Flutter is that I can build an android app, iOS app and a web app all from the same code base. If you are a software engineer, you might understand that as eternal bliss.


Using the app

I finally completed the app recently and started using it. In upcoming few posts I will write a few more details about the experience and how I designed it. So some posts may get a little boring for those who are not so inclined towards software engineering. Don’t worry I will interleave those technical posts with some other posts so you won’t get bored.


Screenshot of the app running in a browser

Since many people ask how I spend my time in retirement, this is one more example. I have already completed several other projects in case you missed. It took me 3 months to complete the project. The project consists of 5000 lines of Dart code (including tests). So now you know how I spent (or wasted) 3 months of my retired life :).



Join the club

Get all the latest posts straight into your inbox


4 thoughts on “The Friends Roster Project”

  1. Oh submitting to play store is a lot of work. I have a developer account but it has been more than 10 years since I last used it :). Will a side load apk work for you? That’ll be easier. If there are more people wanting to try it I will post on play store.

  2. That’s cool. Does it push anything in the cloud or everything is local (just reads device contacts, call log and uses that)?

  3. It uploads data to the cloud (stored in cloud firestore) so that the data is synchronized across all devices (if you have multiple devices or using the web and mobile app).

Leave a comment