Dúvida - Desenvolver aplicação mobile multi-plataforma (APP)

Ionic

Xamarin

API

Banco de Dados

FireMonkey

02/08/2019

Boa noite,
Estou querendo desenvolver um aplicativo multi-plataforma (Android e IOS). Projeto para longo prazo (mais de 12 meses), pois como é complexo, investirei em conhecimento antes. Já tenho conhecimento básico em lógica de programação, já pratiquei o básico em SQL, Delphi, Oracle (tenho noção de if, else, then, boolean, true, false, string, etc)...trabalho com TI a mais de 10 anos... então acredito no meu potencial...Porém terei que fazer cursos voltados para aplicação mobile, para conseguir implementar meu projeto sem precisar contratar terceiros. Vai ser um aplicativo bem complexo no meu ponto de vista. Em resumo o cliente tem que se cadastrar, vai visualizar produtos de empresas separados por categorias (mais de uma empresa) e poder fazer seus pedidos. As empresas que anunciam seus produtos, vão ter que ter gerenciamento dos pedidos realizados e dos produtos. E eu, terei que ter acesso as vendas dessas empresas, pois serei remunerado sobre esses pedidos feitos no app. Por ser 3 tipos de credenciais diferentes, com acessos à recursos diferentes, telas diferentes, pensei em separar em 3 aplicativos, pois poderia ser muito pesado tudo em um único.
Um app então será para clientes fazerem o seu cadastro, efetuarem seus pedidos, obter históricos, etc. Outro será para gestão de pedidos e cadastros de produtos pelas empresas credenciadas. E o outro, seria gerencial para mim (dono do app), pois haverá comissão para mim pelos pedidos efetuados, terei que gerenciar isso.
Recursos complexos que gostaria de implementar:
App de compra dos clientes:
- Cadastro com possibilidade de conectar com Facebook (Acredito que existe API para isso)
- Confirmação de cadastro através de código gerado automaticamente (enviado por SMS ou email)
- Utilização de mapa com posição atual (coordenadas) e se possível cálculo de distância. Ser possível mostrar empresas perto da pessoa por exemplo (Acredito que existe API para isso também)
- Pagamento online (deve haver varias API (opções) nesse sentido)
App para gestão (empresas vendedoras):
Possibilidade de enviar fotos (cadastro de produtos)
Possibilidade de salvar/enviar email com planilha ou relatório
Agora meus questionamentos:
1) Com esses recursos mais complexos, qual linguagem melhor me atenderia(Xamarin, FireMonkey, Ionic, Unity, entre outros)? Se possível mencionar a questão de disponibilidade de materiais e cursos, pontos fortes e fracos referente a recursos e API’s (compatibilidade).
2) Será necessário um banco de dados externo para armazenar tudo isso (será na nuvem e deverá ser sincronizado). Qual banco poderia ser utilizado? Ouvi falar muito bem do Firebase.
3) Bem futuramente (caso aplicativo der certo), poderá ser necessário implantar o gerenciamento da empresa também em sistema Web. As decisões anteriores terá interferência? Digo, já devo observar a escolha da linguagem do app e o banco de dados, visando essa futura implantação? Se sim, qual recomendação?

Como pode ver, preciso de um ponta pé inicial para começar os estudos (pois estudar meses ou anos uma linguagem para depois não conseguir aplicar tais recursos devido a não ter eles, seria perda de tempo e dinheiro). Para isso conto com a ajuda dos mais experientes, vocês. Obrigado desde já!
Paulo Ricardo

Paulo Ricardo

Curtidas 0

Respostas

Thiago

Thiago

02/08/2019

Oi Paulo, tudo bem?

Mano... Legal seu projeto. Realmente envolve uma certa complexidade, como vc comentou.

1. Te sugiro ler o lean startup, do Eric Ries. Talvez não seja o modelo do seu negócio, mas é um livro muito bom para começar a ter uma visão de prototipação rápida, economia de recursos e validação do próprio negócio.

2. Depois disso, acredito que seria bem legal se vc estruturasse seu projeto de acordo com a necessidade de um dos seus usuário, a exemplo o usuário final. Isso vai te dar um foco e ajudará na tomada de decisão do que fazer primeiro. Uma possibilidade é, em vez de criar 3 apps, criar 1 app para o usuário final e 2 dashboards web (uma para admin e outra para o cliente empresa), com isso vc pode ganhar em termos de tempo de desenvolvimento e na esperar para lançamento nas lojas.

3. Por fim, chegando à parte de desenvolvimento:
- se vc tiver um roteiro bem elaborado,
- se vc tiver um revisto a questão de esforço mínimo para por a mão no projeto
- vc vai precisar usar/ter (pelo menos de)
- criar um app no facebook
- criar uma conta firebase para login com sms e pode usar o firestore e storage deste serviço
- criar uma api de pagamento (sua mesmo) com a linguagem q for mais acessível para ti, e com o
getaway de pagamento (IUGU, EBANX, Pag Serguro, Pagg Certo, Mercado Pago... vc tem um leque de opções para isso)
- criar seus apps com o framework que escolher, dai... dentre os atuais e de fácil aprendizado, vc poderia focar no Ionic, React Native ou Flutter.

GOSTEI 0
Battiston

Battiston

02/08/2019

Cara.. com relação ao SMS..
Olá, temos uma solução bem bacana para envio de SMS, integrando via API ou acessando direto na web. Temos um valor bem agressivo para envio de SMS. Fique a vontade para conhecer a DisparoPro, acesse:
https://pro.disparopro.com.br/integracao-via-api/
GOSTEI 0
POSTAR