Skip to content

Instantly share code, notes, and snippets.

@HenriqueMitsuo
Last active June 10, 2020 22:54
Show Gist options
  • Save HenriqueMitsuo/4b9e8b2bba74229e5a19c99fd5537ff0 to your computer and use it in GitHub Desktop.
Save HenriqueMitsuo/4b9e8b2bba74229e5a19c99fd5537ff0 to your computer and use it in GitHub Desktop.
Revisão N1

Desenvolvimento Hibrido

  • Aplicativo hibrido = HTML, CSS, Javascript
  • Aplicativo nativo = Android(Java), IOS(Objective C, Swift), Windows
  • Recursos Nativos acessados pelo Apache Cordova
  • Phonegap e Cordova
  • Cordova: conjunto de APIS que dão acesso aos recursos nativos = camera, sensores, gps, etc...
    • Permite o desenvolvedor acessar as funções nativas de um dispositivo, através do JavaScript.

Estrutura de projeto

  • www - codigo fonte do APP (HTML/CSS/js)
  • plugins - plugins cordova (GPS, camera, etc)
  • platforms - onde os projetos nátivos gerados são criados
  • hooks - scripts adicionais para CLI
  • config.xml - arquivo de configuração das plataformas

Instalação PHONEGAP

  • NODE
  • npm install -g phonegap : instala phonegap globalmente

Elementos

  • Botão:
    • <input type="button" class="botao1" name="num1" value="0" onclick="mostraNum(0)">
  • Caixa de texto:
    • <input type="text" class="tela" name="visor" value="">
  • Import de estilo CSS
    • <link rel="stylesheet" type="text/css" href="./css/style.css">
  • Radio:
    • Propriedade name com valores iguais
    • <input type="radio" class="num1" name="opcao" value="10">
    • <input type="radio" class="num1" name="opcao" value="20">
  • Checkbox:
    • <input type="checkbox" class="num1" name="opcao-1" value="10">
    • <input type="checkbox" class="num1" name="opcao-2" value="20">

Javascript

  • Seleção de elementos
    • var txt_id = document.getElementById('id');
  • Função & Parametros
    • function(num1, num2) { ... };
  • parseFloat() & parseInt()
    • parseFloat(10);
    • parseInt(10);
  • parametro da URL
    • var id = decodeURI(getUrlVars()["id"]);
  • Checkbox
    • document.formulario.valor2.checked

JQuery

  • $(document).ready(function() { ... }) : Executa quando a página carregar
  • $('#id').click(function() { ... }) : Executa ao clicar no elemento com 'id' especificado
  • var numero = $('#id').val() : Retorna o valor do elemento selecionado

CSS

  • classe
    • .botao{ ... }
  • id
    • #botao{ ... }

MySQL Reference

  •   CREATE DATABASE phonegap;
      USE phonegap;
      CREATE TABLE aluno(
        id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
        nome VARCHAR(250) NOT NULL
      );
      INSERT INTO contato(nome,email,mensagem) VALUES('teste','teste','teste');
      UPDATE livros SET titulo='teste', ano='teste', autor='teste', genero='teste' WHERE id=1;
      DELETE FROM contato WHERE id=1;

PHP Reference

  • conexao.php

    •   <?php
          header("Access-Control-Allow-Origin:*");
          $con=mysqli_connect("localhost","root","","aulamenu")or die("Não pode conectar");
        ?>
  • cadastro.php

    • <?php
        include "conexao.php";
        if(isset($_POST['name'])){
          $name=$_POST['name'];
          $email=$_POST['email'];
          $message=$_POST['message'];		
          $q=mysqli_query($con,"INSERT INTO contato(nome,email,mensagem) VALUES('$name','$email','$message')");
          if($q){
            echo 'success';
          }
          else{
            echo 'error';
          }
        }
      ?>

