Skip to main content

· One min read

19/02/2022 - Aula 2 de Android (Presencial)

O Professor Paulo começa a aula as 08:25h, atrasado.

Vamos continuar a atividade da aula passada, que é um aplicativo de cadastro de alunos.

Depois de 1h30, nosso aplicativo tem 10 componentes, 1 app bar, 1 toolbar, 5 text inputs e 2 spinners. O professor para a aula para fazer um intervalo, durou 20 minutos.

Depois do intervalo, trocamos os 2 spinner por um material spinner, além de criar um menu com botões de limpar e salvar.

A aula voltou a tarde as 13:50, continuando a atividade de cadastro de alunos.

Fizemos a inclusão de dois actions para poder salvar e limpar os campos além de um campo com formatação de CPF.

A aula terminou às 17h, uma hora antes.

· 2 min read

12/02/2022 - Aula 1 de Android (Presencial)

O Professor Paulo começa a aula se apresentando, falando sobre sua carreira e depois explicando o que é Android.

A aula começou falando sobre as versões do Android, quando surgiu e as principais alterações do Android no decorrer do tempo.

Vamos começar falando sobre Activity

Activity

A Activity é a classe mais importante do Android, ela é a classe que representa uma tela. Ou em outras palavras, é o "back-end" do Android.

O ciclo de vida de uma Activity é:

  • onCreate: é chamada quando a Activity é criada.
  • onStart: é chamada quando a Activity é mostrada.
  • onResume: é chamada quando a Activity é mostrada.
  • onPause: é chamada quando a Activity é escondida.
  • onStop: é chamada quando a Activity é escondida.
  • onDestroy: é chamada quando a Activity é destruída.

Intent é uma classe que representa uma ação que será executada. A Intent é utilizada para enviar informações entre Activities.

  • Inicia uma Activity
  • Inicia um Service
  • Fornecer um Broadcast

Abrimos o Android Studio e criamos um aplicativo, com isso o professor mostra os principais arquivos, onde fica as dependências, o build.gradle, o AndroidManifest.xml, o MainActivity.java e o AndroidManifest.xml.

Vimos tambem a pate de layout, que é o que faz a interface gráfica do nosso aplicativo. O layout é um arquivo XML que define o comportamento da nossa Activity. Os principais componentes do layout são:

  • TextView: TextView é uma classe que representa um texto.
  • Button: Button é uma classe que representa um botão.
  • EditText: EditText é uma classe que representa um campo de texto.

E temos os componentes LinearLayout, que é uma classe que representa um layout linear, que é um layout que organiza os componentes em linhas. VerticalLayout, que é uma classe que representa um layout vertical, que é um layout que organiza os componentes em colunas. ConstraintLayout/RelativeLayout, que é uma classe que representa um layout que utiliza as restrições de layout.

Isso é o que foi visto pela manha.

Após o almoço, o professor continuou falando sobre os layouts e construindo exemplos de ConstraintLayout, LinearLayout e VerticalLayout.

Fizemos um exemplo, adicionando campos de texto, botões e realizando a navegação entre telas.

As 17h a aula termina.

· 3 min read

13/11/2021 - Aula 4 de Backend com Java (Presencial)

Após algumas semanas sem aula por problemas de saude e disponibilidade da sala, a aula voltou hoje, sendo a ultima do ano e da materia.

O Professor Djonathan começa a aula falando sobre padrão de organização de um projeto. Comparando alguns tipos. Ele falou que posteriormente vai passar um material sobre isso.

Essa parte de organização vai ser utilizada para o trabalho, além de uma forma de documentar a nossa API utilizando OpenAPI. O professor foi atualizando o projeto que temos, do qual vamos ter que seguir para entregar o trabalho.

Isso foi o que foi visto pela manha. Após o almoço, começamos a ver sobre APIs REST e os seus verbos HTTP, vimos sobre HATEOAS e sobre o uso de Swagger.

Voltamos as aulas presenciais, pois o decreto que permitia não está mais em vigor. O Professor Djonathan começa a aula fazendo uma revisão da segunda aula.

  • Princípio da Responsbilidade Única
    • Classes e metodos sempre coesos, que ele ~e responsavel por ele mesmo.
  • Princípio Aberto-Fechado
    • Uma forma melhor de escrever, que garante a sustentabilidade do código.
  • Padrões

