sábado, 21 de maio de 2011

Comprei meu atrix!

Pois é! Depois de muito tempo esperando e guardando uma graninha, comprei o meu tão sonhado smartphone Android. Confesso que eu estava MUITO PILHADO pelo Nexus S, especialmente porque, por ser denominado "Pure Google Experience", esse smartphone receberá todas as atualizações possíveis com antecedência. Considerei demais essa vantagem. Mas por outro lado, o Nexus S não possui um processador Dual Core e tem apenas 512mb de memória RAM. É equivalente à um iPhone em termos de hardware, sim. Mas os últimos aparelhos do mercado estão vindo com configuração muito superior à essa. O Atrix possui processador Dual Core com 1gh de processamento e 1gb de memória RAM. Ao ver essa configuração (após a dica do amigo @cassiuspacheco_), tive poucas dúvidas. Apesar de preferir um aparelho com a última versão do Android, acabei optando pelo aparelho da Motorola.
E não me arrependo nem um pouco! É meu primeiro smartphone, ainda não tinha tido essa experiência de estar conectado praticamente o tempo todo e de maneira tão prática. O atrix é rápido, possui um touchscreen que responde bem, e um sistema operacional muito bom. Claro, o Froyo não é a melhor opção e já está levemente defasado, mas segundo a Motorola, a atualização para o Gingerbread virá ainda esse ano. Espero!
O ponto fraco citado em todos os reviews que eu li, além da versão do Android, é a câmera. Como praticamente não uso esse recurso, esse não vem a ser um defeito pra mim. Outro defeito também citado é o Motoblur, as "adaptações" da Motorola na interface do Android. Nessa parte concordo plenamente. Apesar da integração com redes sociais como facebook e twitter, o Motoblur é feio. Foi motivo suficiente pra eu instalar o LauncherPro, e deixá-lo com cara de Android de verdade. Ah, o Motoblur também não adaptava a home horizontalmente quando necessário..
Outro fator que não me agrada é que, por determinação da AT&T, apps de fora do Android Market não podem ser instalados, o que vem a ser extremamente chato quando se quer testar apps ainda em fase de testes ou que simplesmente não estão no market. Estou considerando seriamente rootear o aparelho. Mas peraí... AT&T? Pois é.. comprei o Atrix no Mercado Livre, e a operadora do celular era essa gringa mesmo. Por ser desbloqueado, não faz diferença alguma. A única parte ruim é que ele não veio com o dock multimídia, acessório que acompanha os aparelhos comprados pelas operadoras daqui do Brasil.
Quanto aos apps, desinstalei diversos que já vieram instalados nele e que eu considerava inúteis. E enchi de coisa útil: Dropbox, Google Docs, Meebo IM, Astro File Manager e os apps do Facebook e LinkedIn. E duas versões do EXTREMAMENTE VICIANTE Angry Birds: a normal e o Angry Birds Rio.
É.. agora não tenho motivos pra não ficar motivado pra desenvolver meus próprios aplicativos! A falta de tempo continua sendo o maior vilão, mas logo o semestre acaba e com as férias vem o tão sonhado tempinho livre pra eu enlouquecer estudando. Não possuir o aparelho que se deseja desenvolver era um fator muito negativo. Ao utilizar os aplicativos, ver como é estar conectado o tempo todo, temos ideia do poder que temos em nossas mãos. E muitas ideias também! Espero começar a colocar meus apps no Market logo e ver no que tudo isso vai dar.
Até!

domingo, 3 de abril de 2011

Web Scraping

Utilizar dados armazenados na web em aplicações móveis me parece ser algo essencial. E realmente é. Muitos aplicativos (móveis ou não) de sucesso utilizam essa técnica, que possui diversas maneiras de ser executada.  Basicamente, ela consiste em raspar o código HTML ou XML de sites alheios e utilizá-lo nas suas próprias aplicações,  organizando-o na forma de uma árvore, e acessando as informações hierarquicamente através das tags. Não é algo muito complicado, mas dá trabalho caso seja feito sem utilizar alguma ferramenta poderosa.
Recentemente, observando o código fonte do Consumo (aplicativo para iPhone que informa o usuário sobre o tráfego de dados, gastos, etc. que por acaso foi criado pelo @felipek), me deparei com o Beautiful Soup.
O Beautiful Soup é um poderoso HTML/XML parser, com recursos que facilitam a vida do desenvolvedor:  não é qualquer HTML mal escrito que o impede de organizar os dados em uma árvore de fácil compreensão. Ele também possui métodos dinâmicos e simples para navegar, pesquisar e alterar a árvore. 
Mas o que mais me deixou com vontade de utilizar essa ferramente foi o fato de ela utilizar Python, linguagem da qual sou fã e gosto de brincar de vez em quando (apesar de nunca ter estudado muito a fundo..). Em pouco tempo, construí um algorítmo em python que busca o último tweet do usuário informado, e abre-o em uma página no navegador. É algo MUITO simples, mas dá ideia do que é possível fazer. Contém uns erros de codificação, a velha história do utf-8 e mimimi que eu fiquei com preguiça de pesquisar a fundo. :P O código é esse: 


