Flutter is a strong fit for QR-heavy apps because the same product often needs both generation and scanning. The hard part is not drawing the code. It is designing a workflow that stays fast, readable, and reliable across devices.
If the destination may change after release, your mobile app should generate a dynamic QR target rather than hard-coding a final link into every asset.
Some apps only need to display a QR image. Others must cache payloads, scan from photos, and recover gracefully when connectivity is weak.
On-device generation is fast for simple use cases. Backend generation is easier when you need tracking, auditability, branded presets, or high-volume batch output.