What a PWA actually is
A PWA is three things layered on top of an ordinary web app: a manifest that tells the phone the app name and icon, a service worker that keeps already-downloaded files and data in a local cache, and mandatory HTTPS. The practical result: the user launches it from the home screen like any other app, sees no address bar and can use it on the underground. From their point of view there is no visible difference from a downloaded app; the difference is that they never had to search a store.
When to pick a PWA over a store app
A PWA wins when you want frictionless distribution: internal apps for staff, portals for existing customers, tools for field teams, time-limited events. It also wins when you iterate constantly — you can publish several times a day with no review. A store app wins when you need visibility in App Store search, recurring payments through Apple or Google, deep hardware access (Bluetooth, sensors), or the credibility signal of an icon sitting in an app store. Plenty of businesses run both.
What a PWA can and cannot do on iPhone
On iOS a PWA added to the home screen can launch full screen, keep data locally, send push notifications (after installation and explicit consent), use the camera through the file picker and read location. It cannot appear in the App Store, use Apple in-app purchases, run in the background for long stretches, or reach Bluetooth and NFC. Local storage is capped too, and if the app goes unused for several weeks the system may reclaim its cached data. When one of those points is critical, we ship the native variant as well.
One source, two deliveries
Screens, data collections and logic are identical for both deliveries. In the project settings you choose PWA only, native apps only, or both. If you start with the PWA — our recommendation for the first few weeks, because you test with real users without any review — you can request the native builds at any point without rebuilding a single screen. User accounts carry over, so anyone who used the web variant finds their account in the app installed from the store.