# -*- coding: utf-8 -*-

import urllib2
from BeautifulSoup import BeautifulSoup
import os

#Pede ao usuário que informe o user do twitter, e o
#concatena na url que será acessada
user = raw_input('Informe o user do twitter: ')
url = "https://twitter.com/" + user

#cria a árvore
page = urllib2.urlopen(url)
soup = BeautifulSoup(page, fromEncoding="utf-8")

#navegando pela árvore
tweets = soup.findAll('div')
tweets = tweets[12]
tweets = tweets.contents[5]

#cria o arquivo html que guardará o último tweet do usuário
arquivo = open("C:\site.html", "w")
arquivo.write(tweets.ol.span.span.span.prettify())
arquivo.close()
print u'Operação concluída!'

#abre o arquivo no navegador
os.system("C:\site.html")
os.system("exit")



Quem se interessar, aqui está a página do Beautiful Soup, que também contém toda a documentação dele.
Até!

sábado, 12 de março de 2011

Voltando!

Impressão minha ou esse blog andava meio abandonado?..
Pois bem. O motivo da ausência é simples, e o mais manjado de todos: falta de tempo, SEMPRE. Trabalhei durante as férias todas, e continuo lá, firme e forte. Essa rotina de trabalhar/estudar/estudar em casa/dormir um pouquinho é mega cansativa, mas tô levando na boa. É bem bacana essa sensação de "ser adulto".. :P
Sou obrigado a admitir: andei relaxando nos meus estudos sobre a plataforma Android. É que, além da falta de tempo, fiquei extremamente empolgado com Python e Django (desenvolvimento web), e me afastei um pouquinho do robozinho da google. Sem contar que, com o cansaço devido à rotina puxada, vem a desmotivação.
E essa desmotivação repentina sumiu por completo nessa última sexta-feira. Tive uma palestra ótima sobre desenvolvimento mobile. Extremamente conveniente. Nada melhor que alguém com uma história verdadeira pra empolgar e motivar.
A palestra foi dada pelo Felipe Kellermann para os alunos da ulbra e mais alguns estudantes de cursos técnicos de informática (mais informações sobre a palestra aqui). Resumindo: o cara tinha um emprego na Hewlett-Packard (a.k.a. HP), e largou pra desenvolver pra iOS. E se deu bem, muito bem.
Independente da plataforma, desenvolvimento mobile é um mercado em constante crescimento e que está apenas começando. Portanto, qualquer pessoa que se envolva com isso e se dedique, obtém resultados. Fica a dica aê RAPEIZES.
Espero voltar a atualizar o blog constantemente, mostrando meus avanços nos estudos. Até!

sábado, 11 de dezembro de 2010

Estágio, Férias e Aplicaçãozinha Tosca pro Android

Consegui o estágio no desenvolvimento! Segunda-feira começo lá, tô mega empolgado. Quanto à faculdade, só mais uma prova (terça que vem) e eu estou oficialmente de férias. Férias essas que prometem ser boas. Vou ver se começo uma academia, pra deixar de ser tão mendigo. Logo eu, que sempre me orgulhei dos meus bracinhos fininhos...
Pois então, o Android. Estou lendo todo material possível, baixando tutoriais, entrando em fóruns de discussão, enfim: estou absorvendo toda informação possível sobre a ferramenta. Fiz algumas aplicaçõezinhas inúteis, e já pude ter uma boa noção do que me aguarda. Vou mostrar uma delas, pra dar uma ideia. É um aplicativo realmente tosco, só lê duas notas e apresenta a média (baseada no cálculo utilizado na minha faculdade). Ainda falta fazer algumas validações e talz, mas eu tô empolgado demais pra mostrar ele ;P

