Mixing frameworks.
WHY IT IS COMMON
Existing applications adopt the newer framework gradually, and some capabilities are only available in the older one.
WHAT THE BRIDGES PROVIDE
Wrapping an older view or controller for use in the newer framework Hosting newer views inside older controllers
WHAT TO USE THE OLDER FRAMEWORK FOR
Capabilities not yet available Fine control over specific behaviour Existing components worth reusing
WHAT TO BE CAREFUL WITH
State synchronised between the two Lifecycle differences Layout behaving unexpectedly at the boundary
WHAT TO KEEP AT THE BOUNDARY
A small, well-defined wrapper.
WHY
So the mixing is contained rather than spread throughout.
WHAT TO DO WHEN ADOPTING GRADUALLY
Convert screen by screen, starting with something self-contained.
WHAT NOT TO DO
Attempt to convert everything at once.
WHAT TO TEST AT EVERY BOUNDARY
Navigation, dismissal and state.
WHAT TO EXPECT
That the boundaries are where the awkward bugs live.