Zum Inhalt springen

Von Web zu Native – Wann lohnt sich eine iOS-App statt PWA? (2026)

· von · Aktualisiert am

iOS App oder Progressive Web App

~16 Min. Lesezeit · Veröffentlicht am

Das Wichtigste vorab: PWA ist nicht „minderwertiger" – es ist eine andere Strategie. Native iOS lohnt sich nur bei klaren technischen oder geschäftlichen Anforderungen. Als Webentwickler hast du den Vorteil: Du kannst beides bewerten.

Vor einem halben Jahr hätte ich bei der Frage „Brauchen wir eine native App?" reflexartig geantwortet: „Versuch's erst mit einer PWA." Das war meine sichere Zone – Web-Technologien, die ich kenne, beherrsche und vertrete. Dann habe ich angefangen, iOS-Apps mit Swift und SwiftUI zu entwickeln. Nicht weil PWAs plötzlich schlecht wären, sondern weil ich verstehen wollte, wo die Grenzen wirklich liegen.

Dieser Artikel ist das Ergebnis dieser Erfahrung: Ein ehrlicher technischer Vergleich aus der Perspektive eines Webentwicklers, der beide Welten kennt – ohne Dogmen, ohne Fanboy-Rhetorik, mit konkreten Entscheidungskriterien.

PWA vs. Native – Die technischen Fakten

Für Einsteiger: Was ist eine PWA?
Progressive Web Apps sind Websites, die sich wie Apps anfühlen: installierbar auf dem Homescreen, offline-fähig durch Service Worker, Push-Benachrichtigungen. Technisch läuft alles im Browser – HTML, CSS, JavaScript. Beispiele: Twitter Lite, Starbucks, Spotify Web Player.

Der Vergleich zwischen PWA und nativer iOS-App läuft oft auf zwei vereinfachte Aussagen hinaus: „PWAs sind günstiger" und „Native Apps sind besser". Beides stimmt – und beides ist falsch, wenn man nicht genauer hinsieht.

KriteriumProgressive Web AppNative iOS App
Offline-FunktionalitätService Worker cacht Ressourcen und API-Responses. Gut für Content-First-Apps, limitiert bei komplexer Datenverarbeitung.Core Data, Realm oder SQLite für vollständige lokale Datenbanken. Offline-First ist Standard, nicht Kompromiss.
PerformanceJavaScript-Bundle muss geladen und geparst werden. Bei guter Optimierung schnell, aber immer Browser-Overhead.Compiled Swift-Code läuft direkt auf der CPU. Spürbar schneller bei komplexen Animationen, großen Datenmengen, rechenintensiven Tasks.
Hardware-ZugriffCamera API, Geolocation, Accelerometer vorhanden. Aber: NFC, Bluetooth, Health-Daten, Face ID, Background Tasks fehlen oder sind stark eingeschränkt.Vollzugriff auf iOS SDK: HealthKit, ARKit, Core ML, Background Processing, Bluetooth Low Energy, NFC, Face ID/Touch ID.
Push-NotificationsAuf iOS lange Zeit gar nicht, seit iOS 16.4 mit Einschränkungen möglich. User muss PWA zum Homescreen hinzufügen UND Notifications erlauben.Vollwertige Push-Notifications mit Rich Media, Actions, Gruppierung, Background Updates. Standard iOS-Notification-System.
App Store PräsenzKeine Listung im App Store. Discovery nur über Web-Suche oder direkte Links. Kein App Store SEO.Listung im App Store mit Bewertungen, Screenshots, Beschreibung. Discovery durch App Store Suche und Featured-Platzierungen möglich.
UpdatesInstant: Deploy → Live. Kein Review-Prozess, keine Wartezeit. User haben immer die neuste Version.App Store Review (1-3 Tage), User muss Update installieren. Versionierung erforderlich, alte Versionen bleiben im Umlauf.
Development-WorkflowStandard Web-Tools: VS Code, Browser DevTools, Chrome DevTools, Hot Reload. Vertraute Umgebung für Webentwickler.Xcode (nur macOS), Swift, SwiftUI, Simulator. Neue IDE, neue Sprache, neues Ökosystem für Webentwickler.

Code-Beispiel: Offline-Handling

Der Unterschied wird bei Offline-Funktionalität konkret:

