Mostrando postagens com marcador EXTJS. Mostrar todas as postagens
Mostrando postagens com marcador EXTJS. Mostrar todas as postagens

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.

terça-feira, 11 de maio de 2010

ExtJS. RIA em javascript

No meu último post sobre RIA eu falei um pouquinho sobre extjs (na verdade só citei o nome). Vamos falar um pouquinho sobre esta tecnologia. Primeiro, o que é. Extjs é uma framework totalmente javascript cross-browser. Ou seja, tudo que você precisa pra rodar uma app construída com ele é um browser. Ele pode ser obtido em:
-http://www.extjs.com/products/js/download.php
Exemplos:
-http://www.extjs.com/deploy/dev/examples/
Documentação:
http://www.extjs.com/deploy/dev/docs/

Como começar? Fácil. Faça download. Crie uma nova pasta no seu web-server (chame-a de "teste", se desejar). Descompacte o extjs nesta pasta. Pra ficar mais fácil referenciar, mude o nome da pasta do extjs para ext. Crie um arquivo dentro da pasta "teste" chamado index.html. Insira o código abaixo neste arquivo:

<html>
    <head>
    <title>Teste Extjs</title>
    <meta content="charset=utf-8" equiv="content-type"></meta>
    <link href="ext/resources/css/ext-all.css" rel="stylesheet"></link>
    <script src="ext/adapter/ext/ext-base.js">
    </script>
    <script src="ext/ext-all.js">
    </script>
    <script src="ext/src/locale/ext-lang-pt.js">
    </script>
   
    <script>
        Ext.onReady(function(){
            var win = new Ext.Window({
                title : "Login",
                height : 130,
                width : 300,
                layout : 'form',
                closable : true,
                modal : true
            });
            edtLogin = new Ext.form.TextField({
                emptyText: 'Digite seu Login',
                fieldLabel: 'Login',
                width:210,
                id: 'edtLogin'
            });
            edtSenha = new Ext.form.TextField({
                emptyText: 'Digite sua senha',
                fieldLabel: 'Senha',
                width:210,
                id: 'edtSenha'
            });
            btnEntrar = new Ext.Button({
                text: 'Entrar',
                handler: function(){
                    login = Ext.getCmp('edtLogin').getValue();
                    senha = Ext.getCmp('edtSenha').getValue();
                    Ext.Msg.alert('teste', 'Login: ' + login + ' Senha: ' + senha);
                }
            });
            btnLimpar = new Ext.Button({
                text: 'Limpar',
                handler: function(){
                    Ext.getCmp('edtLogin').setValue('');
                    Ext.getCmp('edtSenha').setValue('');
                }
            });
            pnlCentral = new Ext.form.FormPanel({
                region: 'center',
                frame: true,
                labelWidth: 50,
                items: [
                    edtLogin,
                    edtSenha
                ],
                buttons:[ btnEntrar, btnLimpar ]
            });
            win.add(this.pnlCentral);
            win.show();
        });
    </script>
    </head>
    <body>
        </span>
        <div id="body">
        <span style="font-weight: bold;">
        </span></div>
        <noscript><font style="font-weight: bold;">Sé funciona com javascript habilitado!</font></noscript><span style="font-weight: bold;">
    </body>
</html>

Esse pequenino código gera uma telinha de login:
Bem simples. Vale a pena destacar que esta framework é toda orientada a objetos. Dá até pra utilizar conceitos como herança ou polimorfismo. Quem conhece javascript sabe que esta não é uma linguagem OO. É isso. No futuro eu falo novamente sobre esta plataforma.

segunda-feira, 10 de maio de 2010

Tudo começa do início + RIA

Este é o primeiro blog que eu possuo. No começo é meio complicado falar sobre coisas porque temos muito o que falar, mas é difícil organizar tanta coisa em palavras. Como eu não sei por onde começar, então comaçarei por algo que eu conheço. Vamos falar de RIA:
RIA significa Rich Internet Application. Em outras palavras, são aplicações ricas para a web. Com este tipo de tecnologia é possível emular diversas funcionalidades presentes em um desktop (imaginemos o Windows pra ficar mais fácil) dentro do browser (tenham em mente o firefox). Poxa, não entendí. No problem. Vou dar um exemplo prático de algumas aplicações:

-http://qwikioffice.com/desktop-demo/login.html
-http://opensource.adobe.com/wiki/display/blazeds/BlazeDS
-http://www.wynapse.com/Silverlight/Tutor/Silverlight_Code_Samples.aspx

Este tipo de aplicação tem crescido na web. Com este crescimento, surgiram também ferramentas especializadas em construir esse tipo de aplicativo. O primeiro exemplo foi feito utilizando uma framework escrita em javascript chamada Extjs (mais informaçoes em www.extjs.com). O segundo exemplo foi feito utilizando o Adobe Flex. O terceiro foi utilizado o Micro$oftiano Silverlight. Ambos demonstram um visual muito chamativo e moderno.
Porém, RIA não se restringe a isso. Se você é desenvolvedor de sistemas, deve estar se perguntando: "Beleza. É tudo muito bonito, mas e quanto ao lado servidor? Como é que fica?". Ter uma tecnologia tão chamativa e não poder contar com um banco de dados seria puro desperdício. Mas existem bytes no fim do pacote. As duas primeiras que eu lhes apresentei possuem integração com as principais linguagens server-side. A terceira eu desconheço integração que vá além do .NET. Podemos integrar com o parrudo e nem sempre performático Java, o PHP e seus bugs, o propritaríssimo .NET e por aí vai.
Acredito que RIA tem muito a crescer ainda. Nos meus próximos posts eu vou falar um pouco mais sobre Extjs que eu já estudei profundamente.

E assim fecha meu primeiro post. Bye buddy's. See you!!!