Depois de revisar, a aula continuou com Spring, utilizando o projeto unipar-2021-aula-2 para implementar alguns recursos do Spring, conforme o professor ia fazendo ele ia explicando a utilização dos componentes.

  • @Component
  • @AutoWired
  • Injeção de dependência por Setter
  • Contrutor

Tudo isso visto até o momento foi o modulo 1, agora vamos começar o modulo 2, que é a utilização de APIs.

Como levar o monte Fuji do Japão para a India? Monte Fuji R: Uma foto já faz você levar para a India.

Livro: How Do You Fight a Horse-Sized Duck?: Secrets to Succeeding at Interview Mind Games and Getting the Job You Want

API

API é um conjunto de definições e protocolos usado no desenvolvimento e na integração de software de aplicações.

REST

O estilo de Transferência de Estado Representacional (REST) é uma abstração dos elementos arquiteturais de um sistema de distribuição de hipermídia.

Estruturas como URIs (Coleções vs Recursos vs Hierarquias)

  • /planos
  • /planos/1
  • /planos/1/dependentes/
  • /planos/1/dependentes/4

Obs: sempre utilizar substantivos e nunca verbos

  • /planos/cancelar (errado)

Padrões para URIs

  • Mantenha tudo em caixa baixa
  • Substitua espaços com hífens ou underscore

Representação

  • Deve ser consistentes (a mesma requisição deve retornar a mesma resposta caso o recurso não tenha sido modificado)
  • O conteúdo pode ser negociado

JSON

https://www.json.org/json-pt.html

Exemplo de JSON

{
"nome": "João da Silva",
"idade": "20",
"cidade": "São Paulo",
"estado": "SP",
"pais": "Brasil"
}

Exemplo 2

{
"cliente": 1,
"data": "2020-10-10",
"itens": [
{
"id": 1,
"nome": "Item 1",
"quantidade": 10,
"valor": 100.00
},
{
"id": 2,
"nome": "Item 2",
"quantidade": 20,
"valor": 200.00
}
]
}

Com isso terminamos a aula pela parte da manhã, vamos para o almoço e depois a aula continuou com a criação de um novo projeto, para ser a nossa API.

Esse projeto é um sistema para aulas online, começamos montando a parte da disciplina, criando os metodos GET para retornas todos os dados, POST, para criar uma nova disciplina, PUT para atualizar os dados da disciplina por inteiro e PATCHE para atualizar somente um dado, e por fim, DELETE para deletar a disciplina.

Verbos HTTP

Além de ver alguns dos verbos HTTPS, foi falado sobre os códigos de status HTTP.

Status HTTP

Com isso foi finalizado a aula.

Trabalho

As informações do trabalho estão na pagina da disciplina.
Link

· 3 min read

09/10/2021 - Aula 3 de Backend com Java (Presencial)

Voltamos as aulas presenciais, pois o decreto que permitia não está mais em vigor. O Professor Djonathan começa a aula fazendo uma revisão da segunda aula.

  • Princípio da Responsbilidade Única
    • Classes e metodos sempre coesos, que ele ~e responsavel por ele mesmo.
  • Princípio Aberto-Fechado
    • Uma forma melhor de escrever, que garante a sustentabilidade do código.
  • Padrões

Depois de revisar, a aula continuou com Spring, utilizando o projeto unipar-2021-aula-2 para implementar alguns recursos do Spring, conforme o professor ia fazendo ele ia explicando a utilização dos componentes.

  • @Component
  • @AutoWired
  • Injeção de dependência por Setter
  • Contrutor

Tudo isso visto até o momento foi o modulo 1, agora vamos começar o modulo 2, que é a utilização de APIs.

Como levar o monte Fuji do Japão para a India? Monte Fuji R: Uma foto já faz você levar para a India.

Livro: How Do You Fight a Horse-Sized Duck?: Secrets to Succeeding at Interview Mind Games and Getting the Job You Want

API

API é um conjunto de definições e protocolos usado no desenvolvimento e na integração de software de aplicações.

REST

O estilo de Transferência de Estado Representacional (REST) é uma abstração dos elementos arquiteturais de um sistema de distribuição de hipermídia.

Estruturas como URIs (Coleções vs Recursos vs Hierarquias)

  • /planos
  • /planos/1
  • /planos/1/dependentes/
  • /planos/1/dependentes/4

