Skip to content
tezvyn:

Flutter & Dart

Flutter framework, Dart language, packages, Impeller

41 bites

Test yourself: Top 30 advanced Flutter & Dart concepts questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Advanced concepts in Flutter & Dart, page 2

advanced2 min read

Redux: Predictable State via a Single Source of Truth

Redux treats app state like a transaction log. All changes are explicit actions processed by pure functions, creating a new, predictable state. It's ideal for complex apps with shared state. The main footgun: putting side effects like API calls in reducers.

MobX: Automatic UI Updates with Reactive State
advanced2 min read

MobX: Automatic UI Updates with Reactive State

MobX automatically wires your reactive data to your Flutter UI, so widgets update when data changes. It's used for state management from simple counters to complex forms. The main footgun is forgetting to wrap all state mutations inside an Action.

advanced2 min read

Freezed: Immutable State Without Boilerplate

Freezed is a Dart code generator that writes your immutable data classes for you. You define the shape, and it generates constructors, copyWith, and equality checks. Use it for model classes and to represent distinct states.

advanced2 min read

dio Interceptors: Middleware for Network Requests

dio Interceptors are middleware for network requests, letting you inspect and modify them before they're sent or after a response is received. Use them to globally add auth tokens, log activity, or handle token refreshes.

advanced2 min read

graphql_flutter: Client Setup and Querying

graphql_flutter connects your app to a GraphQL API via a client-provider-widget pattern. You provide a configured GraphQLClient to a GraphQLProvider, then use Query widgets to fetch data declaratively.

advanced2 min read

Cross-Platform WebSockets with `web_socket_channel`

The web_socket_channel package abstracts away platform differences for WebSockets, giving you a single API for web, mobile, and server. Use it for real-time features like chat or live data feeds. The footgun: always await channel.ready before sending data.

Drift: Type-Safe SQL in Dart & Flutter
advanced2 min read

Drift: Type-Safe SQL in Dart & Flutter

Drift gives your raw SQL queries compile-time safety. Instead of parsing maps, its build-time analyzer validates your SQL and generates typed Dart objects for results. Use it to write complex queries without risking runtime errors from typos or schema changes.

advanced2 min read

Isar: A Modern NoSQL Database for Flutter Apps

Isar is a fast, local NoSQL database for Flutter, offering static typing and ACID guarantees. Use it for on-device persistence in iOS, Android, and desktop apps. Don't mistake it for a remote database; Isar is for local storage, not cloud sync.

advanced2 min read

Full-Text Search in Local Flutter Databases

SQLite FTS5 is an inverted index in your app: words map to row IDs, skipping brute-force scans. Use it when local tables exceed thousands of rows and LIKE lags. The footgun is that FTS virtual tables never auto-sync, so stale indexes return wrong rows.

advanced2 min read

Staggered Animations: Choreographing UI Changes

A staggered animation is a domino effect for your UI. Instead of animating everything at once, you sequence animations with slight delays for a more fluid, polished feel. Use it for list items appearing one by one. The footgun is timing: too long feels slow.

advanced2 min read

Flutter's Path Class: Drawing Custom Shapes

Flutter's Path is a digital pen for drawing any custom shape. Use it for complex icons, charts, or clipping widgets into non-rectangular forms. The footgun: forgetting moveTo will connect separate parts of your drawing with an unwanted line.

advanced2 min read

Flutter's Physics Simulations: The Simulation Class

Flutter's Simulation class is the engine for physics-based animations, modeling a 1D object's position and velocity over time. It powers realistic scrolling, springs, and gravity effects.

advanced2 min read

Canvas Transformations: Moving the Paper, Not the Pen

Think of Flutter's Canvas transformations not as moving your drawing, but as moving the coordinate system itself. This is key for custom painters, like rotating the canvas to draw tick marks on a dial.

advanced2 min read

Dart FFI: Calling C Code from Dart

Dart FFI is a bridge to the C world, letting you call native C libraries directly from Dart. Use it to access OS APIs or high-performance C/C++ code. The footgun: you must manually manage native memory, risking crashes or leaks if you forget to free.

advanced2 min read

Flutter Add-to-App: Embedding Flutter in Native Apps

Think of Add-to-App as embedding the Flutter engine inside your existing native app, like a super-powered web view. It's for incrementally migrating a large Android or iOS codebase to Flutter without a full rewrite.

advanced2 min read

BasicMessageChannel: A Coded Pipe to Native

A BasicMessageChannel is a raw data pipe between Dart and native code that uses a "codec" to translate objects into binary. Use it for streaming data or custom types not handled by MethodChannel. The footgun is a codec mismatch, which causes runtime crashes.

advanced2 min read

Background Execution and Services in Flutter

Think of background execution as a helper doing heavy lifting off-screen. It keeps your app's UI smooth by running tasks like data processing on a separate thread (Isolate). The footgun is that isolates don't share memory; you must pass data explicitly.

advanced2 min read

Testing Flutter Platform Channel Interactions

Mock platform channels to test your Dart code's interaction with native APIs without a real device. Use this for unit tests of features like camera or GPS access. Footgun: These tests only verify the Dart side, not that your native code is correct.

advanced1 min read

Flutter Code Obfuscation: Hiding Your Logic

Obfuscation makes your compiled Dart code harder to reverse-engineer by renaming symbols to be unreadable. Use it in production builds to protect sensitive logic, but always save the symbol map file to decipher crash reports later.

advanced2 min read

Deferred Components: On-Demand Features in Flutter

Think of deferred components as downloadable content for your app. They reduce initial install size by letting you download features on demand. This is ideal for large, rarely-used functions on Android and web, but requires handling loading states and network…

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles