Página 1 de 1

Como trabalhar com Smarphone

MensagemEnviado: 14 Abr 2020 17:27
por Guri
Eu queria entender e saber quais ou qual a linguagem mais apropriada para criar aplicativos para smartphone s.o. android.
Também se é necessário algum harware para interfacear com o smartphone...
Quero tentar trabalhar com esses aparelhos de forma profissional na criação de aplicativos, mas não sei por onde iniciar, nem faço idéia. :shock:

Agradeço as dicas :D

Re: Como trabalhar com Smarphone

MensagemEnviado: 14 Abr 2020 18:25
por tcpipchip
Se nao está afim de programar, usa o APP INVENTOR!

Outra opcao é o B4A e RAD STUDIO

Testei os 3, funcionam bem!

Re: Como trabalhar com Smarphone

MensagemEnviado: 14 Abr 2020 18:27
por chipselect
Hardware basicamente é o cabo usb, seu pc e o celular android. Pra depurar basta entrar no menu de configurações do Android e ativar o modo desenvolvedor, está oculto:
https://tecnoblog.net/277750/como-ativa ... o-android/

Dá até para eliminar o cabo USB e usar via conexão sem fio, mas é um pouco mais trabalhoso configurar, e nem sei se todo celular permite de forma fácil, mas será simples você usar um simulador de Android, como o próprio que vem com o Android SDK (lento) ou configurar uma VM como o Genymotion para depurar com o Android Studio, por exemplo. É bem provável que você vá criar uma penca de VMs com Android, cada qual com configurações diferentes, principalmente de tela, pra ver como sua aplicação vai se comportar em hardwares diferentes.

