Desenvolver App Android a partir de um sistema web já existente

Bom, pessoal… Eu tenho um trabalho a ser feito e queria saber qual a melhor forma. Eu possuo algum conhecimento em desenvolvimento web com ASP.NET MVC e C#, e também com Java, JSF e JPA. Recentemente foi-me passada uma tarefa, fazer um sistema de gestão e controle de gastos na construção civil. Porém, esse sistema tem que rodar na web e ter um aplicativo android.

Andei pesquisando e vi algo sobre Web API, e achei a ideia interessante. Então me veio as seguintes dúvidas:

  1. Qual seria a melhor forma de fazer?
  2. Usar ASP.NET MVC e C# ou Java e companhia?
  3. Deveria fazer uma Web API?
  4. Poderia fazer primeiro o sistema web e somente depois fazer o app pra android?

Alguém com mais experiência pode me ajudar?

vamos la

o aplicativo pode ser apenas um browser que acessa o site em ‘modo’ mobile.

entretanto se a ideia é ter tanto um site quanto uma aplicação nativa, uma ideia é fazer o site a partir de uma interface REST ( o q simplifica muito o teu trabalho, pois vc ao inves de retornar coisas q serão renderizadas em um html, sera renderizado em um json ) e então vc tem duas opções

  1. fazer a parte web em javascript que consome essa mesma API ( pense em React/Redux )
  2. usar o pattern MVP ( model-view-presenter ) que vai renderizar ORA um json, ORA a pagina html conforme o uso de acordo com algum criterio. essa forma é razoavelmente comum no mundo .Net exemplo

GET /sistema/relatorio.html # retorna o relatorio web

GET /sistema/relatorio.json # retorna um json que a app android vai contruir um relatorio no celular do cara

tem vantagens e desvantagens cada abordagem. com certeza existem outras opções.

se eu pudesse escolher, eu pensaria no primeiro, aqui tem um tutorial

e vc ainda tem o React native

porém eu conheço esse mundo de leve, escute outras opiniões antes de tomar uma decisão.

e por favor, estude REST senão vc vai acabar criando uma api sobre http que pode ser bem dificil de ser util, ainda mais se vc pensar em “TELAS” e não “RECURSOS”.

uma tela vc pode fazer uma ou varias coisas. um recurso é um recurso. um usuario, uma compra, um equipamento, são todos recursos que fazem sentido no seu modelo de dados ( aqui valeria a pena vc estudar Domain Driven Design ). eu diria que o seu desafio seria o design da aplicação, mais do que a implementação. um design ruim te levará a retrabalho, a bugs, a dificuldades de implementar coisas, etc.

se vc conseguir trabalhar com testes unitarios, isso sera de grande ajuda pois se os testes forem complexos, pode ser que a modelagem esteja excessivamente complexa.

Muito obrigado pela ajuda, cara. Com certeza vou analisar cada dica que você deu e esperar mais respostas, para então poder definir o que seria mais prático pra mim. Mas assim, eu sempre programei mais em C#, então é completamente possível eu fazer uma API em C# e construir um app pra android em Java que poderia consumir essa API, ou a API necessariamente tem que ser em Java?

Desde já, valeuzão pela ajuda! Já serviu bastante.

amigo se a API for REST, ela pode ser feita em qq coisa, ate php.