// PWA: Service Worker für Offline-Cache
self.addEventListener('fetch', (event) => {
  event.respondWith(
    caches.match(event.request)
      .then(response => {
        // Cached response oder Netzwerk-Request
        return response || fetch(event.request);
      })
      .catch(() => {
        // Fallback bei fehlender Verbindung
        return caches.match('/offline.html');
      })
  );
});

// Daten-Sync bei Rückkehr online
self.addEventListener('sync', (event) => {
  if (event.tag === 'sync-data') {
    event.waitUntil(syncDataToServer());
  }
});
// iOS Native: Core Data für Offline-Persistenz
import CoreData

class DataManager {
    let container = NSPersistentContainer(name: "MyApp")
    
    init() {
        container.loadPersistentStores { description, error in
            if let error = error {
                print("Core Data failed: \(error)")
            }
        }
    }
    
    func saveEntry(_ content: String) {
        let context = container.viewContext
        let entry = Entry(context: context)
        entry.content = content
        entry.timestamp = Date()
        
        try? context.save() // Sofort lokal gespeichert
        syncToServerWhenOnline(entry) // Background-Sync
    }
}

Bei der PWA musst du manuell Caching-Strategien definieren und Sync-Mechanismen bauen. Bei iOS ist Offline-Persistenz Teil der Platform – du nutzt einfach Core Data und das System handled Sync, Merge-Konflikte und Background-Updates.

Wann PWA ausreicht – 5 klare Szenarien

Progressive Web Apps sind keine „Notlösung für kleines Budget". Sie sind die richtige Wahl für bestimmte Projekttypen – und oft sogar die bessere.

1. Content-First-Projekte
Blog, Magazin, Dokumentation, Portfolio. Wenn deine App primär Inhalte anzeigt und keine komplexe Interaktion braucht, ist PWA ideal. Beispiel: Ein Rezept-Blog mit Suchfunktion und Offline-Zugriff auf gespeicherte Rezepte.
2. Einfache CRUD-Apps
To-Do-Listen, Notiz-Apps, Formulare, CRM-Basics. Wenn deine App hauptsächlich Daten erfasst, anzeigt und synchronisiert, ohne Hardware-Zugriff zu brauchen, reicht PWA vollkommen.
3. Schnelle MVPs (unter 4 Wochen)
Wenn du eine Idee testen willst und schnelles Feedback brauchst: PWA baust du in 1-3 Wochen, native iOS braucht 4-8 Wochen minimum. Zeit bis zum ersten User-Feedback ist entscheidend.
4. Cross-Platform mit einem Codebase
Eine PWA läuft auf iOS, Android, Desktop – überall. Ein nativer iOS-Code läuft nur auf iOS. Wenn deine Zielgruppe breiter ist, spart PWA massiv Entwicklungszeit und Wartung.
5. Budget unter 10.000 €
Eine professionelle PWA kostet 3.000-10.000 €. Eine native iOS-App startet bei 15.000 € und geht schnell Richtung 40.000 €+. Wenn Budget ein harter Constraint ist, ist PWA oft die einzige realistische Option.
Praxis-Beispiel: AffenHub als PWA
Mein Kalender-Projekt AffenHub ist eine PWA – bewusst. Es zeigt Events, synchronisiert ICS-Feeds, läuft offline mit gecachten Daten. Ich brauche keine Push-Notifications (Events sind im Kalender), keine Hardware-Features, keinen App Store. Die PWA läuft auf allen Geräten, Updates sind instant live, Wartung minimal. Für diesen Use-Case wäre eine native App Overhead ohne Mehrwert gewesen.

Wann Native iOS sinnvoll ist – Die harten Kriterien

Es gibt Projekte, bei denen PWA technisch an ihre Grenzen stößt. Nicht weil PWA „schlecht" wäre, sondern weil bestimmte Features nur in nativen Apps möglich sind.

