Al compilar una aplicación, ¿debo compilar primero la API y extraer los servicios de la API?

Construir su aplicación usando un primer enfoque API es ciertamente viable. Pero estoy descubriendo que el enfoque exactamente opuesto, primero el producto, funciona mejor para mí para una aplicación móvil que estoy construyendo.

Comencé imaginando los diversos flujos de trabajo y las vistas correspondientes que necesitaré. He esbozado las maquetas de dispositivos móviles para las vistas en Balsamiq. De las maquetas, luego codifiqué vistas JSX usando React-Native (w / Redux para la gestión de estado). Los componentes React-Native van en contra de los datos y el esquema JSON que he incluido en Firebase.

Durante esta fase de creación de prototipos, mi API de soporte no es más que el respaldo JSON que necesito para admitir las vistas y los flujos de trabajo correspondientes de la aplicación. Puedo leer y escribir en Firebase según sea necesario con muy poca resistencia mental (por ejemplo, sin preocuparme por el diseño de la base de datos).

Una vez que tenga todo en funcionamiento, preveo usar mi esquema de Firebase como requisitos de diseño para la API a prueba de balas que necesitaré construir. No he decidido si construiré la API usando una API Rails 5 contra PostrgresSQL en Heroku, Python contra Google CloudSQL o C # contra SQL Server en Azure.

Hasta ahora, la belleza de este enfoque es que no tenía que adivinar cuáles serían las firmas de método de mi API a priori. He hecho el primer enfoque de API en el pasado e invariablemente terminó siendo sobre-diseñado con chapado en oro gratuito. Con el enfoque de primer producto , sabré exactamente lo que la API debe proporcionar, ni más ni menos.

Creo que diseñar y completar las llamadas básicas que sabes que necesitarás para que el cliente funcione correctamente es bueno. Pero después de haber trabajado en numerosas aplicaciones grandes de este tipo, a menudo hay un cambio de ida y vuelta. En otras palabras, primero decidimos que una determinada llamada debería devolver ciertos datos, pero al implementar el front end, sería conveniente y más eficiente si incluimos otros datos o los formamos de una manera diferente. La implementación del backend no debe establecerse en piedra.

Sí, si la aplicación es solo un back-end para hacer solicitudes CRUD. Si estás haciendo una aplicación de pila completa. Sugiero construir el front end primero porque genera inspiración y te da pistas sobre cómo se verá la aplicación después de completarse.