JAVASCRIPT Reference

  • insert
    •   $(document).ready(function() {
        $("#insert").click(function() {
          var titulo = $("#titulo").val();
          var ano = $("#ano").val();
          var autor = $("#autor").val();
          var genero= $("#genero").val();
          var dataString = "titulo=" + titulo + "&ano=" + ano + "&autor=" + autor + "&genero=" + genero +"&insert=";
            if ($.trim(titulo).length > 0 & $.trim(ano).length > 0 & $.trim(autor).length > 0) {
                $.ajax({
                    type: "POST",
                    url: "http://localhost/atividadeLivro/insert.php",
                    data: dataString,
                    crossDomain: true,
                    cache: false,
                    beforeSend: function() {
                        $("#insert").val('Connectando ao banco...');
                    },
                    success: function(data) {
                        if (data == "success") {
                            alert("Dados Inseridos com sucesso");
                            $("#insert").val('Cadastrar');
                            location.reload(true);
                        } else if (data == "error") {
                            alert("error");
                        }
                    }
                });
            }
            return false;
          });
      })
  • delete
    •   $("#delete").click(function() {
            var id = $("#id").val();
            var dataString = "id="+id+"&delete="
            $.ajax({
                type: "GET",
                url: "http://localhost/atividadeLivro/delete.php",
                data: dataString,
                crossDomain: true,
                cache: false,
                beforeSend: function() {
                    $("#delete").val('Connectando ao banco...');
                },
                success: function(data) {
                    if (data == "success") {
                        alert("Dados Excluidos com sucesso");
                        $("#delete").val('Excluir Cadastro');
                        window.location.href = "readjson.html";
                    } else if (data == "error") {
                        alert("error");
                    }
                }
            });
        })
  • read
    • $(document).ready(function() {
        var url = "http://localhost/atividadeLivro/read.php";
            $.getJSON(url, function(result) {
                console.log(result);
                $.each(result, function(i, field) {
                    var id = field.id;
                    var titulo = field.titulo;
                    var ano = field.ano;
                    var autor = field.autor;
                    var genero = field.genero;
                    $("#listview").append("<a class='item' href='form.html?id=" + id + "&title=" + titulo + "&ano=" + ano + "&autor=" + autor + "&genero="+genero+"'><span class='item-note'><h2>" + ano + "</h2></span>" + titulo + "<p>" + autor + "  Genero:" + genero +"</p></a>");
                });
            });
        });  
    
    
    

Orientação a Objetos

COMANDOS IO

  • System.out.println("menssagem");
  • import java.util.Scanner;
    • Scanner leitura = new Scanner(System.in);
    • nome = leitura.next();
  • import javax.swing.JOptionPane;
    • JOptionPane.showMessageDialog(null, "menssagem");
    • nome = JOptionPane.showInputDialog("menssagem")

CLASSE

Métodos são trechos de código que permitem modularizar um sistema, isto é, são pequenos blocos que, juntos, compõem um sistema maior. Os métodos recebem um determinado nome e podem ser chamados várias vezes durante a execução de uma classe, ou seja, é uma sub-rotina que pode ser invocada toda vez que sua funcionalidade for necessária em um trecho da classe ou ainda a partir de uma outra classe.

  • Classe Java
   // NOME DA CLASSE
   public class Carro{
     // ATRIBUTOS
     public String marca;
     public String placa;

     // MÉTODOS
     // COM RETORNO tipo String, int, double, etc...
     public String showMarca(){
       return this.marca;
     }
     // SEM RETORNO tipo void sempre
     public void printPlaca(){
       System.out.println(this.placa);
     }
   }
  • atributos Publicoss e Privados

    •   public String nome; // Acesso sem restrição
        private String nome; // Acesso somente na classe
  • Escopo de classe

Essa característica faz com que o conteúdo da variável seja controlado pela própria classe e não pelos objetos individualmente. Para que essa funcionalidade seja possível, basta declarar a variável como sendo static, ou seja, o conteúdo da atributo será estático, controlado apenas pela classe.

  public class celular{
    public String numero; // SEM STATIC pertence ao objeto que for instanciado
    public static String empresa; // COM STATIC pertence a classe 
  }
  • Sobrecarga

TEORIA: Quando um método sobrecarregado é chamado, o compilador avalia e seleciona o método mais adequado à situação, examinando a assinatura correspondente, portanto os métodos sobrecarregados são utilizados para a realização de tarefas semelhantes sobre tipos de dados diferentes, métodos definidos com o mesmo nome, desde que eles tenham uma assinatura diferente

  public double calc(int num1){
    return num1 * 2;
  }
  public double calc(int num1, int num2){
    return num1 * num2;
  }
  • Encapsulamento

    E um mecanismo que possibilita restringir o acesso aos atributos e métodos da classe (ou até à própria classe).

    • Métodos Get e Set
      • Set atualiza o atributo

      • public String setNome(String nome){
          this.nome = nome;
        }
      • Get retorna o atributo

      • public void getNome(){
          return nome;
        }
    • Criação e instanciamento de Objetos
      • Classe funcionario - Objeto func
      •   funcionario func = new funcionario();
          func.setNome('João');
          System.out.println(func.getNome());
  • Classe Constructor

    • Não possui retorno
    • Não possui parametro

