Discovery and scope
Before any code, a serious team pins down the problem, the core user flows, and what's in and out of the first release. This is where most overruns are prevented or created. If a vendor skips straight to a quote without scoping, that quote is a guess.
Design — UX before UI
Wireframes and user flows come before pixels. The goal is to prove the app makes sense to use, then make it look good. Rushing to visual design before the flows are right is a common, expensive mistake.
Build, in working increments
Good teams ship the app in small, testable slices rather than disappearing for months. You should see something running early and often. Native (Swift, Kotlin) or cross-platform (Flutter, React Native) is chosen here based on the app's needs, not habit.
QA, release and the part everyone forgets
Testing isn't a phase at the end; it runs alongside the build. Then comes store submission, which has its own rules and review times. And after launch: monitoring, crash fixes and updates. An app is a living product — the team that plans for that is the one to keep.