Feature / Use CasePWA LimitierungNative iOS Vorteil
Kamera-Integration (AR, Scanner)Basic Camera API vorhanden, aber kein AR, kein Zugriff auf RAW, keine Fine-Tuning-Optionen.ARKit für Augmented Reality, AVFoundation für volle Kamera-Kontrolle, Vision Framework für ML-basierte Bilderkennung.
Background-ProzesseService Worker läuft nur bei aktiver Website-Nutzung. Keine echten Background-Tasks möglich.Background Fetch, Background Processing, Silent Push für Daten-Updates ohne App-Öffnung.
Health & Fitness-DatenKein Zugriff auf Health-App. Keine Integration mit Apple Watch, kein HealthKit.HealthKit für Herzfrequenz, Schritte, Schlaf, Ernährung. Apple Watch Companion App möglich.
Apple Pay IntegrationPayment Request API für Web-Payments vorhanden, aber limitierter Checkout-Flow.Native Apple Pay mit Face ID/Touch ID, In-App-Käufe, Subscriptions mit App Store Billing.
Offline-First (komplex)Möglich, aber aufwändig. Sync-Konflikte musst du manuell lösen, IndexedDB ist nicht trivial.Core Data mit iCloud Sync, CloudKit für Echtzeit-Synchronisation, NSPersistentCloudKitContainer für Merge-Strategien.
NFC & BluetoothKein NFC-Zugriff. Web Bluetooth API experimentell und sehr limitiert.Core NFC für Lesen/Schreiben von NFC-Tags, Core Bluetooth für BLE-Verbindungen zu Peripherals.
Face ID / Touch IDWeb Authentication API für Login, aber kein systemweiter Biometric-Zugriff.Local Authentication Framework für biometrische App-Entsperrung, Secure Enclave für Keys.

Use Cases wo Native iOS gewinnt

Fitness & Health Apps
Tracking von Workouts, Integration mit Apple Health, Apple Watch Support. Beispiel: Eine Lauf-App die Herzfrequenz, Pace und Routen aufzeichnet und mit HealthKit synchronisiert.
AR-Anwendungen
Virtual Try-On für E-Commerce, AR-Spiele, Raumplanung, Bildung. ARKit ist eine der stärksten iOS-Features und in PWA nicht nutzbar.
Komplexe Offline-Workflows
Field-Service-Apps für Techniker, Verkaufs-Apps für Außendienst. Wenn die App stundenlang offline arbeiten muss mit komplexen Daten-Sync-Strategien.
Payment-intensive Apps
Wenn In-App-Käufe, Abos oder nahtlose Payment-Flows zentral sind. Native Apple Pay ist deutlich reibungsloser als Web-Payments.
IoT & Hardware-Integration
Apps die mit Bluetooth-Geräten kommunizieren (Smartwatches, Fitness-Tracker, Home-Automation, medizinische Geräte).
Enterprise-Apps mit MDM
Apps die in Mobile Device Management integriert werden müssen, mit Unternehmens-Policies, VPN-Integration, Certificate-Based Authentication.
Häufiger Denkfehler: „Wir wollen im App Store sein" ist KEIN technisches Kriterium. Es ist ein Marketing-Wunsch. Frag dich: Bringt App Store Präsenz messbar mehr Downloads als Web-Traffic? Viele PWAs haben mehr User als vergleichbare Apps – weil sie über Google gefunden werden und keine Installation brauchen.

Die Kostenfalle – Realistische Zahlen

Die Frage „Was kostet eine App?" ist ähnlich wie „Was kostet ein Auto?" – es kommt drauf an. Aber hier sind realistische Spannen basierend auf meinen eigenen Projekten und Erfahrungen:

PhasePWANative iOS
Initial Development5.000–20.000 €
(2-6 Wochen)
15.000–80.000 €
(6-16 Wochen)
Hosting / Infrastructure10–50 €/Monat
(Shared Hosting bis Cloud)
99 €/Jahr Apple Developer
+ Backend-Kosten (ähnlich PWA)
Updates & Wartung500–2.000 €/Jahr
(Bug-Fixes, Security-Patches)
2.000–8.000 €/Jahr
(iOS-Updates, Testing, Review)
Feature-ErweiterungenIm Preis: Deploy = Live
Kein Review-Prozess
+ Review-Zeit (1-3 Tage)
+ Testing auf iOS-Versionen
Cross-Platform✅ Inklusive (iOS, Android, Desktop)❌ Nur iOS, Android separat +80-100%
Die versteckten Kosten bei Native iOS:

App Store Review: Jedes Update muss durch Review (1-3 Tage). Bei kritischen Bugfixes bedeutet das Verzögerung. Und: Reviews können abgelehnt werden – dann musst du nachbessern und erneut einreichen (weitere 1-3 Tage).

