Custom hooks
Once a state hook accumulates a few related useState, useMemoized, and useEffect calls that always travel together, that cluster is a hook of its own. Hooks compose: a hook is just a function that calls other hooks, so you extract the cluster into a useXState and call it like any built-in. This is how utopiahooks itself is built - useFieldState is a useState for the value plus a useState for the error, wrapped in one function.
Hooks internals
Hooks look like magic - useState returns a value that survives across rebuilds with no field to store it in - but the mechanism is small and worth understanding. Knowing how it works explains why the rules exist: why hook calls must keep a stable order, why keys compare element-wise, and how useKeyed legitimately runs hooks conditionally. None of this is API you call directly; it is the machinery underneath the catalog.
App bootstrap
Getting an app from main() to its first real screen usually means a sequence of async steps - initialize the SDK, restore the session, fetch remote config - and the obvious place to put them is main():
Flutter conventions
These are the Dart and Flutter conventions that keep hook-based code consistent and bug-resistant. A few of them are not stylistic - they close off entire classes of bug that hooks are especially prone to (missed rebuilds from mutated collections, controllers that fall out of sync, broken hook ordering). They apply to every .dart file, not just state hooks.