sábado, 24 de março de 2012

Extjs 4, Sencha Touch e criação de temas

Já faz um bom tempo que não escrevo nada referente ao Extjs. Eu comecei a utilizar esta tecnologia quando o framework estava mudando da versão 2 para o 3. Neste momento, estamos na versão 4. Houveram grandes mudanças na estrutura do framework e consequentemente na forma de utilizá-lo. Felizmente, a maioria dessas mudanças vieram para melhorar o framework. Um das mudanças foi a troca de donos da empresa que mantêm o Extjs. A empresa se chama Sencha e junto com a versão 4 do Extjs surgiu um novo produto. O framework irmão do Extjs, o Sencha Touch. O Sencha Touch é um framework javascript voltado a desenvolvimento para aparelhos móveis como smartphones e tablets. Hoje eu quero falar um pouco sobre um dos aspectos em que a mudança foi mais profunda no Extjs. Os temas. Na versão 3, o framework usava CSS 2. Agora, se foca em utilizar CSS 3 e disponibiliza o uso de uma tecnologia recente e poderosa. o SASS. Quem tiver interesse em saber mais sobre o SASS pode visitar esta página aqui. Mas vamos ao que interessa.

Encontrei, navegando pela web, um artigo muito interessante que demonstra como criar temas customizados ne maneira simples usando SASS. O artigo é este aqui.

O artigo está muito bom e muito claro. Não há necessidade de uma tradução. Porém, existe um pequeno detalhe que pode fazer toda a diferença. Após instalar o compass é necessário desinstalar o SASS e instalar uma versão mais antiga. Na prática, pasta seguir os passos abaixo:

1) Instale compass
sudo gem install compass


2) Desinstale o SASS
sudo gem uninstall sass

3) Instale a versão correta do SASS

sudo gem install sass -v 3.1.1


Com exceção deste detalhe, todo o resto do artigo está impecável.

É isso. No futuro, pretendo demonstrar como é possivel utilizar este artigo para criar temas customizados para o Sencha Touch.

sábado, 17 de março de 2012

App no Google Play


O aplicativo está offline devido a solicitação da CPAD por direitos autorais. Qualquer dúvida, mande um email para harpacristabrasileira@gmail.com

Finalmente está pronto meu primeiro app para android. Ficou pronto nesta madrugada. O aplicativo é uma harpa cristã com todos os hinos cantados e com MIDI. Sem falsa modéstia, o programa ficou muito bom. Eu considero o melhor aplicativo da harpa presente no Google Play e espero que em breve muitos pensem da mesma forma. Lembrando que é totalmente grátis e livre de qualquer tipo de propaganda. Sem mais delongas seguem-se os links:

Site oficial
Google Play

quarta-feira, 4 de janeiro de 2012

Primeiro app no market

O aplicativo está offline devido a solicitação da CPAD por direitos autorais. Qualquer dúvida, mande um email para harpacristabrasileira@gmail.com

Depois de algum tempo de estudo e dedicação ao android-sdk, finalmente publicarei minha primeira app no Android Market. Foi custoso, alguns pedaços do código deu nos nervos, mas no fim o aplicativo ficou melhor do que eu esperava.

É a Harpa Cristã Brasileira. Será lançado em poucos dias. Estou apenas finalizando alguns pequenos detalhes e fazendo uma última bateria de testes. Finalizada essa etapa, o aplicativo estará disponível no Market.

E a melhor parte é o preço: grátis!
Nem propaganda coloquei.

Sem falsa modéstia, o aplicativo ficou fantástico! Ainda tem mais espaço para melhorar, mas com certeza impressionará a todos os que utilizarem. Aguardem alguns dias.

terça-feira, 1 de novembro de 2011

Agora é Android véi!

Bem, estou entrando numa nova fase. Android. O sistema operacional da Google realmente me cativou. Troquei meu Ipad por um Motorola Xoom. A melhor parte, é que diferente da Apple, eu consigo criar aplicativos pro meu tablet sem ter que comprar um MacBook ou Imac.

A linguagem utilizada pelo SDK é Java. Amado por muitos odiado por mais pessoas ainda. Eu pessoalmente, mantenho uma relação de amor e ódio, mas geralmente mais amo que odeio.

Vou tentar criar alguns posts interessantes futuramente sobre meus avanços com Android e também do meu framework pessoal. O Leonne Framework.

sexta-feira, 21 de janeiro de 2011

Clausuras Javascript

A pedido de um grande amigo, vou escrever um pouco sobre o tema.

"Eita nome feio! Deve ser difícil!". Este provavelmente é o primeiro pensamento que você teve ao ler o título.
Bem, o nome é feio, mas entender o conceito é bem...bom, é difícil mesmo. Então vamos lá.

Clausuras, se tratando de programação, são expressões (funções) que podem ter variáveis livres juntas e que possuem um ambiente que as mantêm unidas.

