Family Organizer App Development

We developed from scratch iOS and Android mobile apps for friends, family members, and other user groups to interact and communicate within these groups.

Challenge

Our client, a German-based startup, needed an interactive platform for friends, family members, and other social groups. When the client contacted our company, they only had the idea of their future family organizer app. Herewith, the client was purposefully looking for a team in a large and promising IT-region of Eastern Europe to implement their idea of a communication platform and turn it into a full-fledged software solution.

The client later explained the choice in favor of our company by the fact that in this region we were able to offer them a team of qualified specialists at very flexible and cost-efficient hiring models. To augment their current team, the client hired four mobile developers from Mbicycle with relevant skills and qualifications to create both iOS and Android apps from scratch in line with their requirements.

Solution

To implement the initial idea of a communication platform, we decided to focus our solution on the chat functionality for dedicated user groups, such as family members, friends, and other social groups with the ability to communicate, share files, and create various events for participants in every group.

Basic functionality

We started development by creating the registration and login forms. New users could register and then log in by their phone numbers. Already registered users got to the home screen, while unregistered users got an offer to join the app community. Registered users could fill and edit their profiles, as well as choose a privacy level with the ability to show their personal data to certain user groups. To implement registration and login forms, our team used UIKit, URLSession, Keychain, etc.

Further, our team used WebSocket, RealmSwift, GSON, and other development tools and frameworks to implement the chat functionality, as well as furnish offline access to these chats using the Realm database. We also provided users with the ability to share media files, including images, videos, and text documents within dedicated chats.

At the next stage, we provided users with the ability to create events within chat groups and edit them by setting a description, date, image, and reminder. We also synced reminders with a standard calendar on users’ devices in addition to in-app notifications. Users could look through all events on a dedicated tab with several view options, including agenda view, sorting by importance, and sorting by date. To implement the event function, we used EventKit, WebSockets, URLSession, remote and local push notifications, as well as Realm database to view events offline.

Additional functionality

During the development of the basic app functionality and follow up the task completion in daily meetings, the client decided to add a few additional features extending the main family manager app functionality.

Thus, as one of the additional options, we added a specific pinboard tab with the ability to pin messages from the chat, images, videos, and other pins to it. Users could create pinboards and share them with different groups of users, for example, within a specific chat. To implement this feature, our team used UIKit, REST API, PhotoKit, and Realm database to store pinboards and provide offline access to them.

The last but not least option we decided to add as an extension for our family manager software was the to-do lists feature. We created a dedicated tab where users could create tasks, compile them into lists, and assign these tasks to other users. Settings of this tab provided users with the ability to specify the time and date, the execution mark, and the repeat period at certain intervals. To assure the correct running of the repeat period, our team wrote and implemented its own algorithm. We also used the Realm database for offline access to the listings.

Process

As a development methodology, we followed Scrum with daily sessions and spring planning in order to discuss upcoming features and apply them timely.

The project team included experts both from the client’s side and from our company. Thus, our 2 iOS and 2 Android developers worked extensively with the following experts on the client’s side:

  • 2 backend developers
  • Project manager
  • Designer
  • QA engineer

Technologies & Tools

Programming language

Java, Kotlin, Swift

Architecture

MVVM, VIPER

Database

Realm

Third-party libraries & frameworks

Android SDK, iOS SDK, UIKit, URLSession, WebSocket, REST API, Glide, OkHttp3, Retrofit 2, GSON, ViewBidning, Coroutines, Kotlin KTX, Firebase, Exoplayer, Foundation, CocoaPods, NSUserDefaults, Keychain, Deep linking, RealmSwift, PhotoKit, EventKit, App Extensions

Results

It took the project team about twelve months of collaborative work to efficiently implement the main functionality of the family manager tool for our client, as well as amplify it with a few supplementary features the client decided to add during development.

As the client was entirely satisfied with the results of implementing their requirements, they hired our mobile developers to proceed with another app augmenting their main product in part of the task and to-do list management.