Cross-platform development builds one codebase that runs on more than one operating system, usually iOS and Android. You ship both app stores — Apple’s and Google Play — without writing the product twice.
A native app is the close pair: one platform, written in that platform’s language, such as Swift on iOS or Kotlin on Android. Cross-platform shares most of the product and still installs like a real app, often through a framework such as React Native or Flutter. A web app stays in the browser, and a PWA on the home screen is still the web. A deep link has to open the same kind of screen on both phones.
Low-code can cover a simple version of either route. An MVP is often cross-platform when you need both phones and cannot fund two teams yet.
A real-life example of cross-platform development
A Midtown fitness studio wants members to book a class from an iPhone or an Android phone: one team, one booking flow, both stores. If the app must open a door lock the browser cannot reach, native may still win on that feature. For a class list and a pay button, two codebases mostly buy you two bugs.
Pick the route from the job the phone has to do. Read native, cross-platform, or web and cross-platform with low-code.