KidSecure -Parental control mobile app in Flutter (Part-1)

Rohan Shah
Novumlogic
Published in
6 min readJan 30, 2021

KidSecure is a parental control mobile application which helps parents understand and limit their children’s mobile usage

Photo by Gaelle Marcel on Unsplash

Introduction

Post-Millennial Trend Today-
With the world leaning more and more towards the mobile-first lifestyle, children of age group 7–18 are allowed to have access to mobile phones which changes the way children are brought up. Varied reasons hold the cause for this- be it for educational purpose, playing games, casual internet surfing, or calling friends and relatives. Kids these days know how to have their way on the smart phones. Studies suggest that social media surfing, watching online videos, and using search engines are ranked as top 3 activities done on smart phones.

Why we built KidSecure?
While parents may not have full control over allowing their kids to use a smartphone (giving in to the societal pressure of the necessity for kids to access smartphones), parents can, however, keep an eye on what their kids actually use the smart phone for without affecting their privacy. Thus we built KidSecure-

A mobile application to monitor your kids’ phone activities and their geographic whereabouts.

About KidSecure

What does KidSecure primarily do?
KidSecure is a mobile application, running on both, Android and iOS smartphones which allows parents to protect kids online as well as offline with features like safe searching, screen time scheduling, and geofencing.

KidSecure enables parents to restrict malicious Internet and YouTube searches as well as digitally setting up time limits for accessing the smartphones.

Geofencing is another feature which helps parents rest assured that their kids are always roaming inside allowed geographic locations like the school, home, a friend’s home, or parks.

What KidSecure offers-

  1. Role based app flavors- Child app and Parent app

KidSecure comes in 2 forms- Child app (installed on child’s mobile phone) which sends data about child’s phone activities to the parent’s phone and the Parent app (installed on parent’s mobile phone) which is used to get alerts about the child phone’s activities and setting different parameters about how and when the child can access certain apps or browse the Internet.

Child and Parent Apps

2. Safe Internet and YouTube browsing

KidSecure lets parents define which harmful words (example- violence, alcohol, porn, weapons, etc) to block from all searches from browsers and YouTube alike. Parents can also block access to websites.

Internet browsing restrictions on child device

3. Block apps

KidSecure allows parents to select which apps or category of apps the child is restricted to access and can also limit access timings for each app individually.

Manage app screen time- Set restrictions for each app individually

4. Manage child screen timing and schedules

Parents can select when during the day (example- 16:00–16:30) or for how many hours/minutes (example- 30 minutes) the child can access their phone. Otherwise the device use is restricted.

5. Location Tracking

Not only do the parents get real-time updates about the exact location of their child, they can also set allowed locations for their children. If a child goes outside the predefined allowed area, the parent will immediately be notified on the parent app.

6. Battery alerts

Parents can also get real-time updates about the battery level of their child’s phone. So that parents can be warned when the child’s phone needs charging or that child’s phone have lost battery.

7. Real-time child phone screenshot

Parents can check the status of child’s mobile usage by simply clicking a button to capture screenshot of child’s phone at that particular moment and view the same anytime.

Capture and track child phone’s screenshots

8. Device usage reports

Parents can select a day and check which apps the child used that day and for how long.

App-wise mobile usage report

9. Real-time notification alerts to parents

Parents get real-time notification alerts about their child’s restricted mobile activities whenever a child tries to do the following-

  • Tries to access mobile phone outside the allowed time limit
  • Tries to access a forbidden app or game
  • Tries to search any of the forbidden words on browser or YouTube or searches a forbidden website
  • Tries to go outside allowed geographic location
  • Tries to uninstall the app
Restrict child from deleting KidSecure

10. 2-step authentication

The parent app is protected with a 2-step authentication. First, login/register is enabled via OTP sent to a mobile number which the parent sets up and secondly, in order to open parent app to check child phone status or change other child phone settings, the app needs a 4-digit access code which the parent creates at the time of registration.

11. Ability to switch off any type of monitoring any time

Parents can switch off monitoring for a while and then again switch it on again without them having to configure all the settings again.

Remove restriction settings anytime on real-time basis

12. Multiple child support

Parents can setup multiple children profiles and set the child phone monitoring from a single app.

Track multiple children from single point of access

13. In-built password manager for parents

The parent app also provides an in-built password manager which helps them to store usernames and passwords for their other accounts; safely stored in an encrypted format.

Password Manager- Encrypted access to login credentials for different accounts

Building KidSecure mobile app for iOS and Android devices

Deciding the tech stack

What was challenging for us was the many features and embedding two variants of the app from a single app. Also, we had to deliver same app for iOS and Android devices.

Language Platform

Contemplating a lot on how to build such a huge app in very short time and exploring many cross-platform languages and owing to the fact that our team was well-versed with Java, Kotlin, material designing, and Swift, we finally decided using Flutter was our best bet, with Dart being on the same lines as Java and Kotlin.

Database

KidSecure primarily works on real-time updates. Managing a huge backend to query parent settings to quickly process on child app was one of the major concerns for us. After comparing various databases and calculating API creation, integration, and maintenance overhead, Firebase’s Cloud Firestore was a perfect match for us. It allowed us to listen to any updates in child or parent apps real-time and helped us to write complex queries quickly.

User Authentication

To make the app fully secure and make sure the parental controls in the app are not misused, we had to give extra thought to how we would be managing user authentication and secure login. Again, Firebase’s Phone Authentication sounded to be a good match for this requirement.

Architecture

For Architecture, we decided to use the bloc pattern. It enabled us to construct a seamless structure to design a subscription-based model to listen to all real-time changes. We have had some experience with this library when it came to managing dynamic flow in our app. Check this link to understand how we implemented multiple states with bloc.

The Challenges

Talking about real-time updates, runtime challenges are inevitable for any software project. And like any other project, of course, there were many challenges while developing the app; even after giving a lot of thought about the if’s and do’s and dont’s and how’s beforehand. For details on how we addressed the many challenges in Flutter and it’s plugins, watch out for our next blog in this series coming soon.

To Sum Up

KidSecure offers manifold options for best parental control over your child’s safe phone usage and at the same time allows your child to access mobile phone for educational and extra-curricular purpose in a seamless way.

Have an idea for the app? Contact us

--

--