HTML

TEXTO

  • p - Parágrafo
  • b - Negrito
  • strong - Texto importante (Negrito)
  • i - Itálico
  • br - Quebra de linha (tag orfã, ou seja, apenas existe a tag de abertura)
  • s - Texto Tachado
  • h1 .. h6 - Títulos
     <h1>Título 1</h1>
     <h2>Título 2</h2>
     <h3>Título 3</h3>
     <h4>Título 4</h4>
     <h5>Título 4</h5>
     <h6>Título 4</h6>
     <p>Este &eacute; um parágrafo</p>
     <p><b>Este texto está em negrito</b></p>
     <p><i>Este texto está em itálico</i></p>
     <p><s>Este texto está em tachado</s></p>
     <p>Este texto está<br> em duas linhas</p>

TABELA

  • table - Essa tag envolve a tabela inteira;
  • tr - Cria uma linha na tabela;
  • td - Cria uma célula na linha;
    • colspan - Mescla colunas;
    • rowspan - Mescla linhas.
    <table border="1">
        <tr>
            <th>Nome</th>
            <th>Cidade</th>
        </tr>
        <tr>
            <td>col 1</td>
            <td>col 2</td>
        </tr>
        <tr>
            <td>col 1</td>
            <td>col 2</td>
        </tr>
        <tr>
            <!-- Mescla duas colunas (horizontal) -->
            <td colspan="2">col 1</td>
        </tr>
        <tr>
            <!-- Mescla duas linhas (vertical) -->
            <td rowspan="2">col 1</td>
            <td>col 2</td>
        </tr>
        <tr>
            <td>col 2</td>
        </tr>
    </table>

LISTA

  • ul - lista não ordenada
  • ol - lista ordenada
  • li - item da lista
    <p>Lista ordenada:</p>
    <ol>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
        <li>Item 4</li>
    </ol>
    <p>Lista n&atilde;o ordenada:</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
        <li>Item 4</li>
    </ul>

OUTROS

  • a - Ancora Hiperlink, para criar links entres as páginas
  • img - Para adicionar uma imagem
  • iframe - Cria um janela para outra página
    <a href="link2.html">Clique aqui</a>
    <img src="img/paisagem.webp">
    <iframe width="400" height="215" src="http://portal.unisepe.com.br/univr/"></iframe>

CSS

SELETORES

  • *: Aplica em qualquer elemento;
  • .classe: aplica à classe especificada
  • #id: aplica ao id espeficificado
  • E: Aplica no elemento especificado;
  • E F: Aplica se o elemento é descente;
  • E > F: Aplica se o elemento é filho;
  • E:focus: Aplica quando o elemento ganha foco;
  • E:visited / E:active / E:hover: Estiliza o link conforme as ações.
  • E + F: Aplica o estilo no elemento F seguinte ao elemento E.
  • E.warning: Aplica o estilo no elemento E que possui a classe definida;
  • E#id: Aplica o estilo no elemento E que possui o id definido;

Position

  • Todos os elemento são *static por padrão, e não é afetado pelos atributos: top, bottom, right e left
  • relative - Elemento posicionado em relação à sua posição no documento, afetado pelos atributos: top, bottom, right e left
  • fixed - Elemento fixo na tela idependente do scroll
  • absolute - Elemento se posiciona dependendo do elemento pai(deve ser relative, fixed ou sticky)
  • sticky - Elemento fica preso ao atingir uma proporção(top, bottom)
    div.rl{position: relative;}
    div.fx{position: fixed;}
    div.ab{position: absolute;}
    div.stky{position: sticky;}

JAVASCRIPT

ARRAY

  • var lista = [];
  • var lista = new Array();
    • Para definir uma lista podemos utilizar:
  • lista.push(valor);
    • Para inserir itens no final lista;
  • lista.unshift(valor);
    • Para inserir no início da lista;
  • lista.pop();
    • Para remover um item do final da lista;
  • string.split(' ');
    • Cria um array separando os elementos de uma string baseado no identificador fornecido

