Migrate React web app to Electron - reactjs

We are considering development of a web app using ReactJS (probably, we will use npm's create-react-app feature). Also, we are thinking if it will be possible in future to easily transform the web app to a desktop application using Electron. Since we have no experience with both technologies, we like to ask about this combination, whether it is a good option, and if it is possible to turn a React web app into a desktop Electron-powered app.
I was googling any working tutorial how to build an app using both technologies but no one worked for me.
So, to sum up, is it good choice to start developing a web app with React when we would like to have the opportunity to transform it into a desktop application built with Electron? If not, are there any better technologies?

You should look into how exactly your solutions are built, instead of focusing on the technology itself. If your team builds your backend with this in mind, you can create APIs that your clients(React Web App, Electron Desktop App) can connect to.
To answer the question: No, it is not a good choice to begin development of your web app project without considering future implications of your design. Focus your time on how your backend talks to your front end.
Moreover, ReactJS is only a front end library, you can use it with Electron, Check out some GitHub Hug Repos like: Re-Electron , React-Electron-Starter, Electron-React

Related

Building a desktop admin panel for react native app

I am building a react native app with firebase auth and cloud storage, and I was just wondering if it is possible to make a dashboard for desktops to administrate the users/app? And if it does, how do I do this? Is it in the same build, or do I have to build a new "app" for adminpanel/dashboard?
This is my first time building the adminpanel/backend xD
While it's possible to build web apps with React Native, I wouldn't recommend it. The Layout of a desktop is just way too different from phones to build React Native Apps including web without constantly using Platform.OS. In your question, you even mention that you wan't the dashboard to just be available on the desktop but not on the Phone (which makes sense in my opinion). Since you seem to know a bit about React Native, it should be an easy thing for you to build the Dashboard as a different Application with React for the web only.

How do I approach multiplatform app with React

I'm just learning development and recently, I finished a MERN stack course.
Now I'm wanting to build my second Commercial App for the company where I am working.
At first, I was only considering responsive web platform but now, I can't deny the necessity of functionality on ios and Android.
Thus, I did my own research on which framework or method I will have to use to minimize my production time rather than using react web and react native separately.
It seems like Expo Web and React Native Web will be the closest solution I can think of.
I'm not sure if I'm trying to take things too easy, but if someone can enlighten me with suggestions on how to approach this dillema, that will be greatly appreciated.
In Short.
What is better? Expo Web or Native Web and best way to learn..
When using Expo, you're building the same app for iOS, Android, and Web at the same time.
Building an app with Expo CLI will provide a 100% code base across the 3 platforms. Because the Expo SDK covers most, if not, all the tools you need to build a simple application without touching native code.
Expo also offers you the possibility to eject from it, if by any chance you need to change native code.
I would suggest that you start with Expo CLI, because of how rich its SDK is and how easy it is to get started with it. And if later in time you wanna modify native code, you can eject from it.

What languages should I be good at to make an electron app?

I dived into this new subject Electron few months back. I'm a PHP developer, but after going through many articles on web I'm learning nodejs, express through online resources.
Could anyone here suggest me, what exactly I need to focus on. I'm really interested in making a Electron app with routing, CRUD, sessions etc.
Please suggest, your help will save me a lot of time
Electron itself uses HTML, CSS, and JavaScript for the interface, with Node.JS for powering the background app stuff like opening windows, and keeping the app alive. For online interactivity, it can use any proper web server you want, be it PHP powered, an NGINX static site, or Express as you mentioned, or even use none at all - being a purely offline app.

What is Ratchet for

I ran into http://maker.github.com/ratchet
As I see this is for prototyping and not actual production frontend for mobile.
Sorry for the stupid question, but is ratchet for a production website or just for pretending to have a mobile app?
Why would it be only for prototyping? There are lots of scenarios where you would want a web app that mimicks a native one in production, without ever planning to build a native version.
For starters, production time is much lower when you can use html/javascript instead of Objective C, you can develop on any platform, skip the hassle of App Store approval and most functionality for non-timecritical apps is available as a web app. If you decide on going "real app" later you can wrap your web app in Phonegap and release it through the app store.

Creating a Native iOS App for an Existing Rails App

Okay, so I'm running a Rails 3.1 app hosted on engine yard. I'd like to create a native iOS app which will run off the same database as the web app.
However, where the web app supports full CRUD, I only want to be able to do two things with the app:
Fetch data from the database [eg: MP3 Names]
Play the MP3s within the app.
Any suggestions of frameworks from anyone? :) It'd be much appreciated.
If you intend on building out the app more, I'd take a look at RestKit. It has some great stuff included to help cache data on the iphone and synch between iOS and the Rails app.
If you aren't planning on things getting more complicated than what you have described above, you may be better off using something a little more lightweight check out RestClient or LRResty

Resources