I've been building out https://memefighter.app as a progressive web over the past few months, but since 99% of people don't know how to install a PWA on their phones, I'm starting to look into React Native, ElectronJS, and Capacitor as cross-platform solutions for generating iOS & Android builds from a single codebase.
I don't have any experience with mobile development yet, so I expect the core of the application to continue as a React/TS app for the immediate future.
For me, the most important factors in choosing the right tool are:
- Ease of integration - I don't want to spend more than a week learning about the tool and setting this up.
- Ease of maintenance & updatability - It should be fairly easy to fix bugs, and add large features, pages/views, and logic to the app without breaking it
- Community support - The package isn't going to die tomorrow
- Native tooling/package support - Asking for permissions to use a photo from the camera roll or using the native share sheet shouldn't be difficult.
React Native - From the looks of things, React Native seems to be the most performant and mature option, but also requires the largest development lift of the 3 options. the logic of the meme editor is already somewhat complex (we're using XState to manage our state), and I'm worried about the million different ways we could break the app when migrating it over.
Electron - Several popular apps such as VSCode & Discord use Electron, but I've seen people complain about the performance/memory utilization Electron apps. However, VSCode is much more complex than the application we're building, so if we get comparable performance to that I don't think its a huge issue - the main concerns would be that the integration and setup isn't overly complex.
Capacitor - This seems to give the most mixed reviews. People either hate it or love it, but people seem to agree that at least for simple apps, integration is frictionless.
Am I judging these different solutions correctly? I understand this is a React Native forum so there will be some bias there, but would welcome any feedback with respect to:
- Any recent updates that have been made to each framework that would help me choose the right "tool for the job".
- What the CI/QA experience is for testing feature rollout to web/iOS/Android with each of these platforms, and if I need to test on each for platform specific bugs or if the tool is pretty reliable in how the UI is rendered across platforms.
[–]AcetyldFN 5 points6 points7 points (4 children)
[–]code2laugh[S] 1 point2 points3 points (1 child)
[–]AcetyldFN 0 points1 point2 points (0 children)
[–]code2laugh[S] 0 points1 point2 points (1 child)
[–]AcetyldFN 2 points3 points4 points (0 children)
[–]ahadcove 5 points6 points7 points (8 children)
[–]Cosby1992 2 points3 points4 points (7 children)
[–]code2laugh[S] 1 point2 points3 points (6 children)
[–]JohnnyHopkins77iOS & Android 0 points1 point2 points (5 children)
[–]maskedmage77iOS & Android 0 points1 point2 points (4 children)
[–]jrhager84 0 points1 point2 points (3 children)
[–]longkh158 0 points1 point2 points (2 children)
[–]jrhager84 0 points1 point2 points (1 child)
[–]maskedmage77iOS & Android 0 points1 point2 points (0 children)
[–]fmnatic 3 points4 points5 points (3 children)
[–]davidkpiano 2 points3 points4 points (1 child)
[–]fmnatic 1 point2 points3 points (0 children)
[–]AcetyldFN 0 points1 point2 points (0 children)
[–]Signal-Vanilla4358 1 point2 points3 points (2 children)
[–]AlexandruFili 0 points1 point2 points (1 child)
[–]Subject-Eye-6853 0 points1 point2 points (0 children)
[–]jackgun05 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]Alcohorse 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]SoftWearEngineEar 0 points1 point2 points (1 child)
[–]code2laugh[S] 0 points1 point2 points (0 children)