SELETORES

  • por id: document.getElementById(“id”);
  • por name: document.getElementByName(“nome”);
  • por classe: document.getElementsByClassName(“nome”);

DOM

  • document.createElement(tag);
    • Gera o código HTML da tag;
  • ObjetoDOM.style.<atributos do css>;
    • acessa o valor do atributo especificado
  • ObjetoDOM.innerHTML
    • Esse atributo contém o código HTML que está dentro da tag;
  • ObjetoDOM.classList.add(classe_css)
    • Adiciona uma classe no objeto DOM.

setInterval & setTimeout

  • setInterval(function, milisegundos);
    • Executa a função, infinitamente, por determinados intervalos;
  • setTimeout(function, milisegundos);
    • Executa a função após atingir o tempo determinado;

IO & Bibliotecas

  #include <stdio.h> // OPERAÇÔES DE ENTRADA E SAIDA
  #include <stdlib.h> // OPERAÇÔES DE SISTEMA
  • SAIDA
  printf("Menssagem");
  printf("Variavel = %d", num1);
  • ENTRADA
  scanf("%d", &num1);

TIPOS BÀSICOS

  • char: %c caso char ou %s caso string(array)
  • int: %i ou %d
  • float: %f
  • double: %f
  • void

ESTRUTURAS BÁSICAS

  • if( ){ ... } else{ ... }
  • if( ){ ... } else if( ){ ... } else{ ... }
  • for(...; ...; ...;){ ... }
  • while( ){ ... }
  • do{ ... }while( )

VETOR & MATRIZ

  • VETOR[QTD]
  int vetor[6] = {1, 2, 3, 4, 5, 6};
  int i = 0;
  while(i < 6){
      printf("%i, ", vetor[i]);
      i++;
  }

OUTPUT: 1, 2, 3, 4, 5, 6,

  • MATRIZ[linha][coluna]
  int matriz[2][2] = {1, 2, 3, 4};
  int linha = 0, coluna = 0;
  while(linha < 2){
      while(coluna < 2){
          printf("%d ", matriz[linha][coluna]);
          coluna++;
      }
      coluna = 0;
      linha++;
  }

OUTPUT: 1 2 3 4

STRUCT

  • DECLARAÇÂO
  typedef struct cliente{
    int num;
    char nome[30];
    struct cliente *prox;
  }C;
  struct cliente{
    int num;
    char nome[30];
    struct cliente *prox;
  };
  typedef struct cliente C;
  • USO
  int main()
  {
      C novoCliente;
      novoCliente.num = 123;
      printf("%i", novoCliente.num);
  }

OUTPUT: 123

OBS:

  • ESTRUTURA homogênea: estrutura de um único tipo

EXEMPLO: int vetor[3] = {1, 2, 3}; // SOMENTE DADOS INTEIROS

  • ESTRUTURA heterogêneas: estrutura com mais de um tipo

EXEMPLO: Struct

   struct cliente{
     int num;
     char nome[30];
     struct cliente *prox;
   };    
  • ESTRUTURA estática: referente à alocação de memória VETOR, MATRIZ
  • ESTRUTURA dinâmicas: referente à alocação de memória dinamica em PILHAS, FILAS, LISTAS (uso do MALLOC)

PONTEIROS

  • Armazena endereço de memória
  • &var: Acessa o endereço da variavel
  • *var: Acessa o valor armazenado
  int count = 10;
  int *ponteiro;

  ponteiro = &count;
  printf("%i", *ponteiro);
  // OUTPUT: 10

  *ponteiro = 20;
  printf("%i", *ponteiro);
  // OUTPUT: 20
  printf("%i", count);
  // OUTPUT: 20
  • INCREMENTAR UM VALOR APONTONTADO
  (*ponteiro)++;
  • ACESSAR O CONTEUDO 15 POSIÇÔES PARA FRENTE NA MEMÓRIA
  *(ponteiro+15);

MALLOC

  • Alocação de memória dinâmica
  C *cabeca = (C*) malloc(sizeof(C));
  C *novo = malloc(sizeof(C));

Estruturas Dinâmicas

  • Lista
  • Pilha (LIFO - LAST IN FIRST OUT)
  • Fila (FIFO - FIRST IN FIRTS OUT)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment