Today, we at Dreambit.io want to talk about one of the most powerful tools for mobile app analytics – Firebase. Firebase Analytics helps developers gain deep insights into user behavior, allowing for improvements in app functionality and usability. 

Key Features: 

🚀 Automatic Data Collection: Automatically gathers essential user data. 

🚀 Custom Events: Set up specific user action tracking. 

🚀 Audience Analysis: Segment users for precise marketing. 

🚀 Service Integration: Easily connects with other Firebase products and third-party services like BigQuery. 

Advantages: 

🖌️ Real-Time Data: Quick response to changes. 

🖌️ Free: Basic capabilities are free. 

🖌️ Intuitive Interface: User-friendly and easy to navigate. 

Statistics on Firebase Analytics Usage: 

☑️ 70% Conversion Growth: According to Google, companies using Firebase Analytics typically see up to a 70% increase in conversions. 

☑️ 2.5 Billion Active Devices: Firebase Analytics is actively used on over 2.5 billion devices worldwide. 

☑️ 90% of Top Apps: Over 90% of top apps on the Google Play Store use Firebase for analytics and other functions. 

We actively use Firebase Analytics in our projects and are ready to help you integrate it into your app to elevate your analytics to the next level. 

Intro

This architecture has a layered structure and allows for clear separation of logic from the UI. It is based on the principles of SOLID and KISS, making it easy to use and maintain. It uses core packages such as linter, code formatting & automatization, network, BLoC, localization, dependency injection and Either. The structure of the architecture is represented with the diagram below.

The architecture described below is highly scalable and allows us to quickly implement new features.

Layers

Application separated into 4 layers.

Presentation

Layer “Presentation” interacts with layer “Business Logic” by triggering events and responding to state changes.

Business Logic

The “Business Logic” layer interacts with the “Domain” layer using methods to receive/send data.

Domain

The “Domain” layer interacts with the “Data” layer using methods that depend on the specific data source (for example, for API using requests/responses). Handling of all errors related to getting/parsing data is performed in this layer.

Data

The main advantages of this architecture are

  • clear separation of logic from the UI;
  • catching and logging all possible errors;
  • displaying localized and understandable error messages to users;
  • dependency injection;
  • lightweight blocs;
  • easy implementation of different themes;
  • ease of support and expansion;
  • strict adherence to the principles of SOLID and KISS;
  • simplicity.

Core Packages