N00b Questions Regarding Dev Environment Setup (EXISTING Ionic Project)


I’ve had quite a ride trying to get an app out the door, from terrible Indian developers taking years to Apple changing its TOS and dumping my app days before its final release. Still on Google Play though. It’s been nothing but bad luck getting this app out, which is why I’ve decided to put in the time and do it myself.

The existing Ionic project needs to be updated to run as a PWA or mobile web app. Someone from Ionic privately told me I should upgrade the whole thing to Capacitor which is probably the way to go, ultimately. However, I don’t think I have the experience to make this change in a reasonable amount of time. I think for this version of the app/PWA/Mobile Website, I should just replace the Cordova calls with calls to the browser.

For instance: Location services. Currently calls Cordova to get the GPS Lat/Lon from the hardware natively. In a browser, this won’t work obviously, so I need to make a call to the browser instead for Lat/Lon location services.

Do you think it’s a good idea to just replace the Cordova calls with calls to the browser instead of going all the way to Capacitor, given I need to get this out the door ASAP and I’m super green to this type of development?

The existing app is an Ionic 3 app. Angular 4. You can also see a list of the Cordova Plugins used below in this information I extracted from package.json. The app is using Firebase and Elasticsearch too. Quite a few complicated dependencies on the back end. I fear I could break a LOT of this by trying to go to Capacitor or even a newer version of Ionic. What do you think?

@ionic-native/core”: “^3.10.3”,
@angular/core”: “4.0.2”,
“cordova-android”: “~6.3.0”,
“cordova-browser”: “5.0.4”,
“cordova-ios”: “4.5.3”,
“cordova-plugin-camera”: “^2.4.1”,
“cordova-plugin-compat”: “^1.2.0”,
“cordova-plugin-console”: “^1.1.0”,
“cordova-plugin-device”: “^1.1.7”,
“cordova-plugin-fcm”: “^2.1.2”,
“cordova-plugin-geolocation”: “^2.4.3”,
“cordova-plugin-inapppurchase”: “^1.2.0”,
“cordova-plugin-ionic-keyboard”: “2.1.3”,
“cordova-plugin-splashscreen”: “^4.1.0”,
“cordova-plugin-statusbar”: “^2.4.2”,
“cordova-plugin-whitelist”: “^1.3.3”,
“twilio”: “^3.4.0”,
“rxjs”: “5.1.1”,
“ionic-angular”: “^3.1.1”,
“elasticsearch”: “^13.0.1”,
“firebase”: “^4.1.3”,
“geofire”: “^4.1.2”,

Setting Up My Development Environment

As luck would have it, the logic board fried on my MacBook too (I’m not having good luck with this project). But, on the upside, I have a new, virgin, empty MacBook I’d like to set up properly to do this work.

1) Is it possible to set up 2 different version of Ionic/Capacitor/Angular/Node/EVERYTHING and switch back and forth between them on the same partition on the same machine? Or… is everything global? I have always been confused about this. I installed everything wrong last time and had to use sudo a lot. Using Homebrew this time to hopefully get it all right.

2) In order to recreate this exact development environment I had, do I just use "npm install [everything in the package.json file]? Or… rather do the same thing through Homebrew?

3) Looking at my Ionic project directory, is it possible to determine what node.js version I need to use? I’m at least trying to set that up right now.

**NOTE: I may add several more questions here regarding setting up this development environment once a good strategy is decided upon by listening to your answers. **

Thank you for any help!:slightly_smiling_face:

Was my question not clear?

Trying to find out how to set up the development environment for an existing, legacy app so I can get to work on it.

Or… do I upgrade?

If so, how do you do both options?