domingo, 28 de setembro de 2014

Vi Cheat Sheet

E ai pessoal, tudo bem!?

Mais um daqueles posts bem rápidos com informações que eu acho legal guardar.

O editor de texto que uso no shell é o Vi (principalmente para editar meus commits do git), fiz uma cola para relembrar os comandos que eu utilizo mais:

:wq / :x = Salvar e sair
:q = Sair com segurança, caso tenha alguma alteração ele te avisa
:q! = Sair e ignorar mudanças
i = Começar a alterar o texto

Movendo o cursor
e = move o cursor para o fim da palavra
b = move o cursor para o começo da palavra
$ = Move o cursor para o fim da linha 
0 = Move o cursor para o inicio da linha
L = Move o cursor para a ultima linha do arquivo
H = Move a primeira linha do arquivo

Buscando
/palavra_para_procurar = procura uma palavra
n = vai para o próximo resultado
N = vai para o resultado anterior

Por enquanto é isso ai, tenham uma ótima semana!

Tenho preparado alguns posts sobre git, ruby e integração do gamecenter no iOS, logo logo eu solto eles pra vocês!


quarta-feira, 24 de setembro de 2014

Status bar height

Pessoal, tudo bem!?

Para os designers que estão sondando por informações de tela, etc...

Estava procurando hoje tamanhos de status bar e achei algo um tanto que relevante para Android (peguei do Emirweb) :


Iphone: independente da versão: 20 px, peguei do iDev101

Windows phone: 32px portrait, 72px landscape Microsoft

Falou pessoal e até o próximo post!

quinta-feira, 18 de setembro de 2014

Testes automatizados com TestDroid, AppThwack,TestObject e Xamarin TestCloud

Pessoal, tudo bem?

Hoje eu estava em um dilema sobre plataformas que podemos utilizar para fazer testes automatizados em aparelhos reais. Atualmente temos um problema muito grande com o porting de aplicativos Android por conta da fragmentação da plataforma, atualmente temos cerca de 18 mil (18.000) aparelhos únicos de fabricantes diferentes espalhados pelo mercado. 

Voltando as plataformas de teste, testei 3 delas:  TestDroid , AppThwack e TestObject. Estou esperando a resposta de uma quarta Xamarin-TestCloud

Alguns dados que anotei durante os testes:

TestDroid: 
  • +280 devices;
  • Ferramentas de teste adicional: Monkey Teste/TestDroid Recorder/Robotium;
  • Stress test customizável: pode utilizar nome do usuário e senha para login;
  • Customização dos devices: Nenhuma;
  • Integração contínua com Jenkins;
  • Pode testar em um aparelho físico; 
  • Plano mensal mínimo: $599,00;

AppThwack: 
  • +300 devices
  • Ferramentas de teste adicional: Monkey Teste/Calabash/JUnit/MonkeyTalk/UiAutomator
  • Stress test customizável: pode utilizar nome do usuário e senha para login;
  • Integração contínua com Jenkins;
  • Não pode testar em aparelho fisico;
  • Plano diario: $75,00 ou $20 200 minutos de teste (Cada aparelho dura em média 4 minutos o teste);

TestObject: 
  • 40 devices;
  • Ferramentas de teste adicional: Robotium;
  • Stress test padrão;
  • Integração contínua com Jenkins;
  • Pode testar em um aparelho físico;
  • Plano de minutos $20 100 minutos de teste (Cada aparelho em média 3 minutos);

Xamarim TestCloud:
  • Aguardando contato de um consultor para disponibilizar mais informações, uma demo e testar;
  • 800 devices;
  • Ferramentas de teste adicional: Calabash;
  • Integração contínua com Jenkins, Team City e TFS;
  • Teste em aparelho físico:?;
  • Planos:?;


Optei pelo AppThwack por enquantocom ele é possível re-utilizar a suite de testes Calabash (a que eu estou usando atualmente), dessa forma posso reutilizar os códigos de teste.
Os códigos feitos em calabash podem ser utilizados também nos celulares que tenho na empresa, com o celular plugado no USB, o re-aproveitamento será maior e o re-trabalho desenvolvendo testes em outras suites será menor. 
O AppThwack também pode ser integrado com o Jenkins de forma bem simples, deixando as práticas ainda melhores.

Por enquanto é isso!!


Bom fim de semana pessoal!



quarta-feira, 17 de setembro de 2014

Android - gerando HASH's para o facebook

E ai pessoal, tudo bom!?

Hoje vou tratar de um assunto bem simples! Como gerar aquela hash marota para testar e fazer o release do seu app Android com o facebook integrado. Para integrar o facebook em minhas aplicações eu utilizo o Parse um serviço comprado pelo próprio facebook a algum tempo atras.

