Bye iPhone, hello Android

Os preços proibitivos da Apple no Brasil, me levaram a mudar para Android. De forma que é mais vantajoso comprar um celular Android que consertar um iPhone. Comigo não foi diferente quando meu iPhone 5S quebrou.

iPhone 5s com defeito na tela

Pesquisando os preços de aparelhos Android e reparos de iPhone, cheguei a conclusão que deveria avaliar a mudança de plataforma . Não sei se a motivação foi apenas financeira, pois sempre tive muita curiosidade em experimentar o Android. Mas qual seria o esforço para me adaptar e quais os aplicativos que deixariam de funcionar?

Pelo mesmo preço do reparo eu poderia pagar mais da metade do preço de um aparelho Android novo. E foi o que fiz, acabei optando do por um aparelho rodando a última versão do Android Marshmallow. O escolhido foi o Motorola G4 Play.

Passados algum tempo utilizando o aparelho, resolvi escrever esse post e compartilhar a minha experiência de migração:

Aplicativos que utilizava no iOS e que estavam disponíveis no Android:

Um fator que me auxiliou na portabilidade foi o fato que ao escolher um aplicativo, sempre optei por aplicativos que estivessem disponíveis para ambas as plataformas.

Alguns aplicativos acabaram ficando pelo caminho:

Impressões gerais

Migração de contatos

O maior desafio que encontrei  foi a migração dos contatos do iCloud para o Google. Basicamente, exportei os contatos no painel Web do iCloud e importei o arquivo de contatos no Google. Após a importação, notei que alguns contatos estavam duplicados, pois já existiam no cadastro de contatos do Google, foi fácil unificar e remover os contatos desnecessários.

Uma tela mais confortável

A tela maior do Motorola Play G4 é mais confortável para entrada de textos. Como estou acostumado a usar o celular no bolso, tive que me adaptar com as novas dimensões do aparelho. O tamanho do aparelho havia sido um dos critérios na escolha do modelo: Mais conforto para leitura, mas que não fosse um “trambolho” no bolso.

Autonomia

Uma bateria nova também me ajudou muito a ter maior produtividade. Passei a ficar mais tempo longe do carregador e já não precisava parar o que estava fazendo no celular para fazer uma nova carga. Notei uma boa performance da bateria mesmo quando baixava podcasts ou assistia a algum vídeo no Youtube.

Usabilidade

Adaptação foi relativamente tranquila tendo em vista que os aplicativos que eu menos utilizava foram justamente os que ficaram pelo caminho.

Como sou consumidor de podcasts uma das minhas maiores dificuldades foi encontrar um bom aplicativo no Android como aplicativo nativo de Podcast disponível na plataforma da Apple o aplicativo da Apple é muito bem integrado quando queremos fazer acesso a podcasts. Acabei optando pelo Podcast Addict.

Fiquei muito surpreso com o teclado de voz do Google que acerta muito mais do que o teclado de voz quando em português.

Câmera

Na minha experiência de fotógrafo amador,  percebi que a velocidade para capturar uma fotografia é melhor no dispositivo da Apple. No Android ainda acho um pouco complicado acessar a camera, seja por dois cliques no botão ligar, seja arrastando a tela na diagonal. Além de revisar fotos no iOS ser muito mais rápido. Porém, recentemente precisei usar a câmera do celular como lupa e percebi que o Motorola G4 conseguiu capturar detalhes que o iPhone não conseguiu.

Olha aí o label do chipset com Android, no iPhone era um impossível visualizar

Conclusões

O produto da Apple é excelente, porém, restrito demais. Principalmente quando o usuário não se importa de ter que clicar mais em troca de maior controle nos aplicativos.

No geral, sinto que os aplicativos disponíveis na plataforma Android geralmente são mais fáceis de compartilhar conteúdo e tem um menu de opções um pouco mais amplo.

Ter um dispositivo com a tela maior me fez perceber que faz total sentido uso de fone de ouvido sem fio, uma vez que o plugue conectado é um ponto frágil no design do aparelho. A tela maior com o fone de ouvido, causa um pouco de desconforto no bolso. Ainda sobre o fone de ouvido, a integração do fone de ouvido com o aparelho da Apple é mais completa, permitindo ao usuário o controle de reprodução sem a necessidade de estar com o aparelho em mãos.