iOS-Versionierung: Jedes Jahr kommt ein neues iOS. Deine App muss getestet und angepasst werden. APIs ändern sich, UI-Guidelines ändern sich, SwiftUI bekommt Breaking Changes. Budget dafür: 1.000–3.000 € pro Jahr.

Device-Testing: iPhones haben verschiedene Screen-Größen, Notch vs. Dynamic Island, Face ID vs. Touch ID. Testing auf echten Geräten ist aufwändiger als Browser-Testing.

Xcode & macOS: Du brauchst einen Mac. Kein Windows, kein Linux. Das sind Kosten (Hardware) die bei Web-Development nicht anfallen.

Hybrid-Ansätze – Der Mittelweg?

Es gibt einen dritten Weg: Hybrid-Frameworks die Web-Code in Native-Apps wrappen.

Capacitor / Ionic
Bau eine PWA, wrappe sie mit Capacitor in eine native App. Du bekommst App Store Präsenz und Zugriff auf einige Native-APIs. Code bleibt Web (HTML/CSS/JS). Development wie PWA, Distribution wie Native.
React Native
JavaScript-Code, native Performance. Shared Code für iOS + Android. Große Community, viele Libraries. Aber: Nicht Web-Code wiederverwendbar, eigene Lernkurve.
Flutter
Dart-Sprache, eigenes UI-Framework. Sehr schnell, schöne Animationen. Cross-Platform (iOS, Android, Web). Aber: Komplett neues Ökosystem, keine Wiederverwendung von Web-Code.

Meine Erfahrung: Capacitor ist der pragmatischste Weg für Webentwickler. Du baust eine PWA (die standalone funktioniert) und kannst sie bei Bedarf in Native-Wrapper packen. React Native und Flutter sind eher „eigene Plattformen" – du baust nicht wirklich Web, sondern in einem Cross-Platform-Framework.

Entscheidungshilfe – Die 5-Fragen-Methode

Beantworte diese 5 Fragen ehrlich:

Auswertung:

0–1× Ja: Starte mit PWA. Du brauchst keine native App – sie würde nur Komplexität und Kosten hinzufügen ohne echten Mehrwert.

2–3× Ja: Prüfe Hybrid-Ansätze (Capacitor). Starte mit PWA, wrappe bei Bedarf in Native-App für App Store.

4–5× Ja: Native iOS ist sinnvoll. Die technischen Anforderungen rechtfertigen den Mehraufwand.

Der pragmatische Weg – Stufenplan

Die meisten Projekte müssen nicht mit „Native oder Web?" starten. Es gibt einen smarten Mittelweg:

Phase 1: MVP als PWA (4–8 Wochen)

Warum das smart ist: Du investierst 5.000–10.000 € statt 30.000–50.000 € und weißt nach 2 Monaten, ob die App funktioniert. Twitter, Instagram, Airbnb – alle haben so gestartet. Erst Web, dann (falls validiert) Native.

Phase 2: Hybrid-Wrapper (2–4 Wochen)

Wenn die PWA funktioniert, aber App Store Präsenz wichtig wird:

# Capacitor Setup (aus bestehender PWA)
npm install @capacitor/core @capacitor/cli
npx cap init "MyApp" "com.example.app"
npx cap add ios

# Build PWA + Sync zu iOS
npm run build
npx cap sync ios
npx cap open ios  # Öffnet Xcode

Jetzt hast du eine App im App Store – aber dein Code ist weiterhin HTML/CSS/JavaScript. Updates deployst du weiterhin als Web, nur Breaking Changes gehen durch den App Store Review.

Phase 3: Native Rewrite (nur wenn validiert)

Erst wenn die App erfolgreich ist UND native Features fehlen, überleg Native:

Progressive Migration: Du musst nicht die ganze App auf einmal umbauen. Starte mit einem Feature-Modul in Swift (z.B. Kamera-Funktion), während der Rest weiterhin Web-Code ist. Hybrid-Apps können Native-Modules einbinden.

Dein Stack – Was du als Webentwickler mitbringst

Der Wechsel von Web zu iOS ist keine Raketenwissenschaft. Vieles ist übertragbar:

Transferable Skills

