Hi everyone. First, quick disclosure: I am part of the WP-AppKit project.
To answer the original question, I’d say that there 2 possibilies to create a mobile app connected to WordPress :
- You can encapsulate your responsive website in a container distributed as an app
- You can create an app that will interact with WordPress through an API
I wouldn’t recommend the first one as some features such as offline management can’t be achieved. However sometimes you have to use it as reproducing some functionalities that WordPress plugins provide can be very hard (think of e-commerce cart for example).
Now regarding the API based solution, there’s many ways to do that:
- You can use the WordPress REST API or any other REST API including one you build yourself
- You can use native technologies (such as Swift or Java) for the app itself or create hybrid apps (ie. written in JavaScript). Famous solutions are ReactJS, AngularJS… Then you’ll encapsulate your web app in a container using Cordova to be able to access native device functions and distribute your app in app stores
A quick word about WP-AppKit:
- We chose to create a dedicated REST API part because the WP REST API didn’t exist and we kept it because mobile apps needs specific endpoints. For sure, at some point in the future we will use the WP REST API.
- We don’t use mainstream JS frameworks such as ReactJS. We propose a specific theme approach (close to the WordPress one but in JavaScript). The idea is to ease the pain of creating JS based apps.
- We rely on Cordova and are compatible with PhoneGap Build, a cloud compilation service
- WP-AppKit is free and open source
- You can discover its features (notably offline mode) here: https://uncategorized-creations.com/features/
At last, whatever solution you choose please remember that building JavaScript apps has a steep learning curve (I know that many people are saying otherwise, but believe me, it has a steep learning curve). Also remember that building apps (hybrid or not) is a very different (and exciting) world (think animations for example). So you have to decide if you want a packaged solution (ie. an app builder) or a technical base to start with and you may tweak later.
I wish you the best for your app ??