O recurso do FaceTime faz um pouco de falta, Mas pode ser compensado através das mensagens de voz e vídeo do WhatsApp e até mesmo do Skype. Pessoalmente acho que o Whatsapp com vídeo vai decretar a morte do Facetime.

Uma funcionalidade que achei muito bacana no Android, foi a configuração de limite e monitorar o consumo do pacote de dados celulares. Definir alarmes quando atingir certo valor do consumo também é bem útil quando lidamos com as operadoras brasileiras.
A integração das soluções do Android com a plataforma do Google são tão boas quantas integrações disponíveis na plataforma da Apple.

Na avaliação geral,  acho que o iPhone é mais fácil e o Android permite que o usuário avançado extraia mais do aparelho.

Melhore a performance do seu site

Durante o projeto de um tema WordPress no qual usamos muitas imagens de alta definição  ( Faça um tema customizado para o seu negócio ), notei que o tempo de carregamento da página não estava satisfatório. Assim, tivemos que lançar mão de várias técnicas para acelerar o carregamento da página tanto para mobile quanto para diversas resoluções diferentes no desktop.

Abaixo, compartilho alguns links onde podemos avaliar o tempo de carregamento de páginas Web, alguns deles dão dicas valiosas de como acelerar o carregamento da sua página.

https://www.webpagetest.org

https://developers.google.com/speed/pagespeed/insights/

https://gtmetrix.com

https://loadimpact.com

http://www.monitis.com/pageload/

https://www.dotcom-tools.com/website-speed-test.aspx

Dicas :

Carregue primeiro o que será visto primeiro –  Se possível, mova folhas de estilos e adie a carga de Javascript para depois do conteúdo.  Esses componentes costumam carregar a carga da página no browser, tornando-a mais lenta.

Reduza imagens – Esse é um ponto importante, imagens tomam tempo importante no processo de carga. Mas, reduzir a imagem não significa perder qualidade. Afinal, ninguém quer o seu site com imagens de qualidade ruim. Existem algumas ferramentas online que reduzem o tamanho das imagens sem a perda da qualidade. Recomendo o TinyJPG. Outro ponto que melhora muito o desempenho é ter imagens com dimensões adequadas ao tamanho que será apresentado, sem ficar redimensionando na tag HTML.

Evite usar conteúdo linkado de outros sites – Esse é um ponto controverso, pois quando usamos outro site, o nosso servidor libera recursos para processar outra parte da página. Porém, abrimos mão da manutenção da disponibilidade do conteúdo. E nesse momento, a carga do site pode ser tornar lenta se o servidor remoto demorar demais para responder.

Comprima os arquivos – Se há a possibilidade de habilitar a compressão de arquivos no seu servidor, use-a. Embora o servidor tenha que efetuar uma tarefa a mais, poupamos recursos de banda.

Simule a navegação do site em redes de baixa velocidade – Tenha a mesma experiência que seus usuários em redes compartilhadas ou de baixa velocidade.

Teste em muitos browsers – Tenha os mais comuns instalados na sua máquina.

Espero que essas dicas tenham lhe ajudado.

 

Movimente-se e seja produtivo

Quando se trabalha a frente de um computador é passar horas com pouco movimento do corpo pode virar rotina, essa ausência de movimentação forma pontos de tensão e sobrecarrega músculos, ossos e tendões. Como se não bastasse isso, os movimentos repetitivos relacionados a atividade de digitação podem ocasionar lesões por esforço repetitivo (LER) ou mesmo acumular tensões no pescoço, ombros, punhos e outras partes do corpo, impactando diretamente na vida e nos seus resultados.

Para evitar esse risco, movimentar-se e criar uma rotina de pausas frequentes é muito importante. Mas será que adicionar pausas a uma atividade tão intensa não prejudica a produtividade ? Como se manter produtivo e ainda se movimentar durante o dia de trabalho ? Criar uma cultura de se movimentar pode ser muito difícil para algumas pessoas. Também foi bem difícil pra mim. Descobri que estava detonando a minha saúde quando percebi que bebia pouca água. Certo dia me dei conta que fui beber meu primeiro copo de água do dia quando ja passava das 20:00 h.

Uma forma de se convencer é que quando nos movimentamos mais, irrigamos melhor o cérebro. Com a cabeça trabalhando melhor, pensamos melhor! Sabe aquele bug que esta a horas tentando resolver ou aquele trecho que código que não saia ? A resposta pode ficar mais clara quando se movimentar. Esse também é um exercício interessante, pois voltamos a olhar o problema com uma visão quase limpa.

