Baily - 12 Jan 2024


What's Baily?


Baily is an application focused on family unity, developed in partnership with a psycho-pedagogue. In it, parents can create and manage their children’s routines to unify responsibility. The family section is an abandoned segment in the App Store. During the development, six apps were available, and most didn’t receive an update in a long time or had severe UI and feature bugs.


We developed Baily because, in Brazil, the responsibility for raising children falls more heavily on mothers, as fathers are usually the breadwinners or single mothers who have to look after their children alone. In this way, we want to help create more engaged families. Where all members not only know the routines but also actively engage with them.



iCloud

The application uses a QRCode system where you first add the person’s email address to the primary guardian’s cell phone. Then, the secondary guardian must read the QRCode. We implemented this way to increase the security of our users as much as possible since this is data relating to children. In addition, a guardian can lose access to the primary parent at any time.


Once connected, the secondary parent’s cell phone will synchronize with the shared iCloud, downloading photos, routines, and the list of children.



Photos

The guardians can also take photos in the moments, and they sync between everyone connected. This feature was a special request by the psycho-pedagogue, who said that this could be the big difference between us and the other apps on the App Store. Crudely speaking, guardians and elderly individuals take a lot of joy in taking pictures of their children, and while you have the Apple iCloud family sync, the app provides a hub for only these kinds of photos.


To optimize the data usage, photos sent by the app are available for download for up to three days, after which they disappear from the shared iCloud but stay in the local gallery of everyone who downloaded them, and iOS itself makes the iCloud backup.


As some guardians have several children, it’s possible to unify certain activities so you can see everyone taking part in them.



Children

You click on add child, enter a name and image, and after this, the child becomes available in the quick view and can receive new activities.


In addition, the app will send the new child to all guardians. If you later wish to remove it, the activities she participates in will remove her relationship and be deleted, in case she was the only child assigned.


Once you have at least one child registered, you can add activities. To add an activity, you need the following information:

  • Title
  • Hour
  • The children taking part
  • Days repeated or chosen
  • Category
  • A note that other people can read. (optional)


Once created, the app sends it to everyone and monitors to see if it’s close to the time or completed on another device. If it’s a repeating activity, it’s updated daily at midnight. Weekly activities reset those that belong to a single day last week and don’t repeat are deleted to save space in the user’s iCloud and cell phone.


Team satisfaction:


Overall, the team enjoyed doing this project, which wasn’t easy and challenged the team’s technical knowledge with a pretty big learning curve, but it was rewarding.

We left a lot of features behind in the hope of achieving an MVP, and we did and loved the final result even when we didn’t fully realize our first vision of the project.


Looking back:


Possible improvements:

  1. Currently, because we use a shared iCloud, we have severe limitations on what secondaries can do. So a bank migration would be a good idea if this product were not to continue

  2. With migration, it would also be possible to diversify the data sources because there are many parents with two families, and we currently only manage two.

  3. The designer would like to change some things about UX Writing and simplify feature paths.

  4. Also related to iCloud, during development, the team’s understanding led to a wrong implementation at a crucial point, which added friction to user interaction.

  5. more standardized components: we’ve made several, but we could still add more and remove code smells.

  6. the architecture is in VIPER, and it was the right choice for an app of this size. At the same time, we didn’t standardize the syntax with a lint or focus on testing, something we’d have to change nowadays.

  7. To add the features that we cut, we initially planned to implement an iPad app where the child would also be able to interact, marking that they have done the activities and earn points for it, to encourage them to create a routine. In addition, we wanted the app to have more “life” with touches and effects to transform the routines into something a little more fun. We couldn’t implement it due to the time and scope of the project at the time.

  8. Handle more edge cases concerning networking.