🤔 Qual é a melhor stack de desenvolvimento para PDV (Ponto de Venda) em ambiente desktop e mobile?
Hey, colegas! Busco sempre estar em constante evolução na minha carreira e em busca da melhor tecnologia para desenvolver soluções eficientes e escaláveis, hoje tenho a ideia de expandir meus negócios e desenvolver uma solução própria de PDVs (Ponto de Venda). Sabemos que a escolha da stack de desenvolvimento é crucial para garantir um sistema robusto e de alto desempenho.
Entre as diversas opções disponíveis no mercado, na opinião de vocês quais linguagens / ou frameworks seria uma boa ferramenta para dar início a um projeto do "zero" e manter um software ainda moderno nos dias de hoje?
PS: Essa seria uma expansão a algumas soluções (que não são PDV) que já tenho hoje em dia e funcionam 100% na web, mas existe demanda para criarmos uma solução de PDV para rodar em desktop, mobile, etc.
Para desenvolver um PDV no Brasil a melhor linguagem é Delphi/Pascal pela abrangência de utilização dos componentes Acbr. Com eles você tem impressão de notas fiscais em impressoras de vários fabricantes, comunicação com balanças de vários fabricantes, emissão de nota fiscal eletrônica (NF-e), SAT, NFC-e e tantos outros componentes para automação comercial. Quem falar em PDV em desktop e não citar Acbr está por fora do assunto. Você até pode desenvolver em outra linguagem e usar o Acbr Monitor como ponte para as funções dos componentes, mas o melhor é poder usar diretamente em Delphi/Pascal.
Acho a melhor stack pra isso seria Java para desktop e Flutter para mobile. Maaaas... se tua aplicação for muito robusta, recomendo fazer em linguagens nativas.
PS: Essa seria uma expansão a algumas soluções (que não são PDV) que já tenho hoje em dia e funcionam 100% na web, mas existe demanda para criarmos uma solução de PDV para rodar em desktop, mobile, etc.
Se já roda na Web, você pode transformar em PWA, vai rodar de forma híbrida em todas as plataformas. Assim você ganha um fôlego para trabalhar nativamente nas suas aplicações. Para windows: C# Para Android: Kotlin Para Apple: Swift Para Linux: Java/C++
É isso, deixei meus 10 centavos de conhecimento.
Embroa eu saiba que algumas pessoas não gostam de uma respossta mais aberta, é só o que eu posso fazer com responsabilidade. E eu dei várias dicas não só sosbre isso, não para indicar algo, mas o que não deve fazer para decidir: https://www.tabnews.com.br/maniero/faq-do-programador-perdidao. Até daria para ajudar mais se tivesse todos os dados necessários.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).
Opinião pessoal
Fuja de híbridos. Muitos irão te recomendar electron, react native, flutter....
Não caia na armadilha do desenvolvimento rápido. Híbrido não serve para aplicações profissionais.
Stack que eu escolheria
Android -> Nativo com kotlin
Apple -> Nativo com swift
PC -> Windows Forms OU .NET MAUI se precisar de multiplataforma
Ja trabalhei no desenvolvimento de um produto CB4 para o mercado brasileiro usando fullstack js (Nest.js + React + React Native) e achei péssimo....
O que eu faria hoje:
Usaria pro backend alguma framework fullstack que me permitisse flexibilidade ao passo que eu pudesse escalar para microserviços, que eu pudesse fazer o admin rápido e que me permitisse maior poder de gerenciamwnto na web.
As opções que eu olharia hoje são;
-
Spring framework: Normalmente vc tem que integrar com outras porcarias de terceiro em java, fácil de contratar dev. Teria dor de cabeça em fazer um admin genérico.
-
Phoenix/Elixir: Um rails like que escala, mas é um porre de botar em nuvem (erlamg) porém se vc consegue , ganha uns superpoderes do erlang... Tem integração fácil de feature realtime e elixir é funcional. Talvez contratar dev pra isso seja mais caro pq é incomum.
-
Django: Teria os problemas de performance do python, mas teria um admin de graça desde que vc n tentasse fazer muita firula, fácil de gerur e de converter em microserviço no futyro se vc organizar as apps.
Pra banco, n pensa duas vezea e vai de postgres
Num mundo com htmx eu nem me daria ao trabalho de fazer app wrb frontend , so perder tempo e se estressar atoa.
Para mobile depende do que vc precisa....
se precisa fazer rápido, que as features sejam 1x1 android e IOS, vai de flutter
se IOS n for uma prioridade vai de kotlin
fique longe de:
React, Vue, Swelte, Rust
Pra desktop vc usa o flutter ou faz um webapp usando electron e foda-se.
Tauri pode ser usado, mas sinceramente melhor adiantar
se quiser pagar de louco pode trocar o backend por go, o tradeoff é twr que fazer o admin do zero, isso pode onerar muito tempo
No final depende do seu budget + deadline + conhecimenti