Making of Hey

I need to hand in report before 5 PM today

If my husband passes a supermarket, maybe he can buy some eggs

Has she done what I asked this morning

My name is Eric, a soon to graduate engineering undergrad that has 3 years of experience in web and mobile app development. After nearly a year of brainstorming, prototyping, developing, and testing, I have finally put my app on Google Play Store.

Messaging services nowadays focus on real-time attribute like it’s an actual conversation. Intuitively, people would assign tasks or asking for favor through such service. People are forgetful and it requires extra steps to move those messages into your todo list or calendar. With todo list, you can’t easily tailor the notifications for other people. This is why I built Hey. Hey allows you to set a reminder based on time or location. You can even set who will get this reminder and it will show up on their screen when they get notified. The app is still functional even when you are offline, thanks to Firebase.

It started out as a small idea: wanting to remind other people, then I started to devote my time after work and weekend into it. I was focusing on making the functions ready so the UI looked like the picture on the left. It looked really plain, can’t tell what it is at first sight, and definitely really boring. So after some adjustments to the text, fonts, layout, and most importantly the color. Now it looks like the one on the right.

The app utilizes the service mentioned above: Google Firebase. Firebase offers a database service that is updated real-time, which means it is an ideal candidate if you are creating a chat application. I rely on its real-time characteristics so data between different devices and users can be updated immediately when they have connections. Firebase also handles offline mode so you can still interact with the app and it will be updated as soon as you have connection. By including Firebase core (or Firebase Analytics) and Firebase Crash Reporting, without any setup Firebase will start tracking important data such as active users, sessions, and etc for you and report any crashes in its dashboard. Firebase team has worked hard to include some crucial features asked by the community in the recent update announced during Firebase Dev Summit, it will now send you email about major crashes and you can close bug once you have dealt with them. Last but not least, the app utilizes Firebase Cloud Messaging for updates when the user is not currently interacting with the app. You can read more on how to set it up with NodeJS in this article.

One of greatest challenges I had was to update the user’s local data when other people send you a task but the app was not running. If the app was still running on the background then you could still get updates and app would decide it should register an alarm or a fence for location. However, your phone might kick the app out of memory when your memory was low and needed for something you were interacting with on the screen. If you’d like to know how I solved it I could write a post later on some of the challenges I have faced.

There are still a lot that can be done but I believe people can benefit from it already. So Hey, tell us what you think after giving it a try on Google Play Store while iOS version is still in progress.