JavaScript → Swift
Swift fühlt sich vertraut an: Closures wie Arrow Functions, Optionals wie Null-Checks, Protocols wie Interfaces. Syntax ist lesbar, Konzepte übertragbar.
REST APIs → URLSession
Du kennst fetch()? URLSession macht das gleiche, nur typsicher. Networking-Patterns (Interceptors, Error-Handling) sind identisch.
React State → SwiftUI @State
SwiftUI ist reaktiv wie React: @State für lokale State, @Binding für Props, @ObservedObject für globalen State. Konzept ist gleich, Syntax anders.
Git Workflows → Xcode Git
Branches, Commits, Pull Requests – alles funktioniert gleich. Xcode hat Git integriert, du kannst aber auch Terminal/CLI nutzen.

Was neu ist

// SwiftUI fühlt sich vertraut an für React-Entwickler
import SwiftUI

struct ContentView: View {
    @State private var count = 0  // wie useState()
    
    var body: some View {
        VStack {  // wie div mit flexbox
            Text("Count: \(count)")
                .font(.title)
            
            Button("Increment") {  // onClick equivalent
                count += 1
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(10)
        }
    }
}

Als Webentwickler hast du den Vorteil: Du verstehst bereits UI-Patterns, State Management, API-Integration. Swift ist nur eine neue Syntax für vertraute Konzepte.

Mein Learning aus 6 Monaten iOS-Entwicklung

Hier ein paar ehrliche Erkenntnisse aus meinem Umstieg von Web zu iOS:

Was mich überrascht hat:

Swift ist einfacher als gedacht: Ich hatte Respekt vor Swift als „komplizierter Programmiersprache". Tatsächlich ist Swift lesbarer und konsistenter als JavaScript. Typsicherheit nervt am Anfang, hilft dann aber massiv bei Refactorings.

Xcode ist gewöhnungsbedürftig: VS Code ist schneller, schlanker, flexibler. Xcode ist schwer, langsam, opinionated. Aber: SwiftUI-Previews sind genial, und der Debugger ist sehr mächtig. Man gewöhnt sich dran.

App Store Review ist nicht schlimm: Ich hatte Angst vor Rejections. Reality: Wenn du die Guidelines liest und befolgst, geht fast alles durch. Und selbst Rejections sind konstruktiv (meist fehlende Privacy-Texte oder unklare Permissions).

Performance-Unterschied ist real: Eine native App *fühlt sich* einfach besser an. Animationen sind smoother, Scrolling ist flüssiger, App-Start ist schneller. Selbst bei identischer Funktionalität.

PWA ist nicht „veraltet": Trotz iOS-Erfahrung: Für 80% meiner Projekte würde ich weiterhin PWA wählen. Native macht nur Sinn, wenn du die nativen Features wirklich brauchst.

Wo Web-Know-how hilft

Wo du umdenken musst

Fazit: Es geht nicht um besser oder schlechter

Progressive Web Apps und native iOS-Apps sind Tools für unterschiedliche Jobs. Die Frage ist nicht „Was ist besser?", sondern „Was passt zu meinem Projekt?"

„Eine PWA ist nicht ‚iOS Light' und eine native App ist nicht ‚PWA Pro'. Es sind fundamentally different approaches mit eigenen Stärken und Trade-Offs."

Meine Empfehlung:

Starte mit PWA – außer du brauchst von Tag 1 an native Features. Validiere dein Produkt mit Web-Technologien. Wenn der Market-Fit da ist und native Features fehlen, iteriere zu Hybrid oder Native.

Lern beide Welten: Als Webentwickler iOS-Basics zu können ist ein massiver Vorteil. Du kannst Kunden ehrlich beraten, welche Technologie für ihr Projekt passt. Und du bist nicht limitiert auf „nur Web".

Sei technologieagnostisch: Die beste Lösung ist die, die zum Problem passt. Nicht die, die du am besten kennst oder die gerade gehyped wird.
Vermeide Dogmatismus: „Native is dead, PWA is the future" ist genauso falsch wie „PWA is not a real app". Beide Technologien haben ihre Berechtigung. Ignoriere die Fanboys auf beiden Seiten und entscheide basierend auf technischen Anforderungen, Budget und Timeline.

Mehr zur iOS-Entwicklung findest du in meinem Artikel Xcode & SwiftUI – iOS App-Entwicklung. Für Web-Performance lies Core Web Vitals verbessern.