KidSecure -Parental control mobile app in Flutter (Part-1)
KidSecure is a parental control mobile application which helps parents understand and limit their children’s mobile usage
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-
- 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.
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.
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.
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.
8. Device usage reports
Parents can select a day and check which apps the child used that day and for how long.
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
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.
12. Multiple child support
Parents can setup multiple children profiles and set the child phone monitoring from a single app.
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.
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