Ok. Começamos mal. Mas vamos simplificar. Clausuras são variáveis de uma função que na verdade são funções. Ou falando de outra forma, são funções internas de uma função que possuem escopo próprio, variáveis próprias, parâmetros próprios, mas possuem acesso ao escopo do ambiente ao qual estão contidas e podem ser acessadas de fora da função que as contêm.

No fim das contas, é difícil falar, mas é fácil implementar.

Vamos a um exemplo:

        function funcaoAmbiente(){
            variavelAmbiente = "Escopo externo";
            this.funcaoClausura1 = function(){
                alert(variavelAmbiente);
            }
            return this;
        }
       
        var teste = funcaoAmbiente();
        teste.funcaoClausura1();

Percebam três coisas importantes:
1) funcaoAmbiente foi atribuída a uma variável, e sua referência foi entendida como um objeto.
2) A função interna tem acesso ao escopo da função ambiente.
3) Foi possível, através da referência da função ambiente chamar a função interna.

Com isso, é possível simular orientação a objeto, criar callbacks, etc em Javascript. Esta técnica é largamente utilizada nas principais libs e frameworks Javascript, como por exemplo, JQuery e ExtJS.

Existe muito mais assunto para falar sobre clausuras, mas isso daria uns 10 posts. Acredito que o ponto mais importante, seria o cuidado com a utilização de escopo, pois poderia gerar (e já ví acontecendo) memory leaks terríveis.

Existe um post que eu achei que fala largamente sobre o assunto, seus benefícios e seus problemas. É este aqui.
No futuro talvez eu fale mais sobre o assunto, mas por enquanto, fiquem com essa pincelada básica.

Multas. Aahhhhhh!!!!

Eu sei que foge um pouco (tá, foge muito!) do assunto do blog, mas esse vale a pena.

Quem nunca ficou injuriado por tomar uma multa de trânsito? Eu pelo menos não fico nada feliz. Porém, toda multa cabe recurso, e existem muitos argumentos que são displicentemente (pra não dizer que não são mesmo) divulgados pelas autoridades. [modo_ironia=on]Eu não faço idéia do motivo.[modo_ironia=off]. Por exemplo, você sabia que pode recorrer da multa alegando mal funcionamento do equipamento? Basta solicitar o relatório da última inspeção pelo INMETRO. O problema é que essas inspeções costumam não estar em dia. Sem inspeção em dia, sem multa. Essas e outras dicas (inclusive modelos de recurso) podem ser encontrados nos links abaixo:

Tutorial completo de argumentos + modelos de recurso
Modelos de recurso

See you guys!!!

quarta-feira, 19 de janeiro de 2011

Programadores podem ser "felizes"

NE: Portabilidade = Característica das aplicações serem executáveis (ou facilmente recompiladas) em outras plataformas além daquela de origem.

Cara, existem muitas bizarrices no mundo. Vou falar um pouco sobre mais uma delas.

No mundo dos programadores, uma das maiores dores de cabeça é a portabilidade. E esta é uma das pricipais motivos do ambiente web ter se tornado tão popular. Aplicativos web se tornaram o modelo padrão de aplicativos. Se não é web ou simplesmente não roda num browser, todos torcem o nariz. Aplicativos desktop são encarados como coisas do passado. Mas essa mudança de pensamento (de desktop para web) não aconteceu do dia pra noite e tem tudo a ver com o assunto supra-citado.

Softwares desenvolvidos para rodar em um browser não tem que se preocupar com o Sistema Operacional do usuário. O custo com manutenção também é reduzido, já que para atualizar o software basta atualizar a versão que está rodando no servidor. Antigamente, chegava-se ao cúmulo de ter que atualizar máquina por máquina quando havia alterações. Existe muito falatório sobre Java ser multiplataforma, mas na prática não é. Dá um trabalhão compilar um projeto que foi originalmente construído em um outro SO. Isso se deve às várias JVM, às várias bibliotecas, dependências, etc, que mudam ligeiramente de uma plataforma para outra.

Para alguém que desenvolve para plataformas mobile, isso é um tormento. Existe um SDK para IPhone, um pro WebOS, um pro Maemo e por aí vai. Mas, existe luz no fim do túnel. A Nokia está investindo em uma lib C++ chamada QT (lê-se "cute") a um bom tempo e já tem algo maduro. É certo que você não vai conseguir compilar e rodar um software pra IPhone utilizando essa lib, mas já é um progresso. Você consegue criar um software realmente multiplataforma sem mudar um ponto-e-vírgula no seu código. Até onde eu sei, um app construído em QT (lembrem-se, "cute") pode rodar em Windows, Linux, Maemo, Symbian, etc, sem alterações nos fontes.

O que acontece quando um programador descobre uma linguagem realmente multiplataforma? Faz um vídeo Nerd mostrando sua inaptidão pra dança, lógico. Dá uma olhada no que a galera da TrollTech (criadores do projeto QT, hoje propriedade da Nokia) fez:




Isso sim é bizarrice. Mas devo admitir que até rí um pouco.