¿Qué técnicas debo usar para desarrollar una aplicación web basada en servidor que eventualmente planeo portar como una aplicación de Android e iOS?

Lo que faltan las otras respuestas es que debe escribir su sitio web como una aplicación web.

Estoy de acuerdo en que debe usar una API RESTful (o si necesita tiempo real, algo como Socket.IO o Firebase). Gran parte de la lógica empresarial debería vivir dentro de los servidores API.

Entonces, el sitio web real debería ser una aplicación web que consulta las API REST. Mire el enfoque JAMstack [1]. Lo que no quiere explícitamente es servir HTML basado en plantillas desde un servidor (la forma en que funcionan normalmente los sitios PHP como WordPress). Debido a que cualquier lógica en PHP u otro lenguaje solo de servidor que se use para construir su sitio será inútil en su aplicación cliente.

Por lo tanto, su sitio web debe basarse en Angular, React, Vue.js, Aurelia, Mithril o marcos similares de “cliente inteligente”. Si elige Angular o React, tiene una ruta particularmente fácil a native: NativeScript o React Native, respectivamente. Pero cualquiera de estos también funcionaría con Córdoba.

Pero incluso si desea crear aplicaciones completamente nativas (su jefe lo requiere, o le gusta gastar más dinero del que necesita), hacer que el sitio existente funcione más como una aplicación es fundamental para asegurarse de que su API esté bien diseñada para funcionar con un aplicación

Notas al pie

[1] JavaScript, API y marcado

El back-end es su elección: base de datos SQL o no SQL y cualquier lenguaje de back-end. (Elegiría PHP, porque estoy familiarizado con él, pero es posible que esté más familiarizado con otro).

¿Interfaz? Si está haciendo back-end / front-end, el teléfono ejecutará un navegador y el lenguaje de programación front-end será JavaScript. Eso parece ser lo que estás diciendo, entonces el “front-end en línea” es un navegador web: la elección del usuario.

Si está escribiendo una aplicación para conectarse al sitio web, React Native producirá código tanto para Android como para iPhone. Esa es una aplicación en el teléfono, no una aplicación en el servidor. (Incluso si escribe el front-end como una aplicación, se ejecutará en el navegador web, así es como funciona la web).

Te sugiero que uses Firebase de Google. Importe el SDK de Fiebase en su proyecto web, iOS y Andoird y revise la documentación sobre cómo usarlo.

El mejor servicio de back-end que existe en este momento.

Back-end -PHP, MySql (servidor)

Frontal -XML (Android)

Protocolo-HTTP

Library-volley (facilita tu trabajo para hacer una llamada de red en Android). google / volley

Probablemente desee crear una API RESTful que las aplicaciones móviles puedan reutilizar. Esta API se puede construir en una variedad de tecnologías (python, php, ruby, c #, etc.) y tendrá que elegir en función de lo que mejor sabe y le permite ser productivo.

Los IDE también variarán según el idioma elegido.