r/reactnative • u/bananaSells • 1d ago
Help Website to app
Hello,
I have a website that I would like to also have it has an app on android and Apple. The catch is I need the app to work offline and have documents downloaded offline, modifications to be made, saved and shipped once back online.
Claude was suggesting to have the website in the app but it won’t perform properly I think.
But I think it’s better to have a native app since there is all the offline accessibility features that need to be integrated. I am trying to create a full native app but it’s pretty much ai copying the whole website. Also I would like to have to modify all from one location.
(Code is currently python, xml, JavaScript, html/ces, SQL for database)
Is this feasible and what should I look out for? Should I look in to flutter instead?
EDIT: It is pretty much an ERP system and the features needed offline are: checklists, time punches, plans and documents. For all of them we also need to be able to edit and resubmit offline, where it saves on the phone and pushes it once back online.
Thank you!
2
u/HindungiGandalf 15h ago
Short answer: yes, Flutter can do this. I've done similar work in Flutter.
In the end, two things mattered: how you store the data, and how you show it on screen. Offline, you can save it in whatever structure you want, JSON or SQLite.
So store it the same way everywhere, and put your effort into the engine that converts the stored data into the screen. That's the same in Flutter and on the web. Whatever language you use, that converting engine is the most important part. In my case the app and the web use the same note format, and each side just draws it its own way.
For sync, I kept it simple. Before saving to the server, the app checks the server's last-modified time. If the note was changed on the web in the meantime, it doesn't overwrite it. It keeps the phone's version as a local draft and tells the user. Same when a save fails because there's no connection: the edit stays as a draft, and when you open the note again you can restore it and save. Nothing gets dropped silently.
1
u/parseltongues 1d ago
You could maybe use a wrapper like CapacitorJS. I would have to look at your code as further to help.
1
u/kokerali 23h ago
Do you mean editing the downloaded files themselves (PDFs, spreadsheets, etc.), or changing form/database records? I'd pin down one real document type and the exact edits that must work offline before choosing RN, Flutter or a wrapper. Viewing a cached document isn't the same acceptance check as editing it. Also, does “modify all from one location” mean one UI codebase or one set of business rules? Those are two separate reuse goals.
1
u/locomain 21h ago
I have a whole emulator wrapped in capacitor. I am currently changing technology because I was pushing the limit. But something like capacitor is most definitely good enough for most use cases.
It is however always better to have a native experience I think. If it’s worth the rewrite you can use RN as base for your native and web app. Expect to do some specifics for web to make it feel nice though because RN is not very optimized for web.
1
u/razor_whim 20h ago
the offline edit sync is the hard part not the UI. Pick React Native and start with MMKV for storage plus SQLite for your records right now. Capacitor breaks here because webview local storage gets wiped too easily on iOS during system cleanup.
1
u/AdamHincu_ 11h ago
the framework is honestly the least important decision here, the sync model is. treat every offline action as an event in a local queue (sqlite) with a device time and an id, and replay them when you're back online. time punches especially should be append-only so you never have to merge them. decide early what happens when two people edit the same checklist offline. if you're already in js land, expo + expo-sqlite + expo-file-system covers it fine, i wouldn't switch to flutter just for offline.
1
u/olenami 8h ago
if you are interested - I am testing my solution to move from web mobile to native mobile [swift/kotlin] and searching for 3 people - here the post, https://www.reddit.com/r/Base44/comments/1xdnwvd/comment/19rnoze6hv0rl/
if this is someting for you, I am happy to include you.
2
u/charliesbot 1d ago
You should consider PWA first, that will be the cheapest solution to convert a website into an offline app
If you list what you need in detail is easier to define the right tool. But if the only need is "offline" the PWAs cover the problem pretty well
Android have amazing support for them. And iOS 26 added good offline features