Vamos lá. Essa é a tela inicial da aplicação:

Tela do emulador

Como eu falei, é a tela para ler duas notas e, ao se clicar em "Calcular", a média é mostrada, assim como o resultado (aprovado ou não). A interface é implementada em XML. É realmente simples, e o Eclipse ainda oferece recursos para criar essas interfaces de maneira mais simples ainda. O código da interface dessa tela é o seguinte:


Dois TextViews, dois EditViews e um Button, e as suas respectivas propriedades, simples. Um recurso que eu achei interessante é o fato de que todas as Strings (quaisquer textos que apareçam no programa) estão em um arquivo a parte. Basta chamá-las pelo nome. Extremamente útil para aplicações que lidam com diversos idiomas. O arquivo de Strings (também XML) ficou assim:



Novamente, o Eclipse oferece ferramentas para a edição rápida das strings, o que se torna ainda mais simples. E onde que tem Java aí? Pois bem, vamos à programação propriamente dita. Minha aplicação, por ser extremamente simples, precisou de apenas um arquivo .java e de apenas uma Activity (basicamente, uma activity é uma tela da aplicação). E esse arquivo ficou assim:



As bibliotecas do Android são importadas, o layout é definido, e, ao se clicar no botão "Calcular", um AlertDialog é aberto mostrando o resultado, dessa forma:

Resultado

Simples, simples, simples. Óbvio, alguns ajustes precisam ser feitos ainda. Provavelmente NÃO os farei, vou continuar estudando outras aplicações mais complexas, e possivelmente comentando aqui no blog. Tem muito material pra ler, e muita gente interessada no assunto. Ou seja: não existe desculpa pra não aprender. Basta tirar um tempinho e se puxar, e é isso que vou fazer nessas férias. Até :D

segunda-feira, 29 de novembro de 2010

Android e a Ideia Genial da Semana

No último post deu a impressão de que eu fiquei meio desanimado por ver que era SEMI-IMPOSSÍVEL um mendigo desenvolver pra iPhone (surpresinha no fim desse post, aguardem). Na real acho que o texto ficou meio dramático, só isso. A questão é que no mesmo dia que eu escrevi aquilo, eu já tava pesquisando sobre o Android, e sendo feliz.
Bom, acho que a maioria já sabe, mas não custa lembrar: o Android é um sistema operacional para celulares desenvolvido inicialmente pelo Google e posteriormente pela Open Handset Alliance, uma aliança de empresas ligadas (direta ou indiretamente) à telefonia móvel. Detalhe: Open Source. Exatamente, o código é aberto. E melhor ainda, que me deixou mega empolgado: é simples desenvolver pra Android, todas as ferramentas necessárias são facilmente encontradas na internet.
Os aplicativos são construídos em Java, utilizando as bibliotecas desenvolvidas pelo Google. Portanto, o ideal é usar alguma boa IDE de Java, como o Eclipse ou o Netbeans. Utilizarei o Eclipse, que pode ser baixado aqui. Óbvio, para programar em Java, é necessário possuir no computador o JDK (Java Development Kit), encontrado no site da Oracle (que comprou a Sun já faz mais de ano, mas eu sempre esqueço e acabo me surpreendendo quando leio algo a respeito). Por último, é necessário o SDK do Android, aqui.
O processo de instalar todos os componentes corretamente e configurá-los é meio chato/longo/complicado. Eu utilizei esse artigo da Oficina da Net, que explica passo a passo o processo, de forma clara.
Tudo pronto! Bom, agora é só programar. Não tenho conhecimentos avançados de Java, tive apenas uma cadeira semestre passado que me ensinou os conceitos principais da Orientação a Objetos em si e alguns elementos da linguagem. Portanto, precisarei de MUITO material de referência. Pesquisando, encontrei esse livro (em inglês) e me interessei bastante, pretendo comprá-lo. Ainda há a página do Android voltada à desenvolvedores, com todo o material e informações necessárias, além de tutoriais.
Então, vamos à surpresa citada anteriormente. Depois que eu instalei e comecei a brincar com o Android, achei um artigo ensinando a programar pro iPhone utilizando Linux (ahhhh!). Não, não fiquei tapado. Achei até engraçado, e fechei a página sem nem ler direito o conteúdo, e voltei pro Eclipse. MALZ AÊ Apple, mas agora não te quero mais não :*
Android, é nózes.