---
title: "Bloc | Skills We Assign For | Azendo"
description: "Bloc for Flutter state — explicit events and states, testability, and the Azendo roles assigned for it."
url: "https://azendo.co/skills/bloc/"
---

[Skills](https://azendo.co/skills/) Mobile platforms and frameworks 

# Bloc.

Bloc is a Flutter state management pattern and library separating presentation from business logic through explicit events and states. A widget dispatches an event, the bloc emits a new state, and the interface rebuilds from it.

## Where Bloc fits on a long engagement.

Bloc's structure is its argument. Every state transition is an explicit, named, testable thing, which makes business logic straightforward to unit test without touching the widget tree. On a large application with several contributors, that explicitness is what keeps behaviour reviewable.

On a small application it is a lot of ceremony. A screen that toggles a boolean does not need an event class, a state class and a bloc, and teams that apply the pattern uniformly generate a great deal of code that carries no information. It is a tool for complex flows rather than a default for every widget.

## What an assigned team does with Bloc.

The consistency question matters more than the choice. A Flutter codebase using Bloc in some places, a different pattern in others and raw setState in a third is harder to work in than one that picked any single approach and held it.

Holding a convention across years and contributors is a continuity outcome, which is the argument for a [dedicated development team](https://azendo.co/services/dedicated-development-team/) over capacity booked per feature.

## What we use Bloc for.

* Complex flows with many states Multi-step processes where every transition should be explicit and independently testable.
* Business logic tested without widgets Unit tests over blocs, so logic coverage does not depend on driving the interface.
* One pattern across a large app A single state approach several contributors can read, rather than three dialects.

## How Bloc capacity is assigned.

Bloc work sits inside Flutter capacity under [software development outsourcing](https://azendo.co/services/software-development/).

## Roles we assign Bloc for

* [Flutter Developer Mobile development](https://azendo.co/services/mobile-development/flutter-developer/)

## Service lines it sits in

* [Mobile development](https://azendo.co/services/mobile-development/)

Capacity is agreed as a committed monthly capacity across a discipline, not per skill.

## Related in mobile platforms and frameworks

* [SwiftUI — skill we assign for](https://azendo.co/skills/swiftui/)
* [UIKit — skill we assign for](https://azendo.co/skills/uikit/)
* [Jetpack Compose — skill we assign for](https://azendo.co/skills/jetpack-compose/)
* [Coroutines — skill we assign for](https://azendo.co/skills/coroutines/)
* [Flutter — skill we assign for](https://azendo.co/skills/flutter/)
* [React Native — skill we assign for](https://azendo.co/skills/react-native/)
* [Expo — skill we assign for](https://azendo.co/skills/expo/)
* [Ionic — skill we assign for](https://azendo.co/skills/ionic/)

## Tell us what your roadmap needs Bloc for.

A service delivery manager replies with the disciplines we would assign, the monthly capacity and what the first month looks like.

[All skills we assign for](https://azendo.co/skills/)
