Um Pouco Sobre Complexidade de Código

Volta e meia eu vejo em algumas redes algumas pessoas desenvolvedoras falando sobre, use isso, não use tal, e dizendo que devs juniors já deviam saber disso ou daquilo, porém normalmente isso tem relação a funções extendidas de javascript, python, etc.. mas poucos se atentam a uma questão que pode ser bem crítica, que é a complexidade do código gerado usando essas funções, e nesse artigo gostaria apenas de mostrar exemplos do que são e de pequenas implementações de algoritmos e diversos momentos de complexidade, a notação usada será a Big O
Espero que gostem 🙂

Primeiramente, o que é Big O?

Na ciência da computação, a notação Big O é uma notação matemática que descreve o comportamento limitante de uma função quando o argumento tende a um valor específico ou ao infinito. É membro de uma família maior de notações conhecida como notação Landau, notação Bachmann–Landau, ou notação assintótica.

A notação Big O é usada para classificar algoritmos de acordo com seu tempo de execução ou requisitos de espaço, conforme a entrada de dados aumenta.

Continue reading →

Firebase Databases Indexes

Realtime Database

Na Realtime Database do Firebase, os índices (indexes) desempenham um papel importante na otimização das consultas. Quando você executa uma consulta em sua base de dados, os índices ajudam a melhorar a eficiência da busca, permitindo que o Firebase recupere os dados de forma mais rápida.

Os índices na Realtime Database do Firebase são um mecanismo que permite que o Firebase armazene os dados de forma mais eficiente, facilitando a consulta e a recuperação dos dados.

Os índices são criados para campos específicos em um documento. Quando um índice é criado, o Firebase armazena uma lista de todos os valores possíveis para esse campo. Essa lista é organizada de forma ordenada, o que facilita a consulta dos dados.

Por exemplo, imagine que você tenha um documento no banco de dados com os seguintes dados:

Continue reading →

Google Developer Experts

Um Pouco Sobre o Programa Google Developer Experts

O Programa GDE (Google Developer Experts) é uma iniciativa do Google que reconhece e premia desenvolvedores experientes e especialistas em tecnologias específicas do ecossistema Google. Esses especialistas são selecionados com base em seu conhecimento profundo e contribuições significativas para a comunidade de desenvolvedores.

Os GDEs são profissionais altamente qualificados em áreas como desenvolvimento de software, design de interface do usuário, análise de dados, machine learning, internet das coisas (IoT) e muito mais. Eles demonstram habilidades excepcionais e um compromisso notável em compartilhar seu conhecimento e experiência com outros desenvolvedores.

Continue reading →

Um pouco sobre o IONIC framework

O Ionic é um framework de código aberto para o desenvolvimento de aplicativos móveis híbridos e progressivos(PWA). Ele permite criar aplicativos para várias plataformas, como iOS, Android e web, usando tecnologias web como HTML, CSS e JavaScript.

O IONIC utiliza o Capacitor como base para acessar os recursos nativos dos dispositivos, como câmera, GPS, contatos, etc. Além disso, o IONIC usa o TypeScript e o Angular para prover uma solução de mais alto nível em termos de código e arquitetura. O IONIC também possui uma interface de linha de comando (CLI) que facilita a criação, o gerenciamento e o teste dos aplicativos.

Principais recursos e benefícios do Ionic:

  1. Desenvolvimento multiplataforma: Com o Ionic, é possível criar aplicativos para várias plataformas, como iOS, Android e web, a partir de um único código-base. Isso economiza tempo e esforço, evitando a necessidade de desenvolver aplicativos separados para cada plataforma.
  2. Componentes estilizados: O Ionic possui uma biblioteca extensa de componentes de interface de usuário pré-construídos, como botões, listas, menus, abas, sliders e muito mais. Esses componentes são estilizados e prontos para uso, permitindo criar interfaces de usuário atraentes e consistentes em seus aplicativos.
  3. Facilidade de uso: O Ionic é projetado para ser fácil de usar, especialmente para desenvolvedores web que estão familiarizados com tecnologias como HTML, CSS e JavaScript. Ele utiliza conceitos familiares, como a criação de páginas e o uso de componentes, facilitando a transição para o desenvolvimento de aplicativos móveis.
  4. Integração com Angular: O Ionic é construído em cima do Angular, o que significa que você pode aproveitar os recursos poderosos do Angular para criar aplicativos mais robustos. Isso inclui recursos como gerenciamento de estado, injeção de dependência e a capacidade de criar componentes reutilizáveis.
  5. Acesso a recursos nativos: Com o Ionic, é possível acessar recursos nativos do dispositivo, como câmera, GPS, armazenamento local e notificações push, usando plugins específicos do Ionic ou do Capacitor (uma biblioteca de abstração para acessar recursos nativos).
  6. Comunidade e ecossistema: O Ionic possui uma comunidade ativa e um ecossistema robusto de plugins, temas e bibliotecas adicionais. Isso significa que você pode encontrar suporte, recursos adicionais e soluções para desafios comuns ao desenvolver aplicativos com o Ionic.
