Kleber Virgilio Correia Blog

Blogging like a hacker.

Ruby &:foo Behind the Scenes.

| Comments

Proc’ing’ in Ruby

Let’s dig a little bit deep in the Ruby world!

How many times have you seen this:

#map
1
[1,2,3].map(&:to_s) #=> ["1","2","3"]

What I have never realized that also it’s possible use something like this:

proc
1
2
to_s = proc {|item| item.to_s*3 }
[1,2,3].map(&to_s) #=> ["111","222","333"]

or even…

Class
1
2
3
4
5
6
7
class Foo
  def  to_proc
      proc {|object| object.to_s }
  end
end

[1,2,3].map(&Foo.new) #=> ["1","2","3"]

I swear this is the last example. LOL.. ♥ ♥ ♥

Module
1
2
3
4
5
6
7
module Bar
  def  to_proc
      proc {|object| object.to_s }
  end
end

[1,2,3].map(&Class.new.extend(Bar)) #=> ["1","2","3"]

So, what happen behind the scenes?

For sure you must have realized the to_proc in all the code implemented above.

When you pass the &foo, the ruby pass it as a block to the map. In case of the foo isn’t a proc ruby sends the to_proc message to the object in order to obtain the proc object and then pass it as a block to the the map.

When you pass a symbol, &:to_s ruby sends the to_proc message to the symbol witch have an implementation like that:

Symbol#to_proc
1
2
3
def to_proc
  proc { |obj, *args| obj.send(self, *args) }
end

Find more in the Ruby Extensions Project

Configurando Seu Ambinte De Desenvolvimento Android No Mac OS Lion

| Comments

Introdução

Esse é um simples tutorial sobre como deixar o seu Mac no esquema para fazer aplicativos Android. =P

Como a documentação original sugere, seguiremos em 5 simples passos! #googleTip

Prepare o seu Ambiente de Desenvolvimento Android

Faça o Download do SDK

OBS: Note que o SDK não ainda não é o ambiente de desenvolvimento, ele fornecerá as ferramentas que tornarão possíveis nós configurarmos o ambiente de desenvolvimento.

Faça o download direto: Mac OS X SDK

Veja a lista completa de SDKs.

Instalar o Android Development Tools (ADT) plugin para o Eclipse

O Android fornece um plugin poderoso para nos ajudar no processo de crição de novos projetos Android, exportação de APK’s, debugging e UI da aplicação.

Usar o Eclipse + ADT é a maneira mais rápida para começar com o Android. #googleTip

Requisitos

Eclipse IDE

  • Eclipse 3.6 (Helios) ou um mais atual.
  • OBS: Eclipse 3.5 (Galileo) não suporta as ultimas versões do ADT.
  • Eclipse JDT plugin (incluído na maioria do pacotes de instalação do Eclipse).

Vamos seguir os sábios conselhos do autor da documentação e usar um desses Eclipse’s #googleTip

  • Eclipse IDE para Desenvolvedores Java.
  • Eclipse Classíco.
  • Eclipse IDE para Desenvolvedores Java EE.
  • JDK 5 ou JDK 6 (só o JRE não é suficiente).
  • Android Development Tools Plugin.

Chega de blá-blá-blá… borá lá instalar esse plugin.

  1. Inicie o Eclipse, em seguida clique em Help > Help > Install New Software…
  2. Clique em Add no canto superior direito
  3. Na janela que irá aparecer preencha o campo Name com “ADT Plugin” em seguida preencha o próximo campo com essa url: https://dl-ssl.google.com/android/eclipse/ depois clique em OK.

OBS: Se você tiver problemas com o download do plugin, tente usar essa url: http://dl-ssl.google.com/android/eclipse/

  1. Na janela de Available Software selecione a opção Developer Tools e clique me Next.
  2. A próxima janela mostrará todos os softwares que serão baixados. Clique em Next.
  3. Leia e aceite os termos. Clique em Finish.
  4. Restart o Eclipse.

Configurações.

Vamos mudar algumas preferências do ADT.

  1. Clique em Eclipse > Preferences ou ⌘+,
  2. Selecione Android no Painel Esquerdo, Um janela do google pedindo suas estatisticas de uso irá aparecer - Faça sua escolha e vamos em frente.
  3. Para a opção SDK Location, clique em Browse… e localize o diretório do SDK.
  4. Clique em Aplicar, em seguida OK.

Entendendo o que é esse tal de AVD?

Um Android Virtual Device basicamente pode ser entendido como um conjunto de configurações de hardware e software que será emulado pelo Android Emulator.

Um AVD consiste em:

  • Especificação de Hardware: Define as funcionalidades de hardware do dipositio. Por exemplo: Se ele vai ou não ter camera, se o teclado é virtual ou físico, quantidade de memória e muito mais…
  • Mapeia uma imagem do sistema: Possibilidade de definir que plataforma Android vai rodar no AVD e qual a sua versão e também versões customizadas do Android (pacotes disponíveis no add-ons)
  • Outras opções: Manipulação de ‘Skin’(Não achei uma tradução boa) >> Oferece o controle sobre as dimessões da tela, aparência e muito mais. É possível ainda setar o SD card que será usado junto com o AVD.
  • Área de Armazenamento Dedicado: Nessa área são armazenadas os dados dos usuários (apliações instaladas,etc) e o SD card emulado.

A maneira mais fácil de criar um AVD é através da Interface Gráfica do AVD Manager[http://developer.android.com/guide/developing/devices/managing-avds.html] caso voce seje um UNIX-LOVERS também é possível cria-los|las vai command line, confira a documentação[http://developer.android.com/guide/developing/devices/managing-avds-cmdline.html]

Adicionando Plataformas e outros componentes.

Vamos lá!! O que são esses componente? O que baixar? Pra que?

SDK-tools ou Ferramentas do SDK (Sem este, Sem App Android) Se você seguiu esse tutorial do desde o inicio relaxe, ele já está instalado! Caso contrario, Instale! Sem ele, sem app android! Garanta que ele sempre esteje atualizado.

SDK Platform-tools ou SDK Ferramentas de Plataforma (Sem este, Sem App Android) São ferramentas necessárias para plataforma. Normalmente elas são atualizadas quando novas plataformas são lançadas. Elas são sempre compatíveis com versões anteriores mas garanta que seu ambiente sempre esteje atualizado com a ultima versão.

Android platforms ou Plataformas Android (Sem este, Sem App Android) São as versões do Android com as quais o seu aplicativo será desenvolvido e testado. Com elas você criará o seus AVD’s, garantindo que sua app rode sem problemas no em todas as versões do Android que você se propõe a atender!

USB Driver for Windows ou Driver USB para Windows (Somente para windows)

Samples ou Exemplos de Códigos (Não precisa baixar… mas eu baixaria! =P) Para quem tá começando é essencial! Servirá como referencia para o seu código!

Documentation ou Documentação (Não precisa baixar… mas eu baixaria! Sempre bom!! =P)

Add-ons, Código de Terceiros e Google API’s São códigos que facilitam a vida do programador! Como Google Maps e Ferramentas de Publicidade.

  1. Dentro do eclipse, clique em: Window > Android SDK Manager
  2. Selecione as Versões 2.1 e 2.3 (fique avontade para baixar o que voce quiser! =])
  3. Na áerea Extras, cheque cada uma das opções e veja se será útil para o seu projeto!
  4. Clique em Install 99 packages
  5. Aceite os termos
  6. Espere….. isso pode demorar! =P

Feito isso… bora por as ideias no papel, pensar na experiência de usuário e codar!