Bem, vamos la:

HASH de Debug 

Para testarmos o aplicativo no facebook, precisamos colocar no developer.facebook.com uma Hash gerada a partir da debug.keystore. Ela sempre é usada quando você gera aquela build apertando debug/run no seu AndroidStudio, Eclipse,etc...

Esta key fica por padrão na pasta .android da raiz do seu sistema operacional. Para pegar a hash que será utilizada no developer.facebook.com, basta você ir no terminal e digitar:

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Obs.: Se pedir senha o padrão é android

Mais informações: Facebook Dev

HASH de Release

Após fazer os testes do app e lapida-lo, está na hora de lançar na PlayStore, você vai precisar adicionar uma hash gerada pela sua keystore de release. Para isso basta digitar no seu terminal:

keytool -exportcert -keystore NOME_DA_KEYSTORE -alias NOME_DA_ALIAS | openssl sha1 -binary | openssl base64

Obs.: Se pedir senha, é a senha da sua keyStore

Adicionando a hash no facebook.

Entre no developer.facebook.com, no canto superior esquerdo da tela, clique em Apps:


Selecione o aplicativo ou crie um novo, após criar ou selecionar um aplicativo já criado, selecione settings.


Vá até o final clique em add platform, adicione o Android como uma nova plataforma, em package name adicione o identificador do seu projeto com.meu.projeto a classe que servirá de callback e o Hash com um simbolo de "=" no final.


E pronto! Está tudo certo.

Não esqueça de colocar o appId e o appSecret no serviço que você utilizar para integrar o facebook ou na própria SDK do facebook.

Abraços e até o próximo post!!

quarta-feira, 10 de setembro de 2014

Android - UNEXPECTED TOP LEVEL EXCEPTION na migração

E ai pessoal, tudo bom!?

O primeiro post que pretendo fazer é a respeito da migração de um projeto Android feito inteiramente em Eclipse ADT para o Android Studio, em relação ao problema que eu tive, fiquei bem puto durante a migração pois não manjava nada de Gradle nem de Maven, acabei investindo algum tempo estudando os 2 para entender o que estava acontecendo. Meu projeto vivia dando: UNEXPECTED TOP LEVEL EXCEPTION e problemas de importação cíclica com a Android Support V4.
Meu projeto atual tem relativamente poucas bibliotecas de apoio, uso estas 5: app.compat.V7, Support Lib V4,facebookSDK,ViewPagerIndicator e MixPanel.

Bem, comecei seguindo o tutorial de migração disponível no site do próprio AndroidDev Site , ele fala para no próprio eclipse utilizar a ferramenta de migração e selecionar o projeto desejado, nessa hora eu selecionei todos os meus projeto principal e todas as bibliotecas que estavam atreladas ao projeto.


Pelo que entendi, isto fez com que eu tivesse um problema de dependências cíclicas pois meu projeto utilizava a android support v4, o projeto do MixPannel, o do Facebook e o app.Compat.V7 também utilizavam, no eclipse este mesmo problema é conhecido como jar mismatch, tive frequentemente este erro UNEXPECTED TOP LEVEL EXCEPTION após corrigir os problemas de importação.

Para corrigir o UNEXPECTED TOP LEVEL EXCEPTION, eu apaguei todas as referências que tinha da biblioteca support v4 do android. Em seguida pelo android SDK manager fiz o download da ultima versão da support library v4 e do support repositor.



Terminados os downloads eu cliquei com o botão direito sobre o projeto  fui na opção open module;


Selecionei o projeto que depende da lib support v4


Cliquei em Dependencies


E lá no rodapé apertei no "+" para adicionar uma biblioteca de dependencia do próprio SDK


No fim selecionei a biblioteca support v4

E prontinho!

Para finalizar e acabar com o UNEXPECTED TOP LEVEL EXCEPTION eu adicionei no build.gradle da raiz do projeto:

configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
}
**** FORA DO BUILDSCRIPT

Isto faz com que a support library v4 pare de ser exportada por outras dependências do projeto que não seja as bibliotecas importadas e seu projeto principal. Um workaround que achei no Stackoverflow.

Por enquanto é isso ai :)

Abraços!



Inauguração

E ai pessoal! Beleza?

Meu nome é Bruno, sou desenvolvedor mobile desde o início da minha carreira profissional, comecei por volta de 2008.
Hoje trabalho em uma startup chamada EmpregoLigado, nosso objetivo é ajudar pessoas com cargos operacionais acharem empregos próximos as suas casas, usamos bastante geolocalização :).

Usarei este blog como um cookbook, todas as coisas que eu for fazendo ou achar interessante a respeito de desenvolvimento mobile vou colocar neste blog.

E é isto :)


Abraços e boa semana!
Tecnologia do Blogger.