Continue reading →

Desenvolvimento Móvel Nativo vs Híbrido

Desenvolvimento móvel nativo e desenvolvimento móvel híbrido são duas formas de criar aplicativos para dispositivos móveis, como smartphones e tablets. Cada uma tem suas vantagens e desvantagens, dependendo do objetivo, do público-alvo e do orçamento do projeto.

Um aplicativo nativo é aquele que é desenvolvido especificamente para uma plataforma ou sistema operacional, como Android ou iOS. Isso significa que ele usa a linguagem de programação, as ferramentas e os recursos nativos da plataforma, como a interface gráfica, os sensores, a câmera, o GPS, etc. Um aplicativo nativo pode oferecer uma melhor experiência de usuário, um maior desempenho e uma maior integração com o dispositivo.

No entanto, um aplicativo nativo também tem algumas desvantagens. Ele requer mais tempo e custo de desenvolvimento, pois é preciso criar um código diferente para cada plataforma. Além disso, ele depende da aprovação das lojas de aplicativos, como a Google Play ou a App Store, para ser distribuído e atualizado. E ele pode ter problemas de compatibilidade com diferentes versões ou modelos de dispositivos.

Continue reading →

macOS vs Windows vs Linux no Desenvolvimento Web

Desenvolver um aplicativo web é uma tarefa que pode ser realizada em diferentes sistemas operacionais, como macOs, Windows e Linux. Cada um desses sistemas tem suas vantagens e desvantagens, dependendo das preferências e necessidades do desenvolvedor. Neste texto, vamos comparar alguns aspectos importantes entre eles.

macOS

O macOS é o sistema operacional da Apple, que roda nos computadores Mac. Ele é conhecido por seu design elegante, sua performance estável e sua integração com outros produtos da marca, como iPhone e iPad. Alguns dos benefícios de usar o macOs para desenvolver um aplicativo web são:

Continue reading →

O que é o Firebase?

Ou, tudo o que você gostaria de saber sobre o Firebase mas tinha medo de perguntar.

Uma das principais características do Firebase é a sua integração perfeita com outros produtos do Google Cloud, o que oferece escalabilidade e confiabilidade aos aplicativos. Ele oferece uma ampla gama de recursos que abrangem várias áreas-chave do desenvolvimento de aplicativos, incluindo autenticação de usuários, armazenamento de dados em tempo real, hospedagem, mensagens em nuvem, testes e muito mais.

O Firebase oferece uma solução completa para lidar com a autenticação de usuários, permitindo que os desenvolvedores implementem facilmente recursos de login com várias opções, como e-mail/senha, autenticação social (Google, Facebook, Twitter, etc.) e autenticação de telefone.

Além disso, o Firebase inclui o Realtime Database, um banco de dados em tempo real baseado em nuvem, que permite armazenar e sincronizar dados em tempo real entre os clientes e o servidor. Essa funcionalidade é ideal para aplicativos colaborativos ou aplicativos que requerem atualizações em tempo real, como chat em tempo real, jogos multiplayer e muito mais.

Continue reading →

Firebase Web – Zero to Hero parte 4

Bootstrap + Authentication

Authentication parte 3

Continuando o layout, adicionando o Bootstrap


Bootstrap, não acho que seja uma questão de gostar ou não gostar, muito antes pelo contrário

E por isso vamos instalar o bootstrap no nosso projeto, e para isso vamos usar a lib ngx-bootstrap, o comando agora é um pouco diferente, como o ngx-bootstrap provém schematics, isso é, ele atualiza o projeto aonde é necessário para seu funcionamento, no caso dele no package.json e no angular.json

Para maiores informações sobre schematics visite https://angular.io/guide/schematics-for-libraries

Bem, vamos nessa, no console digite: ng add ngx-bootstrap

Continue reading →

Firebase Web – Zero to Hero parte 3

HTML 5+ Firebase Authentication
HTML 5+ Firebase Authentication

Authentication parte 2

Arrumando o layout


Vamos arrumar o layout, afinal, temos que deixar bonito 🤩

Primeiro, quero colocar um background na tela de auth, porém somente na tela de auth.
Mas como se é um component, e o background para ficar bom precisa ser estilizado no body?

Primeiro preciso de um background, adicionei um a pasta assets/images, pasta images essa que eu criei.
projects/principal/src/assets/images/auth-background.png

auth-background.png
auth-background.png
Continue reading →