Obs: sempre utilizar substantivos e nunca verbos

  • /planos/cancelar (errado)

Padrões para URIs

  • Mantenha tudo em caixa baixa
  • Substitua espaços com hífens ou underscore

Representação

  • Deve ser consistentes (a mesma requisição deve retornar a mesma resposta caso o recurso não tenha sido modificado)
  • O conteúdo pode ser negociado

JSON

https://www.json.org/json-pt.html

Exemplo de JSON

{
"nome": "João da Silva",
"idade": "20",
"cidade": "São Paulo",
"estado": "SP",
"pais": "Brasil"
}

Exemplo 2

{
"cliente": 1,
"data": "2020-10-10",
"itens": [
{
"id": 1,
"nome": "Item 1",
"quantidade": 10,
"valor": 100.00
},
{
"id": 2,
"nome": "Item 2",
"quantidade": 20,
"valor": 200.00
}
]
}

Com isso terminamos a aula pela parte da manhã, vamos para o almoço e depois a aula continuou com a criação de um novo projeto, para ser a nossa API.

Esse projeto é um sistema para aulas online, começamos montando a parte da disciplina, criando os metodos GET para retornas todos os dados, POST, para criar uma nova disciplina, PUT para atualizar os dados da disciplina por inteiro e PATCHE para atualizar somente um dado, e por fim, DELETE para deletar a disciplina.

Verbos HTTP

Além de ver alguns dos verbos HTTPS, foi falado sobre os códigos de status HTTP.

Status HTTP

· 2 min read

25/09/2021 - Aula 2 de Backend com Java (Remoto)

A aula hoje é remota, e atrasou um pouco por causa de alguns problema tecnicos, nada que atrapalhou a aula.

Durante a semana, o professor Djonathan passou um material complementar sobre a primeira aula. esse material está disponivel aqui. Além disso, apresentou um repositorio que vai ser utilizado para o trabalho em grupo que vai ser feito no decorrer das aulas, onde cada equipe vai implementar um item.

Seguimos com a criação de um projeto novo Spring, do qual vai ser o esqueleto do trabalho que vamos fazer. Esse projeto está no GitHub.

Professor continuou mostrando como trabalhar com o GitHub, exemplificando a utilização de Pull Request para poder enviar as alterações.

Após essa parte introdutoria, começamos com o conteudo, seguindo o material da ultima aula, que está disponivel aqui

Coesão Refere-se a ligação ou harmonia entre elementos textuais.

Acoplamento que está acoplado (ligado, conectado)

  • SOLID

Acrônimo para os Cinco Princípios de um bom Design Orientado a Objeto, cunhado por Bob Martin em [MARTIN, 2000].

  • S - Princípio da Responsabilidade Única
    Todo objeto do seu sistema deveria ter uma única responsabilidade, e todos os erviços desse objeto deveriam focar em realizar essa responsabilidade única.

  • O - Princípio do Aberto-Fechado
    Classes deveriam estar abertas para extensão e fechadas para modificação.

  • L - Princípio da Substituição de Liskov
    Subtipos devem ser substituíveis por seus tipos base.

  • I - Princípio da Segregação de Interfaces
    Muitas interfaces especializadas são melhores que uma interface de propósito geral.

  • D - Princípio da Inversão de Dependências
    Dependa de abstrações ao invés de classes concretas.

Com isso, começamos a utilizar o conceito do SOLID, e montamos um exemplo de sistemas de simulador de emprestimo. Fomos gerando as classes, e fluxos, e melhorando com o decorrer da aula. Essa atividade pode ser vista em GitHub

Professor apresentou varios padrões, ele vai depois disponibilizar um material complementar, quando estiver disponivel, coloco o link aqui.

Com isso terminamos a aula, conversamos um pouco sobre o trabalho, como vai funcionar.

No final da aula, aproveitei para conversar e compartilhar uma forma de rodar os teste utilizando GitHub Actions, e ele pediu para fazer o pull request para incluir no projeto.

E isso foi tudo na aula 2.

info

· 4 min read

11/09/2021 - Aula 1 de Backend com Java (Presencial) , Professor Geferson fez a apresentação do professor Djonathan, visto que é a primeira aula que temos com ele, sendo assim, ele tambem perguntou algo sobre nós, uma pequena apresentação para saber o nível de conhecimento do pessoal.

