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 →

Estruturas de Dados com Java – Playlist Youtube

Essa playlist dos professores Leandro Guarino e Luiz Eduardo Guarino explica muito bem sobre estrutura de dados, não só pra Java, mas para qualquer linguagem, e tbm ensina de maneira bem didática sobre complexidade de código, com exemplo práticos e mostrando quem tem melhor e pior performance seguindo a notação Big O, para pesquisa e ordenação como busca binária, bubble sort, insert sort, entre outras coisas muito interessantes. 
Eu gostei muito, espero que gostem tbm =D

Estruturas de Dados com Java

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 →

Orientação a Objetos com Javascript e um pouquinho de C#

Nesse vídeo tento dar minha contribuição sobre o assunto Orientação a Objetos, para tal usando Javascript e C#

O objetivo desse vídeo são pessoas iniciantes.

Espero que não tenha ficado confuso, pois não é um tema tão simples.

Falei de:
– Herança
– Polimorfismo
– Encapsulamento
– Abstração