Skip to content
tezvyn:

Flutter & Dart

Flutter framework, Dart language, packages, Impeller

305 bites

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

Everything in Flutter & Dart, page 10

intermediate2 min read

WidgetTester: Programmatically Drive Your Flutter UI

WidgetTester is a robot user for your app, programmatically tapping, dragging, and entering text. Use it in testWidgets to simulate user flows and verify UI state. The footgun is forgetting tester.pump() after an action; you'll assert against a stale UI.

intermediate1 min read

Finding Widgets with Flutter's Finder Class

Finder is your magnifying glass for widget tests, letting you locate specific widgets in the tree. It describes what to find, while the WidgetTester does the actual finding. The footgun is assuming a finder returns only one widget when it might match several.

easy2 min read

Dart's `expect` and Matchers: Writing Better Tests

Dart's expect and Matchers are a grammar for your tests, letting you define complex rules beyond simple equality. Use them to verify values, check for exceptions, and test async Futures/Streams.

easy2 min read

Unit Testing in Dart: Verify Your Logic in Isolation

A unit test is a microscope for your code. It checks a single function or class in isolation, ensuring it behaves correctly without worrying about the UI or network. Use it for business logic, not for testing rendered widgets or API calls.

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

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

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

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.

intermediate2 min read

Pigeon: Type-Safe Platform Channels in Flutter

Pigeon acts like a contract for your app's native code, generating type-safe platform channels from a single definition. This replaces manual, error-prone MethodChannel code. The footgun: Swift types default to structs; use @SwiftClass for class features.

intermediate2 min read

Platform Views: Embedding Native UI in Flutter

Platform Views cut a hole in your Flutter UI to show a native component. Use them to embed UI that can't be rebuilt in Dart, like Google Maps or a native WebView. Be warned: they are resource-heavy and can hurt performance if overused.

intermediate2 min read

Flutter Platform Channels: Talking to Native Code

Platform Channels are a telephone line between your Dart code and native device APIs. Use them to access features like battery level or integrate a native SDK not available in Dart.

easy2 min read

Dart's Platform Class: Querying the Host Environment

Think of Dart's Platform class as a runtime detective for your app. It answers "where am I running?" by checking the OS, environment variables, and more. Use it to show different UI on iOS vs. Android.

easy2 min read

Flutter: Requesting Runtime Permissions

Don't assume your app has access to the camera or contacts; you must ask the user for permission at runtime. This is required for features like photo uploads or location tracking. The common footgun is forgetting to declare permissions in native config files.

easy2 min read

Flutter Packages: Bridging Dart to Native Features

Think of packages as pre-built bridges to native device features. They let your Dart code access the camera or GPS without you writing the complex, platform-specific code.

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

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

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

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.

intermediate2 min read

ClipPath: Clip Widgets to Custom Shapes

ClipPath is a stencil for your widgets. It cuts a child widget to a custom-defined shape, hiding anything outside the lines. Use it for complex shapes like waves or stars, but avoid it for simple rectangles or circles—it's expensive.

intermediate2 min read

CustomPaint: Drawing Your Own Widgets in Flutter

CustomPaint is your blank canvas widget; CustomPainter is the artist that draws on it. Use them for custom charts or unique UI. The footgun: shared canvases can cause blend modes to erase other widgets, so use saveLayer sparingly.

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