A aula começou utilizando o material .pdf, com a parte de Design e Orientado a Objetos.

Uma linguagem suporta um Estilo de Programação se ela provê funcionalidades que tornam conveniente (razoavelmente fácil, seguro e eficiente) utilizar esse estilo. Uma linguagem não suporta uma técnica se é necessário um esforço excepcional ou habilidade para escrever os determinados programas; nesse caso, a linguagem simplesmente habilita os programadores a utilizar a técnica.

Conceitos Chave

  • Estilo procedural
    • Decida quais procedimentos você deseja, utilize o melhor algoritmo que você possa encontrar.
  • Ocultação de Dados
    • Decida quais procedimentos você deseja, particionar o programa de forma que os dados fiquem ocultos em módulos.
  • Abstração de Dados
    • Decida quais tipos você deseja, forneça um conjunto de operações para cada tipo.

Orientação a Objetos (Conceito)

Decida quais classes você deseja; forneça um conjunto de operações para cada classe; torne as semelhanças explícitas utilizando herança.

OOP (Objetos)

Coisas (pessoas, animais, objetos), características (cor, sabor), eventos (confirmação, cancelamento), estado (pendente, confirmado), basicamente tudo que possamos chamar com um substantivo / nome próprio, incluindo objetos abstratos.

Imagem OOP

OOP (Classes)

Grupos de objetos com características muito similares, do ponto de vista técnico compõem o conjunto de tipos de uma linguagem na categoria de Tipo de Dados Abstratos. Objetos de determinada classe são denominados como instâncias.

Imagem OOP

OOP (Atributos)

Descrevem as características de um objeto, fazendo parte do arquétipo da classe. Cada instância da classe armazena os valores de seus atributos, porém atributos estáticos são compartilhados entre as instâncias.

Imagem OOP

OOP (Mensagens/Métodos)

Objetos se comunicam através de mensagens, a unidade de abstração dessas mensagens é chamada de método. Métodos abstraem uma determinada lógica ue será aplicada a uma referida instância sempre que receber uma mensagem específica. Métodos podem conter parâmetros e retornar valores ao final e sua execução.

Imagem OOP

OOP (Encapsulamento)

Ninguém deve se preocupar com a forma em que um objeto está organizado ou o quê ele sabe. Quanto menos comprometido uma classe tiver com o mundo exterior menor é a superfície de mudança que pode impactar a manutenabilidade do sistema.

Imagem OOP

Após explicar esses conceitos, começamos a mexer em um projeto, vendo os conceitos iniciais de Kotlin. Criamos uma classe e vimos como implementar algumas funções.

Com isso terminamos o que foi visto pela manha, e a aula volta as 13:30, vamos continuar o material no slides e fazer na pratica o código.

OOP (Generalização)

Refere-se a habilidade de organizar os objetos em estruturas hierárquicas.

Classes podem implementar dois tipos de Generalização:

  • Tipo: Classes diferentes compartilham a mesma interface.
  • Implementação: Onde além da interface, a implementação também é compartilhada.

OOP (Interfaces)

O conceito de Interface tem duas aplicações:

  • O conjunto de operações que compõem o contrato de uma classe com os consumidores.
  • Herança de Tipos, onde diversas classes podem compartilhar a mesma interface.

Imagem OOP

OOP (Herança)

Refere-se diretamente a Generalização de Implementação, onde classes compartilham sua implementação além da interface.

Imagem OOP

Boas Práticas de Design

  • DRY
    • Don’t Repeat Yourself! (Não se repita!)
  • YAGNI
    • You Ain’t gonna need it! (Você não vai precisar disso!)
  • KISS
    • Keep it simple, stupid. (Mantenha isso simples, idiota.)

Professor discutiu todos esses pontos durante a aula de hoje, no PDF, fomos até a pagina 19. O resto vai ficar para as proximas aulas.

info

Material complementar Máterial de apoio em PDF aula 01

· One min read

28/08/2021 - Aula 3 de Banco de dados (Presencial)

A aula demorou cerca de 20 minutos para começar, alunos queriam esperar os alunos atrasados, mas a aula tem que dar prioridade pra quem chegou na hora. Tendo isso em mente, o professor Fernando começou a aula fazendo a revisão da atividade 5.

