Native, hybrid, PWA, wrapper: what each tool really produces

Are apps built with no-code or AI platforms really native? The four kinds of mobile app in plain words, what each one can and cannot do, and what fifteen tools actually produce.

· last verified November 12, 2026

Key points

  • Four different things hide behind the word app: native code (Swift, Kotlin), a cross-platform app compiled from React Native or Flutter, a website in a wrapper, and a PWA installed from the browser.
  • Most AI app generators produce React Native with Expo: a real installed app, but not Swift or Kotlin. Only Rork and Vibecode generate Swift, Lovable and Glide stay on the web, and Base44 publishes a web view.
  • The difference shows on system features: Siri actions, widgets and in-app purchase need an installed app, and a wrapper that does no more than a website risks rejection under Apple's guideline 4.2.

An app built with an AI or no-code tool isn’t necessarily native. Behind the word “app”, AI and no-code tools produce four different things: native code written in Swift or Kotlin, a cross-platform app compiled from React Native or Flutter, a website wrapped in an app shell, or a PWA installed from the browser. Most AI app generators produce React Native; only a few write Swift.

The four kinds, in plain words

Kind What it is Typical technology How to recognise it
Native One app per platform, written in each platform’s own language with Apple’s and Google’s tools Swift or SwiftUI on iOS, Kotlin on Android Two separate projects: an Xcode project with .swift files, an Android project with .kt files
Cross-platform compiled One codebase turned into a real iOS app and a real Android app React Native (often with Expo), Flutter A package.json listing react-native or expo, or a pubspec.yaml with Dart files for Flutter
Wrapper (often called hybrid) A website displayed inside an app shell, in a web view Capacitor, Cordova, a vendor’s own shell The app loads a web address, and content changes without a new store version
PWA A web app the user installs from the browser HTML, JavaScript, a service worker No store listing: you open a web address, then “Add to Home Screen”

Two details matter. React Native is not a website: at runtime it “creates the corresponding Android and iOS views”, per its documentation. Flutter compiles to machine code too, but it “has its own implementations of each UI control” instead of using the system’s. Both are real installed apps; neither is Swift or Kotlin.

A wrapper, on the other hand, is honest about what it is. Base44’s documentation describes its mobile app as “a lightweight native wrapper around your web app that opens only your app’s URL”.

What each kind can and cannot do

Capability Native Cross-platform compiled Wrapper PWA
Push notifications Yes Yes If the shell adds them (Base44 does) On iPhone, only once added to the Home Screen, since iOS 16.4
Works offline Yes Yes Depends on the shell (full offline not supported at Base44) Partly, through a service worker
Siri and App Intents, widgets Yes, directly Yes, with native code added to the project Only if the shell adds native code No
Apple and Google in-app purchase Yes Yes Depends on the shell (not supported at Base44) No, payment happens on the web
Store acceptance Yes Yes At risk if it does no more than the website (guideline 4.2) Not on the App Store

Push notifications. iOS and iPadOS 16.4, released in March 2023, added web push “to web apps added to the Home Screen”, per WebKit. A PWA opened in Safari without being installed gets nothing.

Siri, widgets and other system features. Apple’s App Intents framework is how an app makes its actions and data available to Siri, Spotlight, Shortcuts and widgets. Widgets themselves are built with WidgetKit. These are native frameworks compiled into the app. Flutter’s documentation shows the path for a cross-platform app: you add an extension in Xcode and work with it “using the same techniques as UIKit or SwiftUI apps”. On Android, the equivalent for assistants is AppFunctions, available on Android 16 and later and still experimental. A web page can register with neither.

In-app purchase. Apple’s guideline 3.1.1 requires in-app purchase to unlock features or digital content inside an app. Base44 states that its apps don’t support Apple In-App Purchase or Google Play Billing yet. A PWA is not in the store, so it charges on the web like any site.

Store acceptance. Guideline 4.2 asks for “features, content, and UI that elevate it beyond a repackaged website”. Wrappers are the kind most exposed to it. Our article on why Apple rejects AI-built apps goes into the detail.

Why native comes back into the debate in 2026

Two dated facts. On September 10, 2026, Shopify announced it would migrate all its mobile apps from React Native to Swift and Kotlin, because coding agents now carry much of the cost of building twice. And Apple’s redesign, Liquid Glass, reaches apps that use standard SwiftUI or UIKit components as soon as they are built with the latest SDK, per Apple. Flutter draws its own controls, so it has to rebuild the look itself: on June 10, 2025, the Flutter team wrote it was “not developing” the new design in its Cupertino library “right now”, and the GitHub issue was still open on November 12, 2026.

Mathieu Poli, head of frontend engineering at GoodBarber, has made the case for native in three signed pieces. In “Everyone is going back to native. We never left” (dev.to, September 11, 2026), he points out that intermediate layers come and go: Adobe shut down PhoneGap in 2020 and Microsoft ended Xamarin support on May 1, 2024. In “The assistant is making the native app mandatory again” (dev.to, October 1, 2026), he argues that App Intents and AppFunctions are native kits a web page cannot register with. In “Native is a floor, not a ceiling” (UX Collective, November 6, 2026), he uses Liquid Glass to show what recompiled native apps get for free. Read these as an argued position from GoodBarber, which publishes this site. The facts they rest on are linked in our sources.

What each tool produces

