Skip to content

gabrielferreir/flutter-introduce

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

O quê é Flutter?

Flutter é um SDK da Google para desenvolvimento mobile multiplataforma(Android, IOS) apartir de uma unica base de código, ele foi apresentado em 2015 em um evento da linguagem Dart e tinha como objetivo renderizar de forma consistente a 120 fps. O lançamento inicial aconteceu em maio de 2017 e o lançamento da versão estavel(1.0.0) aconteceu no dia 4 de dezembro de 2018.

Por que Flutter?

  • Produtividade (Base unica de codigo, Hot reload, Widgets prontos)

  • Crie experiencias de usuarios fodas e altamente personalizadas

  • Fluidez

Galery Galery

Dart

Cogitaram o uso de muitas linguagem no inicio do desenvolvimento do Flutter, entre elas a linguagem que se destacou foi a Dart.

Dart é uma linguagem orientada a objetos, tipada e foi desenvolvida pelo Google, possui uma sintaxe que parecida com Java, Javascript. Então se você tem conhecimento em alguma dessas linguagens orientação a objetos Dart não sera um problema.

void main() {
  for (int i = 0; i < 5; i++) {
    print('hello ${i + 1}');
  }
}

O Dart ainda pode compilar para codigo nativo em AOT (Ahead Of Time) e em JIT (Just In Time).

O AOT permite que seu app seja compilado no código nativo de cada plataforma antes da execução fazendo com que o app inicie rapidamente. E o JIT torna HotReload possível, fazendo com que sua aplicação seja recompilada em tempo de execução e que mantenha o estado de desenvolvimento, e como resultado isso faz com que suas variáveis não percam o valor enquanto seu app é recarregado na fase de desenvolvimento.

HotReload

Flutter vs WebViews(Ionic/Cordova)

WebViews

As WebViews renderizam paginas web e executam o seu codigo HTML/CSS/Javascript e como o Javascript não se comunica diretamente com o codigo nativo eles passam por uma ponte(Bridge) e é essa ponte que ira se comunicar com o dominio nativo quando for necessario acessar algum dos serviços internos como por exemplo a Localização, Bluetooth e etc.

Ponte(Bridge)

Bridge

A ponte trabalha de maneira semelhante a de um WebSocket que envia e recebe informações e esse fluxo acontece de ambos os lados, enviando dados do seu codigo Javascript e recebendo dados da sua plataforma nativa.

Flutter vs React Native?

reactive-views

Com o React-native não é diferente, ele não se comunica diretamente com o dominio nativo. Mesmo que a maior parte do codigo do app seja escrito em Javascript a interface do usuario é 100% nativa.

O React Native trabalha em dois domínios diferentes o domínio nativo e o domínio do JS. E ambos os domínios são extremamente rápidos. O problema acontece quando esses lados precisam se comunicar. Quando acontece uma alteração na arvore de Widgets do seu App ele envia essas alterações para a ponte que as envia para a plataforma nativa e ela acessa os seus Widgets nativos e recria a sua interface, em casos em que são realizadas animações/transições entre esses reinos podem se comunicar ate 60 vezes por segundos o que dificulta que o app rode a 60 fps e deixe seu app com uma fluidez legal.

Como o Flutter funciona?

Flutter

O Flutter utiliza uma abordagem diferente, ele abandona a Brigde e utiliza uma linguagem compilada chamada Dart que compila em AOT (ahead of time) código nativo para múltiplas plataformas.

Ele trás para si a responsabilidade de analisar e renderizar os Widgets e envia para ponte somente o que a GPU precisa para renderizar o seus Widgets.

Comparado a outros frameworks o Flutter funciona de maneira totalmente diferente dos frameworks tradicionais para criação de aplicativos, ele funciona de maneira semelhante a de um mecanismo de jogo.

O Flutter utiliza um mecanismo chamado Skia que recebe seus Widgets e envia as informações diretamente para o canvas da plataforma e a plataforma retorna os eventos conforme necessário.

Skia

Fluter não utiliza os widgets OEM

Evolution

Os widgets OEM são os widgets nativos de cada interface. Porem isso não significa que você terá que criar seus Widgets do zero, Os Widgets de ambas as plataformas estarão disponíveis para uso somente na versão mais recente do Material Designer.

Isso significa que seus usuario mais atentos podem ter surpresas...

OEM

Biografia

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published