As 09:30, é feito um intervalo, e depois começamos a aula com esses slides aqui.

Foi visto como trabalhar com domínios, transações, converter tipos, views, funções e triggers. Com isso o professor passou alguns exemplos para praticarmos.

Finalizamos a parte da manha com isso, e voltamos 13:30 com o assunto de Power BI, conteúdo que não estava previsto, e entrando no lugar de NOSQL. Utilizamos os slides que estão aqui.

A aula seguiu com o professor mostrando a ferramenta, e como fazer a utilização para gera gráficos e relatórios, como importar dados, etc.

No final, não teve nada sobre o trabalho, mas o professor vai passar durante a semana.

Trabalho

As informações do trabalho estão na pagina da disciplina.
Link

· 2 min read

14/08/2021 - Aula 2 de Banco de dados (Remoto)

A aula demorou um pouco pra começar, pois alguns alunos pensaram que seria presencial, e estão na universidade, então o professor aguardou até eles irem para algum laboratório.

O professor Fernando começou a aula revisando a atividade 2, explicando o objetivo e tirando alguma duvida que alguém possa ter ainda. Além disso, o professor fez uma revisão da aula anterior, pois ele alterou o material e adicionou novas explicações.

Comandos DDL são sempre comandos que vão mudar na estrutura das tabelas, dentre elas temos:

  • Adicionar ou Remover columns
  • Adicionar ou Remover constraints
  • Mudar valores default
  • Mudar tipos de dados da coluna
  • Renomear Colunas
  • Renomear Tabelas

Já o DML, ele manipula os dados.

A aula seguiu utilizando o material que está no link ou arquivo Guia Disciplina, lá está duas apresentações, a apresentação utilizada foi essa aqui.

Professor pediu para criamos um banco de dados novo, e rodar o seguinte SQL:

CREATE TABLE departamentos(
id_departamento INT PRIMARY KEY,
nome VARCHAR(60),
responsavel VARCHAR(60)
);

CREATE TABLE grupos(
id_grupo serial,
nome VARCHAR(60),
id_departamento INT REFERENCES departamentos
);

Depois, populamos o banco de dados com alguns INSERTS;

INSERTS
-- Informando todos os campos:
INSERT INTO departamentos VALUES (1,'Eletrônicos','Fernando');

-- Múltiplos INSERTS:
INSERT INTO departamentos VALUES
--(1,'Eletrônicos','Fernando'),
(2,'Portáteis','Fernando'),
(3,'Eletrodomésticos','Fernando');

-- Informando apenas valores obrigatórios:
INSERT INTO grupos (id_grupo, id_departamento) VALUES (1,1);

-- Tabela com campo Serial:
INSERT INTO grupos (nome, id_departamento) VALUES ('Smartphone',1);

-- A partir de dados de outra tabela:
INSERT INTO grupos (nome, id_departamento)
SELECT nome, id_departamento FROM novo_grupos WHERE id_grupo > 10;

Professor fez mais alguns exemplos, adicionando constraints para garantir a integridade do banco de dados, fazendo selects, updates e deletes.

Após a explicação, professor passou uma atividade, utilizando o mesmo grupo da aula passada, é a atividade 3.

Finalizamos a manha até esse ponto, e no período da tarde voltamos vendo a parte de selects com o material do link. Vimos os tipos de join, e como fazer um join entre tabelas, como utilizar o group by e como utilizar o order by e por fim, o limit.

Depois disso, professor passou uma atividade 4, que pode ser entregue até a próxima aula.

Professor ficou para tirar as dúvidas da atividade, e com isso finalizamos a aula de hoje.

· 3 min read

31/07/2021 - Aula 1 de Banco de dados (Remoto)

A aula começou as 08:00, com um tempo a mais para até os alunos entrarem, com isso, começou a ser feito a apresentação dos alunos de forma individual. Após isso, o professor Fernando falou sobre como vai decorrer o curso e as aulas.

O professor criou um arquivo que está disponível no link ou arquivo Guia Disciplina, nesse arquivo tem diversas informações sobre o curso, tentei uma forma elegante de imprimir o site, mas fica ruim, então tudo que for importante estou salvando aqui no site.

A aula seguiu utilizando a apresentação.