Em relação à linguagem para app Android, depende muito do tipo de aplicação que você queira desenvolver, pois se for jogos, sugiro usar engines gráficas, uma das mais simples de usar é a Unit3d (lingagem C#, lua, javascript... você escolhe dentre as opções que ele permite)

Se for programar aplicações nativas com relativa complexidade, o básico do Android é o próprio Android Studio com JAVA, mas pode utilizar também o Xamarin da Microsoft, o que te permite gerar aplicativo para iPhone, Android e Windows Universal (ios precisa do mac com o xcode pra compilar e etc). Tanto java quanto c# permite você chamar rotinas escritas em c/c++ também via JNI ou interop, mas não vejo muita vantagem nisso, só se for algo que exige muita performance em cálculo com muitos dados (provavelmente matrizes), como quando você for usar o OpenCV. Dá até pra programar jogos com java e C#, mas seria melhor usar um framework para jogos, como Ogre Android, ou outro para não sofrer tanto. Uma outra opção interessante talvez seja o Flutter da Google, que promete velocidade de desenvolvimento.

Pra fazer aplicações genéricas, além do Java e C#, pode usar as plataformas baseadas em Javascript também, como o IONIC, Phongap/Cordova, coisas como React Native e etc, mas eu não sou muito fã de javascript, então não gosto muito desses "frameworks", além do que volta e meia dá uma dor de barriga em um programador JS e ele vai lá e cria mais uma plataforminha em Javascript para mobile.

O bom do js é que é muito mais fácil pra gente fazer engenharia reversa do que com java ou c# quando for necessário, o ruim é que essas plataformas tendem a ser igual roupa para mulher, vai mudar a cada estação e, se você não ficar atualizando, vai ficar "fora de moda". Não estou afirmando que isso não acontece com Java e C# (xamarin), mas os dois existem desde muito tempo, evoluíram, não foi criado alternativas a eles, as chances deles serem descontinuados é bem menor que a de muitas plataforminhas em JS por aí.

Sugiro usar uma IDE boa, como o próprio Android Studio (nativo JAVA, IntelliJ IDEA, Eclipse), Visual Studio (Xamarin) ou até o Visual Studio Code, mas esse último não é muito "out of the box", mesmo assim é bem fácil.

Re: Como trabalhar com Smarphone

MensagemEnviado: 14 Abr 2020 20:37
por Red Neck Guy
Na minha opinião o caminho mais convervador é Android Studio + Java, mas já é coisa de velho nesse mundo.
O caminho da "moda" é Kotlin.
Pensando melhor, o caminho mais "conversador" é utilizar QT5 e desenvolver um pedaço em C++.
Na real, a tecnologia pouco importa,pra desenvolver nessas plataformas você precisa conhecer bem de poo, estruturas dados,callbacks,conversao de tipos,json,xml e, é bem recomendável, saber de padrões de projeto.
Você também pode ser um copyAndPaste boy e ir copiando código do starckoverlow sem entender, neste caso, recomendo utilizar Kotlin.

Re: Como trabalhar com Smarphone

MensagemEnviado: 15 Abr 2020 08:54
por dreher
Atualmente creio que as linguagens hibridas estão mais em voga. Flutter, react native ou Ionic.
Eu uso Ionic, mas infelizmente não gera nativo, o flutter e o react sim. Grandes empresas estão usando flutter atualmente, se não me engano a Nubank e iFood estão com essa tecnologia

Re: Como trabalhar com Smarphone

MensagemEnviado: 27 Abr 2020 08:52
por tronico
Utilizo Android Studio + Java e estou estudando Flutter, recomendo o Flutter.

Re: Como trabalhar com Smarphone

MensagemEnviado: 27 Abr 2020 11:07
por chipselect
Se realmente for programar regras simples e somente no celular, Flutter ou qualquer outra linguagem com framework para desenvolvimento rápido te servirá bem.

Caso vá programar sistemas completos, que também consiste em servidores, dê preferencia a plataformas de desenvolvimento que lhe permita colocar tudo em uma solução de projetos, preferencialmente na mesma linguagem, para que possa ser utilizado código compartilhado. Nesse caso, Microsoft Visual Studio possui isso pronto, mas dá pra fazer nos outros IDEs e frameworks que usam linguagens como java e javascript, com um pouco mais de esforço.

Isso porque quando programamos sistemas maiores, várias regras de negócio são comuns em vários dispositivos (servidores, desktop e mobile), e se a linguagem não permitir, você vai escrever esse código comum diversas vezes. O pior disso é a manutenção futura do código, que acaba virando um pesadelo. Uma outra alternativa é utilizar um framework de regras de negócios que suporte todas as linguagens requeridas (servidor, mobile e desktop, as que existirem).

Se lembre de que, se você estiver nessa situação, não adianta usar algo só porque está na "moda", tem que ter escalabilidade de código e ferramentas que lhe permita checar rapidamente alterações que afetem vários projetos. Infelizmente ainda não vejo uma forma fácil de fazer isso com coisas recentes como GO (servidores) e Flutter (mobile), por exemplo.

Outro ponto importante é que eu não vi tipos Decimal (ou BigDecimal do java) no Dart/Flutter, o que desqualifica ele para cálculo financeiro, mas isso não terá problemas caso você faça todos os cálculos no servidor e não no Android. O javascript até possui uma biblioteca de ponto fixo, mas ela exige um esforço maior do programador para evitar erros numéricos, devido à natureza do javascript não forçar tipagem por padrão, como é em Java ou C# (parece que só "coisa velha" sabe fazer conta financeira nativamente...).

Como o tópico é "Como trabalhar com Smartphone", e estamos falando de construção de aplicativos, a questão deveria levar em conta também o seu objetivo final, para ver se podemos ficar somente com "regras simples" ou se terá implicações como performance (jogos...) ou precisão numérica como em cálculo financeiro... só lembrando que se fizer os cálculos no servidor, daí isso também não importa muito, como acontece com aplicativos tipo do iFood e afins, pois são 100% online... basta jogar tudo que é realmente sério pro servidor.

Resumidamente, não há a "melhor linguagem" para fazer qualquer coisa, você tem que analisar o seu caso em específico, e se for direto para plataformas que "estão na moda", existe uma chande de você errar.

Re: Como trabalhar com Smarphone

MensagemEnviado: 04 Mai 2020 12:24
por Guri
Agradeço todas as dicas do ilustres e inteligentes amigos :D

Achei interessante o Flutter...vou olhar um pouco para ele e ver como me saio.

O meu objetivo no momento é criar aplicações simples para comandar um MCU, por bluetooth no momento, coisas como botões apenas.

Fico grato pela paciência em explicar sobre o assunto. :D