Os frameworks (React, Xamarin, Ionic, Flutter) vão substituir a programação Android nativa?

Ionic

Xamarin

Android

React Native

Flutter

09/08/2018

Fala comunidade DevMedia, Salve!

E aí vamos trocar uma ideia?

Sinceramente, eu acho que a primeira dúvida que surge pra quem quer programar mobile é o que escolher pra começar. Hoje tem Xamarin, Ionic, React, Flutter, enfim, aí tem o Android Studio com o Java "do outro lado" dessa trincheira - menção honrosa aqui ao Kotlin, que causou uma certa divisão na comunidade, embora more na mesma casa que o Java

O que vocês acham? Esses frameworks vão substituir a programação mobile nativa?
Estevão Dias

Estevão Dias

Curtidas 2

Melhor post

Lucas Conceição

Lucas Conceição

10/08/2018

Olá Estevão, respondendo a sua pergunta principal, eu acredito que "depende!"

A programação nativa tem muitos problemas que são facilmente resolvidos com desenvolvimento hibrido, você mesmo citou em um comentário o problema de demora de compilação, por exemplo, posso citar outros como: a estrutura do projeto fica robusta muito rápido (culpa do java rsrs); desenvolver interfaces é bem mais complicado; sem falar que se o seu objetivo é ter uma aplicação multiplataforma, terá que ter no minimo dois times de desenvolvimento e por ai vai. Todos esses problemas afetam muito projetos de pequeno e médio porte, e muitas vezes, realmente não vale a pena usar desenvolvimento nativo.

Entretanto, existem alguns projetos (sejam aqueles que precisarão utilizar muito recurso de hardware - como jogos, ou aqueles que tem um escopo muito grande e precisam de uma estrutura robusta para futuras atualizações) que precisam ter um acesso, digamos, "mais direto" aos recursos do dispositivo, e isto fica um pouco mais complicado utilizando Framework's, que geralmente, utilizam de webviews que funcionam de intermediário ao S.O. e por isso há uma certa perda de desempenho e etc.

É interessante frisar que há casos e casos, eu acredito que há momentos de escolher nativo e ha momentos para híbridos, pelo menos essa é a visão que eu tenho. Resumindo, eu acho que esta é uma discussão muito complexa cuja a resposta é muito mais pessoal do que outra coisa, existem muitos fatores a serem levados em conta e ambas as metodologias de desenvolvimento tem seus pontos fortes e fracos, não acho que uma possa substituir a outra, por isso acredito que, como em tudo na computação, a resposta é "depende!" kkkkk

Abraços.
GOSTEI 11

Mais Respostas

Gladstone Matos

Gladstone Matos

09/08/2018

fala Estevao

