Flutter GetX app freezes on startup due to multiple controllers and heavy initialization work
00:34 01 Feb 2026

I am working on a Flutter health management system app that uses GetX with an MVC architecture.

Current setup:

  • Around 20–25 GetX controllers

  • All API calls, Hive read/write operations, and business logic are happening inside controllers

  • A custom step counter service implemented using native background services

  • Some controllers were converted to GetxService, but the issue persists

Problem:
The app freezes on startup (onStart).
The UI becomes unresponsive for a few seconds before rendering.

Observations:

  • Many controllers are initialized at app start

  • Controllers perform:

    • API calls

    • Hive database reads/writes

    • Background service bindings

  • Converting controllers to GetxService did not resolve the freeze

Question:

  1. What is the correct way to initialize many GetX controllers without blocking the UI thread?

  2. Should Hive and API logic live inside controllers, or be moved elsewhere?

  3. How should background services be initialized to avoid startup freezes?

  4. Is there a recommended GetX architecture or lazy-loading strategy for large apps?

Any guidance or architectural suggestions would be appreciated.

flutter dart flutter-dependencies flutter-getx flutter-hive