Autor: Rafael Wendel Pinheiro

Resolvendo o erro “Execution failed for task ‘:app:processDebugGoogleServices'”

Estava desenvolvendo um pequeno projeto (app para Android) em Cordova (https://cordova.apache.org), e nesse projeto um dos requisitos era enviar notificações push (push notifications) para o aplicativo, através do serviço de Cloud Messaging do Google Firebase (https://console.firebase.google.com).

O procedimento para implementar essa tarefa é relativamente simples. Basta acessar o console do Google Firebase, criar um novo projeto, inserir as informações (nome, pacote, etc…), configurá-lo para o Android e por fim baixar o arquivo google-services.json

Continue lendo

Respect/Relational – o framework ORM mais simples para php

Basicamente todas as principais linguagens de programação atualmente possuem frameworks ORM (Object Relational Mapping – Mapeamento Objeto Relacional), que auxiliam bastante o desenvolvimento de aplicações (sob o paradigma de orientação a objetos – POO) que persistem em bancos de dados relacionais (como MySQL, Postgre, SQL Server, dentre outros).

A função de um framework ORM é fazer a abstração dos objetos de um banco de dados (tabelas, colunas, relacionamentos, etc…), mapeá-los, e disponibilizá-los de forma legível dentro de um projeto que está sendo desenvolvido em POO.

Continue lendo

Desenvolvendo um projeto prático com Java + EclipseLink ORM

Estou disponibilizando no meu canal do YouTube (https://youtube.com/rafaelpinheiro) uma série de vídeos mostrando como desenvolver uma aplicação em linguagem Java (utilizando o NetBeans IDE), se conectando com um banco de dados do MySQL e usando o framework ORM (Mapeamento Objeto Relacional) EclipseLink (https://www.eclipse.org/eclipselink/).

O framework EclipseLink é muito semelhante e tem a mesma função que o Hibernate, ou seja, prover a abstração dos dados de forma simples e transparente, mapeando as tabelas do banco de dados e, a partir delas, criar uma estrutura orientada a objetos (através de classes). Além disso, o framework também oferece “classes controladoras”, contendo métodos para operações corriqueiras no banco de dados (como: insert, update, delete e select). Dessa forma, nós desenvolvedores ficamos mais focados no que realmente importa, que é a regra de negócio do projeto, e a parte de persistência de dados fica a cargo do framework.

Continue lendo

Composer: como fazer o autoload de classes php fora do “vendor”

O Composer (https://getcomposer.org/) é um gerenciador de dependências (pacotes) muito utilizado na linguagem PHP e que fornece muitas facilidades, uma vez que ele fica responsável por verificar, baixar a acoplar ao nosso projeto todas as “libs” de terceiros que iremos precisar.

Essas “libs”, quando baixadas pelo Composer, são agrupadas dentro de um diretório chamado “vendor”. Além disso, é criado também nessa pasta um arquivo chamado “autoload.php”, responsável por “carregar” todas as classes que precisarmos usar. Basicamente, basta eu importar o “autoload.php” em um arquivo do meu projeto e eu terei acesso a todas as classes das “libs” baixadas pelo Composer.

Continue lendo

Como inserir um link do Whatsapp no seu site

Provavelmente você já passou pela situação de estar visitando um site de alguma empresa e se deparou com um link (ícone) onde era possível estabelecer uma comunicação instantânea através do WhatsApp. Nesse contexto, quando se clica no link, é aberto uma conversa direta com a conta de WhatsApp designada pela empresa (conta particular de algum representante ou uma conta business) através do seu aplicativo do WhatsApp (caso você esteja no smartphone) ou então pelo WhatsApp Web ou aplicativo do Windows (caso esteja no PC/Notebook).

Com base nisso, podemos afirmar que é eficiente oferecer mais canais de comunicação (além dos mais “tradicionais”, como endereço de email, número de telefone e o famoso formulário de contato) para os usuários do site, visando maior engajamento. E como o WhatsApp é altamente popular e viabiliza um canal de comunicação síncrono, nada melhor do que disponibilizar um link/ícone em nossos sites.

Continue lendo