Na série sobre android (https://www.devmedia.com.br/android-developer/) o usuário Saulo comentou que o Flutter, nova iniciativa do Google, seria o futuro da programaçao mobile;

achei a opiniao interessante.... o q voce acha man?
GOSTEI 0
Estevão Dias

Estevão Dias

09/08/2018

Fala Tone, tudo certinho?

Se é o futuro eu não sei, mas que é uma boa resposta da Google ao que vem sendo feito em matéria de programação mobile nativa fora do Objective-C/Swift e Java/Kotlin isso é.

A grande sacada do Flutter é trazer para o aplicativo os componentes de interface, aumentando a performance porque para renderizar um botão, texto, imagem, etc, o app não precisará ir até o SO e pedir para ele fazer isso. Lembrando que esse vai e volta para fazer coisas triviais é um dos principais criadores de gargalos em outras soluções que não as "nativas oficiais" ou híbridas.

Outra coisa bacana no Flutter é que ele possui o Material Design e o Cuppertino, um tema para iOS, dentro dele. Ou seja, roda com a cara do sistema operacional onde está sendo executado e o controle disso fica na mão do desenvolvedor.

Além disso o Flutter tem um montão de componentes de tela, meio chatos de fazer na mão, prontinhos para usar :D

Mas assim, a principal vantagem que eu vejo no Flutter é o processo de desenvolvimento. No Android Studio, quando eu tenho que mudar alguma coisa no app eu tenho que recompilar o meu código, esperar o aplicativo ser fechado no emulador e reaberto,... demora. Mesmo quando essa alteração é pequena, acaba-se perdendo um certo tempo não só pelo que citei anteriormente, mas também executando todos os passos novamente até se chegar na tela onde eu peguei o erro. Com o Flutter isso não existe porque ele tem "live reload", ou "hot reload", mudou o código o app não fecha e a alteração tá lá como mágica, coisa que já era possível no desenvolvimento com JavaScript para Android/iOS e que me causa certa inveja kkkkkkkkkkkkkkk

Bom é isso. Maaaaaaaaaas, como tudo não pode ser flores, você precisa sacar de Dart pra entrar no Flutter, uma linguagem da Google, me parece, e que muita gente por aí ainda nem ouviu falar.
GOSTEI 4
Gladstone Matos

Gladstone Matos

09/08/2018

fala Estevão bom dia

sensacional a explicação obrigado!
Mas vc sabe dizer o react nativa tem o live reload ou por enquanto isso é um recurso 'exclusivo' do flutter?

Porque poxa, pensa só... entre programar com JavaScript e ter que usar uma noooovaaaa linguagem (dart) putz... +1 man risos?

abs
GOSTEI 1
Gladstone Matos

Gladstone Matos

09/08/2018

fala Lucas adorei o ponto de vista;

Realmente depende.... è complicado né, pois existe uma briga de interesses de fabricantes, cada um puxando para o seu lado....

De toda forma, me *parece* que a técnica do WebView foi uma solução multiplataforma 'temporária'... React Native e o Flutter me parecem tecnologias com mais chance de prevalecer em um contexto multiplataforma.... q acham?

E o xamarin, morreu? ;@

abracos
GOSTEI 1
Estevão Dias

Estevão Dias

09/08/2018

Também acho que o webview seja algo temporário. HTML/CSS/JS é muito bom na web, muito performático, código nativo também tem o seu lugar, mas quando você precisa passar de um lado para o outro, como é comum fazermos no desenvolvimento híbrido, surgem os gargalos. Mesmo no desenvolvimento híbrido, uma das formas de deixar o aplicativo mais rápido é evitar ao máximo passar da fronteira aplicativo x so, pelo menos essa é a solução para a maioria dos problemas de gargalo.

Por isso também acredito que o React Native, Flutter e outros sejam soluções melhores que aquelas baseadas em webview.
GOSTEI 1
Pwcodigo

Pwcodigo

09/08/2018

O framework Quasar não entraria nessa seleção ?
Segue o link -> https://quasar-framework.org/
Vir nos comentários que ele é muito bom para se trabalhar com Vue.js
No meu caso por exemplo ainda vou testar, após fazer isso, faço uma publicação no fórum contando a experiência.
GOSTEI 2
Pwcodigo

Pwcodigo

09/08/2018

Fala Tone, tudo certinho?

Se é o futuro eu não sei, mas que é uma boa resposta da Google ao que vem sendo feito em matéria de programação mobile nativa fora do Objective-C/Swift e Java/Kotlin isso é.

A grande sacada do Flutter é trazer para o aplicativo os componentes de interface, aumentando a performance porque para renderizar um botão, texto, imagem, etc, o app não precisará ir até o SO e pedir para ele fazer isso. Lembrando que esse vai e volta para fazer coisas triviais é um dos principais criadores de gargalos em outras soluções que não as "nativas oficiais" ou híbridas.

Outra coisa bacana no Flutter é que ele possui o Material Design e o Cuppertino, um tema para iOS, dentro dele. Ou seja, roda com a cara do sistema operacional onde está sendo executado e o controle disso fica na mão do desenvolvedor.

Além disso o Flutter tem um montão de componentes de tela, meio chatos de fazer na mão, prontinhos para usar :D

Mas assim, a principal vantagem que eu vejo no Flutter é o processo de desenvolvimento. No Android Studio, quando eu tenho que mudar alguma coisa no app eu tenho que recompilar o meu código, esperar o aplicativo ser fechado no emulador e reaberto,... demora. Mesmo quando essa alteração é pequena, acaba-se perdendo um certo tempo não só pelo que citei anteriormente, mas também executando todos os passos novamente até se chegar na tela onde eu peguei o erro. Com o Flutter isso não existe porque ele tem "live reload", ou "hot reload", mudou o código o app não fecha e a alteração tá lá como mágica, coisa que já era possível no desenvolvimento com JavaScript para Android/iOS e que me causa certa inveja kkkkkkkkkkkkkkk

Bom é isso. Maaaaaaaaaas, como tudo não pode ser flores, você precisa sacar de Dart pra entrar no Flutter, uma linguagem da Google, me parece, e que muita gente por aí ainda nem ouviu falar.



Primeira vez que escuto falar de Dart.
GOSTEI 0
Pwcodigo

Pwcodigo

09/08/2018

Aproveitando a deixa, vai ter curso sobre flutter na Devmedia ?
GOSTEI 0
Lucas Conceição

Lucas Conceição

09/08/2018

Gladstone, entendi seu ponto de vista, e concordo com você e com o Estevão, webviews são de certa forma ineficientes, a vantagem é que são de fácil implementação. Com certeza os novos frameworks que geram "códigos nativos" vão ter maior visibilidade no mercado de desenvolvimento hibrido.

Ainda não tive muito tempo para estudar React Native, mesmo ele estando "na boca do povo", então não posso opinar quanto a ele, já o Flutter, estudei sobre ele os últimos dias (incentivado pelas discussões aqui da DevMedia rsrs) e bem, achei a ideia incrível, excelente, porém, ele usa a linguagem Dart, como já mencionado aqui, uma aposta da google pra substituir o JS (parece brincadeira né), eu fiz alguns testes na própria plataforma da Dart e achei uma linguagem menos eficiente que o JS, meio lenta e um pouco confusa, não sei bem, talvez seja só uma má primeira impressão. Bem, depois disso parando pra pensar no assunto, cheguei a conclusão que não seria bom investir agora em Flutter, visto que ainda está na Beta, e tipo, aprender um linguagem pra uma tecnologia que pode ou não vingar, é meio que um tiro no escuro, por enquanto vou tentar focar meus estudos no que já está mais consolidado.

E quanto a Xamarin, ainda acho uma sacada muito boa da microsoft, mas tenho a impressão que a comunidade não pegou bacana ainda, não sei o pq, talvez pela certa dificuldade dele comparado ao uso do Cordova (ambos vem disponível no Visual Studio 2017). O Xamarin é bem complexo, comecei a estuda-lo há um tempo, mas eu esbarrei em algumas dificuldades técnicas e acabei deixando em standby, em algum momento tento focar novamente.
GOSTEI 2
Gladstone Matos

Gladstone Matos

09/08/2018

O framework Quasar não entraria nessa seleção ?
Segue o link -> https://quasar-framework.org/
Vir nos comentários que ele é muito bom para se trabalhar com Vue.js
No meu caso por exemplo ainda vou testar, após fazer isso, faço uma publicação no fórum contando a experiência.


bom dia Pablo td bem?

Nao conhecia o Quasar... Voce chegou a testar, é legal?
abracos
GOSTEI 0
Gladstone Matos

Gladstone Matos

09/08/2018

Gladstone, entendi seu ponto de vista, e concordo com você e com o Estevão, webviews são de certa forma ineficientes, a vantagem é que são de fácil implementação. Com certeza os novos frameworks que geram "códigos nativos" vão ter maior visibilidade no mercado de desenvolvimento hibrido...


fala Lucas bom dia!

Obrigado por compartilhar a experiencia com o Flutter! Esse lance de ter que aprender outra linguagem é que desanima risos.... Mas legal que voce deu os primeiros passos; O Estevao tambem deu uma olhada por aqui e teve meio que a mesma impressao que voce; A tecnologia promete, mas essa coisa de 'forcar' o Dart é que complica; Vamos torcer para o Google adotar o JavaScript (Google tah parecendo a microsoft dos anos 90 risos);

O Xamarin a gente chegou a testar bastante uma epoca aqui no escritorio e o que mais pegou para a gente foram os travamentos durante o tempo de desenvolvimento... Mas isso foi em 2017, provavelmente a tecnologia deve ter evoluido e tal - ou nao risos;

vlw galera, abracos
GOSTEI 1
Fernando Gaspar

Fernando Gaspar

09/08/2018

No meu ponto de vista, o desenvolvimento hibrido para mobile é mais em vantajoso e segue em alta.
Digo isso por alguns motivos:
1- Ter que aprender a tecnologia Java para desenvolver um único aplicativo.
2- A vantagem da multiplataforma no caso dos APPs Híbridos
3- Mercado de trabalho e oportunidades, geralmente quem desenvolve um APP quer distribui-los em todas as plataformas disponíveis, financeiramente falando uma empresa ou alguma pessoal que queira desenvolver algo. Vai optar pelo menor custo de investimento, que também vejo mais vantagem nos híbridos.

Claro que os Apps Nativos tem suas vantagens, porem colocando na balança acredito que os Framework para desenvolvimento mobile valem mais apena.

Abraços.
GOSTEI 2
Fernando Gaspar

Fernando Gaspar

09/08/2018

Abraços.


Forte abraço.. rs
GOSTEI 0
Diego Silva

Diego Silva

09/08/2018

Olá Estevão, tudo bem?

Então a resposta pra sua pergunta acho que dependerá de alguns fatores:

Por exemplo, um deles é o quão popular o desenvolvimento híbrido das aplicações ficará. Hoje, muitos desenvolvedores estão utilizando ionic, react native, entre outras alternativas como solução para suas implementações no ambientem mobile. Isso se deve muito a uma maior "facilidade" do uso desses recursos, que na sua maioria exigem apenas o conhecimento de HTML, CSS e JavaScript.

Outro fator que eu destacaria, seria a questão do desempenho das aplicações. Algumas aplicações mais simples não precisam ser tão avançadas nessa questão performática, o que é um incentivo ao uso do desenvolvimento híbrido. Porém aplicações mais robustas vão ser mais rígidas nesse quesito da performance, e nesse ponto aqui o desenvolvimento nativo.

Também acho que a manutenção de tais aplicações fala muito alto. O fato de um código pode ser corrigido num lugar só ao invés de ser corrigido em vários outros é uma vantagem a se considerar. No "lado nativo" se não me engano o Xamarin faz um pouco disso (não o conheço totalmente). E aqui temos uma vantagem para o desenvolvimento híbrido, a manutenção do código.

Na minha opinião, quando a questão da performance ficar mais aproximada (ao ponto de ser imperceptível), acho que nesse momento, o nativo vai começar a sair um pouco de cena e dará lugar de vez ao híbrido.
GOSTEI 2
Gladstone Matos

Gladstone Matos

09/08/2018

Olá Estevão, tudo bem?

Então a resposta pra sua pergunta acho que dependerá de alguns fatores....



fala Diego

Você não acha que o 'hibrido', no contexto do webView, vai morrer nos próximos 2 ou 3 anos...?
abracos
GOSTEI 1
Gladstone Matos

Gladstone Matos

09/08/2018

fala Fernando

Sei lah cara, você não acha que iniciativas como Flutter, Xamarin e React native são mais interessantes - do ponto de vista da tecnologia, não da linguagem... - do que o Ionic por exemplo? No contexto de vc não precisar do webview e tal...

fala ae rs
GOSTEI 0
Diego Silva

Diego Silva

09/08/2018

Olá Gladstone, tudo bem?

Então, acho que "morrer" é uma palavra muito forte. Vou citar o Ionic como um exemplo. Na minha opinião é uma framework que continua em alta (mesmo com tantos "concorrentes") e não acho que o mesmo irá deixar de ser usado em pouco tempo. Ele é usado em conjunto com o Angular e o TypeScript, o que particularmente acho um atrativo para o desenvolvimento com Ionic. Acredito que o Ionic tem se mostrado bastante útil na sua proposta.

E gosto de ressaltar a vantagem do mesmo, que é a de que você precisar saber HTML, CSS e JavaScript (Claro que aqui incluo o Angular e o TypeScript, o superset do JavaScript). Essa vantagem é algo que chama atenção num desenvolvedor web, por exemplo. Se o indivíduo sabe que para programar com Android ele terá que aprender o Java, acho que será muito mais estimulante para ele usar recursos que ele já domina, que seriam as tecnologias que ele já usa para Web.

Pode ser que novos recursos ou novas tecnologias surjam mais daqui pra frente, mas pelo andar da carruagem acho que teremos muito ainda desse embate entre o desenvolvimento nativo com o desenvolvimento híbrido .
GOSTEI 2
Chrystian Cavalcante

Chrystian Cavalcante

09/08/2018

Olá, Devs ! Dentre esses frameworks para desenvolvimento mobile, não podemos esquecer do firemonkey , ele tem crescido muito na grande demanda por desenvolvimento de aplicativos mobile para diferentes dispositivos e sistemas operacionais.

O desenvolvimento de aplicativos nativos sempre foi defendido como sendo a melhor opção para se extrair o melhor da experiência visual e gráfica do usuário. Em tese, nós desenvolvedores teríamos melhores condições de extrair o máximo de cada sistema operacional. Criando aplicação especificamente para um sistema nativo e por meio de sua SDK própria, é possível oferecer uma melhor experiência de usuário e na minha opinião mais segura também.

O desenvolvimento multiplataforma tem a grande vantagem de diminuir os custos e o tempo de desenvolvimento, e com a utilização de frameworks avançados como o firemonkey, é possível obter uma experiência de usuário muito boa. Agora tudo depende realmente do tipo de projeto, acho que tem espaço para todos.

Abs,
GOSTEI 0
Pwcodigo

Pwcodigo

09/08/2018

Ainda não !! Quando eu testar posto aqui.
To em processo desse curso https://www.devmedia.com.br/exemplo/api-rest-react-mobile-aplicacao-completa-gotour/78
quando eu finalizar quero criar um APP usando a api que aprende nesse curso.
GOSTEI 0
Lucas Vargas

Lucas Vargas

09/08/2018

Cara, perguntei isso ao Jorel em algum tópico aqui na página e ele me fez umas sugestões na qual uma delas era o caminho das PWA e sinceramente após ler várias artigos a respeito, acho q PWA é o caminho! Ao menos pra mim, sou fullstack e único desenvolvedor na empresa (aqui é uma confecção de roupas e não uma fábrica de software) o que provavelmente não vale o investimento em equipes dedicadas a uma plataforma mobile. Uma url e acessamos de onde quisermos em qualquer dispositivo.
GOSTEI 0
Alan Melo

Alan Melo

09/08/2018

Fala comunidade DevMedia, Salve!

E aí vamos trocar uma ideia?

Sinceramente, eu acho que a primeira dúvida que surge pra quem quer programar mobile é o que escolher pra começar. Hoje tem Xamarin, Ionic, React, Flutter, enfim, aí tem o Android Studio com o Java "do outro lado" dessa trincheira - menção honrosa aqui ao Kotlin, que causou uma certa divisão na comunidade, embora more na mesma casa que o Java

O que vocês acham? Esses frameworks vão substituir a programação mobile nativa?


Sim, Já estão substituindo. Desenvolver um aplicativo multiplataforma, além de economia financeira, possui-se a facilidade para dar manutenção no código fonte. A grande sacada para desenvolvimento web, mobile e desktop são os frameworks.
GOSTEI 1
Bruno Nogueira

Bruno Nogueira

09/08/2018

Nos sistemas atuais é bem dificil imaginar que o Flutter consiga substituir as linguagens nativas (até porque ele depende delas pra fazer sua mágica). Mas contra os outros frameworks hybridos ele mal chegou e já passou a frente (em minha opinião). Então se continuar nesse ritmo, eu não ficaria surpreso que o Fuchsia OS tivesse suporte nativo ao Dart+Flutter, o que seria o ponto de virada do jogo xD
GOSTEI 0
POSTAR