Taking a cloud-native web app to mobile introduces a whole new set of architectural challenges.
Today, I wrapped my React SPA into a native iOS app using Capacitor. The goal was to maintain a single codebase communicating with my AWS Lambda backend while gaining access to native device features.
The Auth Fix: Deep Links
Authentication is notoriously tricky when moving from Web to Mobile. I use AWS Cognito for OAuth (Google Sign-In). On mobile, when the browser finishes the auth flow, it needs to know how to return to the app.
I had to configure the iOS App.xcworkspace to accept custom URL schemes and update my Cognito App Client to accept duromoney://localhost as a valid callback URL. Without this, users log in and get stuck staring at a blank Safari screen.
The FinOps Dilemma: SMS vs. Push
Right now, my AI agent sends "High Spending" alerts via SMS using Amazon SNS. SMS costs money. Push notifications don't.
I wrote the backend logic to register the device token and push alerts via APNs (Apple Push Notification service) alongside the SMS so I could compare latency.
The Roadblock
I hit a hard wall. Xcode refused to build, throwing:
Personal development teams do not support the Push Notifications capability.
AWS lets you build multi-region serverless architectures for pennies. Apple won't even let you send a local test Push Notification to your own device unless you pay the $99/year Apple Developer Program fee.
The Fix for Now: I'm keeping the SMS fallback active. Once the paid Apple Developer account is active, I will extract the .p8 Auth Key, Team ID, and Bundle ID to create an APNS_SANDBOX Platform Application in AWS SNS and finally bypass the SMS costs.
Cloud providers give you the tools. Mobile platforms sell you the keys!

Top comments (0)