Algumas dicas que sigo e que estão funcionando bem comigo:

Beba água 

Use seu smartphone como seu aliado, coloque um alarme que lembre de beber água: Beba muita água, ela é um aliada da sua saúde, Influenciando até mesmo na absorção de impactos da sua coluna ( algo relacionado aos discos que separam os ossos ). Além disso, você terá que ir abastecer sua garrafa. Aproveite para se movimentar e conversar com seus colegas de trabalho.

Movimente-se

Se possível programe alarmes ou use um desses apps que monitoram o quanto caminhou durante o dia.  Monitores como Up da Jawbone, Fitbit ou mesmo os aplicativos para contagem de  passos do iPhone podem ser grandes aliados.

Respire melhor

A respiração é parte importante do processo de oxigenação do sangue e do cérebro.

Durma bem

Pode parecer besteira, mas uma noite de sono bem dormida ajuda a melhorar a saúde e aumenta a disposição para os desafios da vida.

 

 

 

Aprendendo Python de maneira Interativa

Uma forma legal de aprendizado para programar uma linguagem de programação, é a possibilidade de durante o aprendizado praticar o assunto abordado e quem sabe fazer um pequeno projeto. Acredito que ajude a fixar e até estimule mais ainda o aprendizado. Durante minhas pesquisas de desenvolvimento usando OpenCV, acabei esbarrando com Python algumas vezes.

Uma delas, durante a montagem do ambiente do OpenCV tive um contato de instalação e recentemente, durante a montagem de protótipo, acabei iniciando um estudo mais aprofundado da linguagem. Um dos sites que me chamou a atenção foi o Learn Python. que se propõe a ser o ponto de entrada com a linguagem e permite os testes de programação online.

Recomendo, vai lá!

Criando um socket server simples com NodeJS

Desenvolvedores de software eventualmente estão envolvidos com algum tipo de solução baseada em socket, principalmente utilizando um cliente para conexão com um server socket.

Com o objetivo de criar um server socket simples, criei um servidor utilizando o NodeJS que me auxilia quando desejo visualizar as mensagens disparadas pelo cliente que estou desenvolvendo e como essa mensagem esta sendo recebida no servidor.

Caso queira conhecer mais sobre o NodeJS, veja o post sobre como acessar comandos do linux usando NodeJS.

Partindo do princípio que o NodeJS esta instalado ( o mesmo pode ser baixado aqui ). Será preciso criar dois arquivos:

1 – Um arquivo javascript (.JS) que contém a lógica do server.

Exemplo de código

// Load the TCP Library
net = require(‘net’);

//Porta para conexao
var porta = 29298;

// Lista de clientes
var clientes = [];

// Inicia o TCP Server
net.createServer(function (socket) {
// Identifica o socket
socket.name = socket.remoteAddress + “:” + socket.remotePort

// Adiciona o socket a lista de clientes
clientes.push(socket);

// Envia uma mensagem de conexao
socket.write(“Cliente ” + socket.name + ” conectado com sucesso\n”);

// Avisa aos demais clientes que um novo cliente foi conectado
broadcast(socket.name + ” conectado\n”, socket);

// Listener de requisicoes dos clientes
socket.on(‘data’, function (data) {
broadcast(data,socket);
});

// Trata a desconexao do cliente
socket.on(‘end’, function () {
clientes.splice(clientes.indexOf(socket), 1);
broadcast(socket.name + ” Desconectou\n”);
});

// Trata possiveis erros na conexao
socket.on(“error”, function () {
console.log(“\n Cliente desconectao por erro “);
clientes.splice(clientes.indexOf(socket), 1);
});

// Envia mensagem para todos os clientes
function broadcast(message, sender) {
clientes.forEach(function (cliente) {
// Tratamento para nao enviar a mesma mensagem a quem originou
if (cliente === sender) return;
cliente.write(message);
});
// Envia a mensagem na console
process.stdout.write(message)
}

}).listen(porta);

// Informa na console que o servidor esta em operacao.
console.log(“Servidor em execucao na porta :”+porta+”\n”);

socketServer.js

2 – Um arquivo para o iniciar o nodeJS, sem a necessidade de digitar. Podendo ser um arquivo .bat ou um shell script com o comando abaixo.

node socketServer.js

Exemplo de execução do socket server
Exemplo de execução do socket server

Até!