Banco de dados pode ser resumido em:

Uma coleção de dados relacionados

  • Dados: Fatos conhecidos que podem ser registrados e que possuem significado implícito.
  • A mídia pode ser usando um computador, ou uma agenda indexada, sistema de pastas organizado, planilha de excell, e assim por diante.

Desta forma, um simples texto pode ser um banco de dados. Vale lembrar que o banco de dados representa um aspecto do mundo real, geralmente chamado de mini mundo ou universo de discurso.

Para isso, o banco de dados deve ter algumas propriedades:

  • Fonte de dados
  • Tem uma relação com os dados
  • Os usuários estão constantemente interessados no conteúdo manipulados.

O que é um sistema gerenciador de banco de dados?

  • É um sistema computado que permite ao usuário acessar e manipular dados armazenados em um banco de dados.
  • Ele facilita o uso em geral:
    • Definição
    • Construção
    • Manipulação
    • Compartilhamento
  • Interação entre usuários e aplicação

Qual a diferença entre um banco de dados e um sistema de gerenciamento de banco de dados (SGBD)?

  • Banco de dados é onde armazena os dados, é o repositório das informações.
  • O SGBD é o sistema que permite acessar e manipular os dados, onde fica as restrições.

DDL - Construção e Definição

  • Create
  • Alter
  • Drop

DML - Manipulações Possíveis

  • Select
  • Update
  • Insert
  • Delete

Conceitos Gerais

  • Entidade
    • Representa um conjunto de dados
    • Representa um conceito do mundo real
      • Alunos
      • Professores
      • Matérias
  • Atributos
    • São os dados das entidades
      • Nomes
      • Salario
      • Datas
  • Relacionamento
    • Como duas entidades estão conectadas
      • Funcionário trabalha em um projeto
      • Aluno esta em uma turma
  • Modelo entidade relacionamento
    • Um modelo conceitual de alto nível para representar os dados do BD
  • Esquema de banco de dados
    • Descrição de um banco de dados
  • Diagrama de esquema
    • É a representação de um esquema de banco de dados
  • Modelo de banco de dados
    • Forma de se organizar os dados em um banco de dados

A aula seguiu com uma modelagem de banco de dados, utilizando o StarUML.

A aula tem o intervalo para meio dia, e voltamos as 13:30, continuando vendo o assunto de modelagem de banco no StarUML.

Após isso, o professor passou uma atividade e separou a turma em grupos.

Alunos

O meu grupo foi o Grupo3, e nós geramos esse modelo aqui:

Alunos Download do projeto: Grupo-03.mdj

Após falarmos do trabalho, onde cada grupo apresentou o que foi feito, o professor começou a falar sobre SQL. Começou falando sobre sua estrutura, sobre seus tipos, a estrutura.

Pelo StarUML podemos gerar o SQL, no caso esse arquivo foi gerado aqui: .SQL

Geramos as tabelas e fizemos algumas atividades na pratica já com SQL.

Isso tudo foi visto na primeira aula.

· 2 min read

26/06/2021 - Aula 4 de Angular (Remoto)

A ultima aula de Angular começa as 08:00, com o professor Jean perguntando sobre o trabalho com o pessoal, vendo se estão com dúvidas, se já começaram a fazer ou não.

Por volta das 08:25 é iniciado a apresentação do conteúdo, vai ser visto o Angular Material nesta aula. para isso vamos utilizar o projeto que está disponível já em Github.

O material que o professor utilizou foi esse aqui em .PDF.

Começamos então a atuar com a alteração de um formulário, mudando ele para utilizar os componentes que são do Angular Material, aplicando para o cliente.

Depois do professor explicar cada componente, e como utilizar ele, é solicitado para os alunos fazerem para a componente de usuário, tanto para a tela quanto para o modal.

Após validar a atividade, começamos a ver a parte de animações, como criar ela, configurar, utilizar, etc.

Professor também mostra como podemos fazer o deploy do projeto utilizando Docker, e explica como fazer esse processo utilizando o projeto atual.

Com isso terminamos o que foi visto antes do almoço.

Durante a tarde, o professor comentou sobre o trabalho, passou item a item do que tem ser feito, e aproveitou para tirar dúvidas do pessoal.

Trabalho

As informações do trabalho estão na pagina da disciplina.
Link