Checked on November 12, 2026, against each vendor’s documentation, consistent with our comparison of the best AI tools to create a mobile app.

Tool What it produces Kind In practice
Lovable Web app Web, not a mobile app Opens in a browser, doesn’t go to the stores
Bolt Web app, or React Native with Expo Web, or cross-platform compiled On mobile, a real app which you build and publish yourself with Expo
Base44 Web app in a web view Wrapper Push available; no in-app purchase or full offline yet
Replit React Native with Expo Cross-platform compiled Publishing to iOS only
Rork SwiftUI, Kotlin Native Goes as far as App Store submission; for Google Play, provides an .aab file you upload yourself
Vibecode Swift, or React Native Native or cross-platform The Swift path goes as far as App Store submission
Anything React Native with Expo Cross-platform compiled iOS; Google Play in beta
Newly (formerly Natively) React Native with Expo Cross-platform compiled iOS (TestFlight) and Google Play
a0.dev React Native Cross-platform compiled iOS
Draftbit React Native with Expo Cross-platform compiled Builds and uploads to both stores
FlutterFlow Flutter Cross-platform compiled Exportable Flutter code; controls drawn by Flutter
Adalo App described as native Compiled app, stack not published Full code export on the Business plan
Thunkable App described as native Compiled app, stack not published No code export
Glide PWA PWA Doesn’t go to the stores
GoodBarber iOS and Android apps built with its native engines (Swift for iOS, Kotlin for Android), plus a PWA Native and PWA Supported publishing, or handled by the GoodBarber Takes Care service; source code not exportable

Adalo and Thunkable don’t publish the stack behind their apps. At Adalo, full code export on the Business plan lets you check it; Thunkable doesn’t export code. Neither does GoodBarber, but its engineering team states publicly that its engines are written in Swift and Kotlin.

Our take, by project

  • Testing an idea, or an internal tool used on a computer as much as on a phone: a web app or a PWA is enough. Lovable, Glide or GoodBarber’s web version get you there without store review or developer fees.
  • Putting an existing website on the stores: a wrapper works technically, but add what a website can’t do (notifications, offline, device features) or expect guideline 4.2.
  • A real app whose code you or a developer will keep: React Native with Expo (Bolt, Newly, Draftbit) or Flutter (FlutterFlow). That suits most apps; Siri actions and widgets will need some native code on top.
  • An app that should feel like iOS and Android and reach Siri and widgets: native. Rork or Vibecode if you want AI-generated Swift and are ready to maintain it, a developer for a specific project, or a native no-code tool such as GoodBarber if you’d rather not handle code.

Whatever the kind, publishing still goes through the same steps: see our guide on how to publish an AI-built app.

FAQ

Are apps built with no-code or AI platforms really native?

Some are, most are not. Rork generates SwiftUI and Kotlin, Vibecode generates Swift on its main path. Bolt, Replit, Anything, Newly, a0.dev and Draftbit produce React Native, FlutterFlow produces Flutter, Base44 a web view and Lovable a web app. GoodBarber builds its apps with its native engines, Swift for iOS and Kotlin for Android. Adalo and Thunkable describe their apps as native without publishing the underlying stack.

Are React Native and Flutter native?

Not in the strict sense, but they are real installed apps. React Native creates real iOS and Android views at runtime. Flutter compiles to machine code but draws its own controls, so it does not automatically pick up system redesigns such as Apple's Liquid Glass.

Can a PWA send push notifications on iPhone?

Yes, since iOS 16.4 (March 2023), but only once the user has added the web app to the Home Screen. A PWA still cannot be listed on the App Store, sell through Apple's in-app purchase, or expose actions to Siri through App Intents.

Sources (34)
  1. React Native: Core Components and Native Components
  2. Flutter: Architectural overview
  3. Flutter: Adding iOS app extensions
  4. Flutter: Issue #170310, Liquid Glass in Cupertino widgets
  5. Capacitor: Documentation
  6. MDN: Progressive web apps
  7. WebKit: Web Push for Web Apps on iOS and iPadOS
  8. WebKit: WebKit Features in Safari 16.4
  9. Apple: App Store Review Guidelines
  10. Apple: App Intents
  11. Apple: WidgetKit
  12. Apple: Adopting Liquid Glass
  13. Android: AppFunctions
  14. Shopify Engineering: Back to native
  15. Apache Cordova: Goodbye PhoneGap
  16. Microsoft: Xamarin support policy
  17. Mathieu Poli (GoodBarber): Everyone is going back to native. We never left (dev.to, Sept. 11, 2026)
  18. Mathieu Poli (GoodBarber): The assistant is making the native app mandatory again (dev.to, Oct. 1, 2026)
  19. Mathieu Poli (GoodBarber): Native is a floor, not a ceiling (UX Collective, Nov. 6, 2026)
  20. Base44: Uploading to app stores
  21. Lovable: FAQ
  22. Bolt: Expo integration
  23. Replit: Mobile apps
  24. Rork: FAQ
  25. Vibecode: FAQ
  26. Anything: Mobile apps
  27. Newly (formerly Natively): FAQ
  28. a0.dev: Pricing
  29. Draftbit: FAQ
  30. FlutterFlow: Product
  31. Adalo: App store publishing
  32. Thunkable: Pricing
  33. Glide: Publishing to an app store
  34. GoodBarber: Pricing