logo
  • Home
  • Acerca
  • Autores
  • Faq
  • Rede
  Twitter   Feed-me! RSS!
Mai 13

JavaScriptMVC

Escrito por Fábio Batista da Silva em 1, 2.0, 6, action, Ajax, Aplicativos, app, AR, back, backend, BI, C#, class, classe, classes, código, Componente, Componentes, configuração, control, CRUD, css, dados, demo, Desenvolvimento, Design Patterns, development, Dica, dispatchEvent, Download, email, err, erro, error, Estilo, event, Evento, Eventos, Ferramenta, Flex, fonte, for, Formulário, formulario de contato, framework, function, gestão, git, Google, html, html5, IE, if, image, int, Java, Javascript, JQuery, label, labs, lista, map, mg, mvc, O, on, padrão, PHP, Plugin, pt, rails, RIA, Ria’s Geral, RoR, S+S, serviço, Serviços, string, tag, TAT, Tecnologia, template, Teste, tv, UI, uint, update, UX, web @ 05 13th, 2011 | via http://www.flexria.com.br/home | Sem comentários
Fábio Batista da Silva
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Olá,

Com a chegada eminente do HTML5 e outras tecnologias baseadas em javascript como MongoDB e node.js
tenho deixado o Flex o meio de lado e me dedicado um pouco mais ao javascript.
Porem fica a questão, Como ter um front-end com a mesma performance, escalabilidade e desacoplamento que o flex permite ?
Realmente nesses termos ainda não encontrei nada que me proporcione o que o Flex proporciona.

Nesse Post vou falar um pouco sobre Framework JavaScriptMVC
Me perece uma das melhores alternativas para manter um frond-end JavaScript/HTML

JavaScriptMVC é formado por uma seria de ferramentas para construção de aplicativos JavaScript e consiste nos seguintes componentes:

  • StealJS -Gestão de Dependência
  • FuncUnit – Testes Unitários
  • jQueryMX – Biblioteca de Componentes
  • DocumentJS – Geração de JSDoc

O JavaScriptMVC pode ser utilizado com qualquer back-end , java,php,rails, etc…
Ele pode ser instalado baixando diretamente aqui ou instalando cada componente individualmente atreves do github.

Os componentes devem ficar nas raiz do diretório web da sua aplicação, nesse caso a pasta public.
Então as estrutura da aplicação fica assim.

public
  /documentjs
  /funcunit
  /jquery
  /steal
  /js

O JavaScriptMVC tem ferramentas de geração de código para auxiliar na criação da aplicação.
Vamos começar criando a aplicação pelo terminal, então o JavaScriptMVC vai gerar toda a estrutura do projeto.

    cd path-to-application/public/
   ./js jquery/generate/app contacts

Assim como o rails o JavaScriptMVC possui scaffolds que podem gerar seu CRUD.
Para isso basta executar o comando scaffold passando como parâmetro o nome do modelo.
Os nomes das classes seguem o seguinte padrão : ..
então temos o model “Contacts.Models.Contact”

     ./js jquery/generate/scaffold Contacts.Models.Contact

O JavaScriptMVC vai gerar o controlador, modelos, views e testes unitários da aplicação.
Porem o único arquivo que sera incluído na aplicação é o steal.js ele é responsável por gerenciar as dependências da aplicação.
No ambiente de desenvolvimento ele vai incluir individualmente todos os controladores, modelos, etc..

 type='text/javascript'  src='../steal/steal.js?contacts,development'>>

O parâmetro “?contacts” na tag de inclusão indica o nome do arquivo de configuração que tem o mesmo nome da aplicação nesse caso contacts.js
nele ficam mapeados todas dependências do projeto que serão gerenciadas pelo StealJS
contacts/contacts.js – Arquivo de configuração

steal.plugins(
    'jquery/controller',
    'jquery/controller/subscribe',
    'jquery/view/ejs',
    'jquery/controller/view',
    'jquery/model',
    'jquery/lang/json',
    'jquery/dom/form_params')

.css('contacts')

.resources()
.models('contact')
.controllers('contact')
.views();

Depois de fazer uma refatoração a aplicação ficou assim :

contacts/view/contact/contacts.html – Tela inicial da aplicação

>
    >
        >JS - MVC>
         type='text/javascript'  src='../steal/steal.production.js?contacts'>>
    >
    >
        
 id='contacts'>
            
>Contacts>
            
 id='contact'>>
        >
    >
>

contacts/view/contact/list_view.ejs – Template para a listagem de contatos


 class="link">
     href="javascript://" class='text_button create' >Create>
    
/>
>

 class="table">
    
>
        
>
            
>Name>
            
>E-Mail>
            
> >
        >
    >
    
>
        <%for(var i = 0; i < contacts.length ; i++)%>
        
 <%= contacts[i]%>>
            
><%= contacts[i].name%>>
            
><%= contacts[i].email%>>
            
 class="last">
                 href='javascript://' class='edit'>edit>%>
    >
>

contacts/view/contact/list_view.ejs – Template para o formulario de contatos


 <%= contact%> >
    
 action="#" class="form">
        
>
             class="label">Name>
            
 type="text" class="text_field" id="name" name="name" value="<%= contact.name%>" />
             class="label">E-Mail>
            
 type="text" class="text_field" id="email" name="email" value="<%= contact.email%>" />
        >
        
 class="link">
             href="javascript://" class="text_button save">Save>
             href="javascript://" class="text_button cancel">Cancel>
        >
    >
>

contacts/models/contact.js – Classe ‘Contacts.Models.Contact’ Reponsavel pela abstração do acesso aos serviços

$.Model.extend('Application.Models.Contact',
/* @Static */

    /**
     * Service url.
     */
    url: 'http://localhost/patho-to-app/contacts/',

    /**
     * Recupera os dados dos contacts do serviço no backend.
     * @param Object params
     * @param Function success
     * @param Function error
     */
    findAll: function( params, success, error )
        $.ajax(
            url     : this.url,
            type    : 'get',
            dataType: 'json',
            data    : params,
            success : this.callback(['wrapMany',success]),
            error   : error
        );
    },
    /**
     * Cria um novo contacto
     * @param Object attrs
     * @param Function success
     * @param Function error
     */
    create: function( attrs, success, error )
        $.ajax(
            url     : this.url + 'save',
            type    : 'post',
            dataType: 'json',
            error   : error,
            success : success,
            data    : contact:attrs
        });
    }
    /**
     * Altera os dados de um contacto
     * @param String id
     * @param Object attrs
     * @param Function success
     * @param Function error
    */
    update: function( id, attrs, success, error )
        $.ajax(
            url     : this.url + 'save',
            type    : 'post',
            dataType: 'json',
            data    : contact:attrs,
            success : success,
            error   : error
        });
    },
    /**
     * Remove um contacto
     * @param String id
     * @param Function success
     * @param Function error
     */
    destroy: function( id, success, error )
        $.ajax(
            url     : this.url + 'destroy/id/'+id,
            type    : 'post',
            dataType: 'json',
            error   : error,
            success : success
        );
    },
},
);

contacts/controllers/contact_controller.js – Classe ‘Contacts.Controllers.Contact’ Responde a eventos da view e do modelo

$.Controller.extend('Contacts.Controllers.Contact',onDocument: true,

     /**
     * Função chamada quando a página é carregada
     */
     load: function()
        this.findAll();
     ,

     /**
     * Função que renderiza a listagem de contatos apartir do template /contacts/views/list_view.ejs
     * @param Array contacts
     */
     listView: function( contacts )
        $('#contact').html(this.view('list_view', contacts:contacts ));
     },

     /**
     * Função que renderiza o formulario de contatos apartir do template /contacts/views/form_view.ejs
     * @param Contacts.Models.Contact contact
     */
     formView: function(contact)
        $('#contact').html(this.view('form_view', contact:contact));
     },

     /**
     * Função que lista os contatos atraves do model e renderiza a tela quando obtem resultado
     */
     findAll: function(){
        Contacts.Models.Contact.findAll(, this.callback('listView'));
     },

    /**
     * Listener para o evento 'click' no link create
     */
    '.create click': function()
        // cria um novo contato e monta o formulario
        var contact = new Contacts.Models.Contact();
        this.formView(contact);
    ,

     /**
     * Listener para o evento 'click' no link edit
     * @param jQuery el
     */
    '.edit click': function( el )
        // Recupera o contato selecionado e monta o formulario
        var contact = el.closest('.contact').model();
        this.formView(contact);
    ,

     /**
     * Listener para o evento 'click' no link destroy
     * @param jQuery el
     */
    '.destroy click': function( el )
        if(confirm("Are you sure you want to destroy?"))
            // Recupera o contato selecionado e o remove
            var contact = el.closest('.contact').model();
            contact.destroy();
        
     },

    /**
     * Listener para o evento 'click' no link save
     * @param jQuery el
     */
    '.save click': function(el)
        // Recupera o contato selecionado
        var contact = el.closest('.contact').model();
        // Recupera os dados do formulario
        var attrs   = $('.form').formParams();
        // Atualiza os dados no "objeto"
        contact.attrs(attrs);
        // Salva
        contact.save();      	// a função save é erdada do objeto Model
                               // ela verifica se o objeto ja existe e chama o metodo create ou update
    ,

    /**
     * Listener para o evento 'click' no link cancel
     */
    '.cancel click': function()
        this.findAll();
    ,

    /**
     * Listener para o evento 'created' disparado pelo "objeto" Contacts.Models.Contact
     * @param String called
     * @param Event contact
     */
    'contact.created subscribe': function( called, contact )
        this.findAll();
    ,

    /**
     * Listener para o evento 'updated' disparado pelo "objeto" Contacts.Models.Contact
     * @param String called
     * @param Event contact
     */
    'contact.updated subscribe': function( called, contact )
        this.findAll();
    ,

     /**
     * Listener para o evento 'destroyed' disparado pelo "objeto" Contacts.Models.Contact
     * @param String called
     * @param Event contact
     */
    "contact.destroyed subscribe": function(called, contact)
        this.findAll();
     
});

Agora antes de colocar a aplicação em ambiente de produção podemos compactar todos os arquivos .js e .css gerando uma versão final.

 ./js contacts/scripts/build.js

O StealJS utiliza o Google Closure para compactar todos os arquivos
e gerar arquivos compactados/concatenados que serão usados em produção contacts/production.js e contacts/production.css .

Com isso reduzimos todos os arquivos da aplicação, estilos, plugins, etc.. são reduzidos a apenas um arquivo .js e um arquivo .css.
E para mudar as configuração do ambiente temos apelas que mudar o tag de inclusão do StealJS

<script type='text/javascript'  src='../steal/steal.production.js?contacts'>script>

Esse foi apenas uma pequena amostra do JavaScriptMVC.
Com essa estrutura ele nos permite construir grandes aplicações de forma modular
com um bom ambiente de teste, velocidade no desenvolvimento e performance no ambiente de produção.

Essa aplicação esta rodando aqui : http://flexria.com.br/labs/js-mvc/
E os fontes estão disponíveis no github : https://github.com/FabioBatSilva/js-mvc

Abraço e até a próxima…. ;-)

Abr 13

Roadmap do Flash Builder 4.5 para desenvolvimento Mobile

Escrito por Jose Carlos Fiel em 1, 4, 6, action, Actionscript, Adobe, Adobe Flex, Air, Android, api, Aplicativos, app, apple, AR, arte, BI, blog, Blogs, bug, builder 4, class, classe, classes, código, Componente, Componentes, dados, Debug, Desenvolvimento, Design, Desktop, developer, development, err, flash, flash builder, Flash Builder 4, Flash Platform, Flex, for, Google, html, html5, IE, if, image, jogo, Jogos, map, mg, mobile, O, on, opensource, Pessoal, platform, Projetos, pt, RIA, Ria’s Geral, SDK, site, SmartPhone, Sun, UI, update, UX, XP @ 04 13th, 2011 | via http://blog.josecarlosfiel.com.br | Sem comentários
Jose Carlos Fiel
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Olá pessoal!

Todo mundo já deve estar careca de saber que a Adobe já anunciou o Flash Builder 4.5 e este será lançado em Maio de 2011.

Como você pode ter visto no anuncio, nós Flex developers poderemos criar aplicativos móveis para as plataformas Android, Blackberry Tablet OS e Apple iOS.

Aí vem o porém sobre as duas últimas plataformas e que podem gerar muita confusão no lançamento do Flash Builder em Maio. A Adobe planeja lançar um update em Junho de 2011 com suporte total ao Blackberry Tablet OS e Apple iOS, sem precisar abrir seu prompt de comando favorito. O que acontece na primeira versão lançada em Maio é o suporte total ao Google Android.

Na tabela abaixo retirada do Blog oficial da Adobe, explica melhor esta situação:

*Project will actually target AIR 2.5. You will need to make a manual change to your project to enable this configuration. This will be clearly documented on the Adobe Developer Center and RIM’s developer site upon launch in May, 2011.

Há outra coisa que a Adobe lembra é que com o novo Flash Builder 4.5, você pode criar projetos usando Flex Mobile ou apenas ActionScript puro. Existem algumas diferenças entre estes projetos.
Quando você cria um novo projeto Flex Mobile, você tem direito a usar todas as funcionalidades adicionados no core do Flex SDK, onde possuem componentes específicos para Mobile, como o ViewNavigatorApplication e ViewNavigator para manipular a navegação da aplicação e persistir os dados entre as views.

Já na criação de um projeto ActionScript Mobile, você poderá apenas escrever sua aplicação usando ActionScript puro, que é muito comum no desenvolvimento de jogos, porém não poderá utilizar as classes Flex dentro deste projeto.

É importante lembrar que ambos projetos, fornecem o fluxo completo no Flash Builder para desenvolver projetos mobile através do código e no design view, podendo pré-visualizar e debuggar a aplicação no desktop ou em seu aparelho (smartphone ou tablet).

Posso dizer que está cada vez mais gratificante poder trabalhar com a Flash Platform e ter entrado de cara neste mundo em 2008. Já se passaram 3 anos e vi muita evolução por parte da Adobe, mesmo por meio dos assuntos que rolaram sobre HTML5.

Por hoje é isso e até a próxima.

Mais informações em http://adobe.ly/hH0wtn

Mar 8

Iniciando com Adobe AIR for iOS

Escrito por Leonardo França em 1, 4, 6, action, Actionscript, ActionScript 3, Actionscript 3.0, Adobe, Adobe Air, Air, Android, api, Aplicativos, app, app store, apple, AR, Artigo, Artigos, BI, builder 4, class, Componente, Componentes, Curso, Cursos, Desenvolvedor, desenvolvedores, Desenvolvimento, Desktop, development, err, Ferramenta, flash, flash builder, Flash Builder 4, Flash Platform, Flash Player, Flex, for, html, ide, IE, if, image, Iniciando, iphone, Mac, Mercado, mg, O, on, padrão, PHP, platform, player, problema, Projetos, pt, RIA, Ria’s Geral, runtime, screen, SDK, SmartPhone, state, TAT, Tema, Tutoriais, Tutorial, UI, Ved, Widget, XP @ 03 8th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



O iPhone[bb], lançado por volta de 2007, foi revolucionario em relação a experiencia do usuário e naturalmente criou-se um novo nicho de mercado para desenvolvimento de aplicações. A App Store(loja virtual onde os aplicativos da Apple[bb] são disponibilizados) já pagou mais de 2 bilhões de dolares aos seus desenvolvedores e com a chegada do iPad[bb], esse número tende a crescer muito. Então se você quer entrar nesse nicho de mercado, precisa saber do que precisa para criar seus aplicativos para rodar no sistema operacional movél da Apple[bb], o iOS(antes da chegada do iPad[bb], era simplesmente iPhone[bb] OS), no qual rodam o iPhone[bb] e iPad[bb], portanto vamos iniciando com Adobe AIR for iOS.

Antes de começar, precisamos de alguns esclarecimentos em relação a como irá funcionar seu aplicativo feito com Adobe AIR rodando no iOS. Você só podera criar aplicativos com Adobe AIR, não é possivel criar aplicativos que rodem no navegador com o Flash Player.

Você só podera criar aplicativos com Adobe AIR, não é possivel criar aplicativos que rodem no navegador com o Flash Player.

Sem Flash Player no iOS =õ(

Sem Flash Player no iOS =õ(

Com o runtime do Adobe AIR, temos o mesmo problema, não é possivel instalar o runtime do Adobe AIR da maneira que estamos acostumados a fazer no desktop ou no Android.
O que a Adobe fez foi criar uma ferramenta usando o Low Level Virtual Machine (LLVM) que permite que você converta seu aplicativo feito em Adobe AIR para um aplicativo nativo do iOS. A Adobe mudou o modo de compilação completamente para que seu aplicativo pudesse rodar no iOS, do modo JIT (Just in Time) para o AOT (Ahead-of-Time) permitindo que seu aplicativo em Adobe AIR pudesse ser convertido para um aplicativo nativo do iOS.

A Adobe mudou o modo de compilação completamente para que seu aplicativo pudesse rodar no iOS, do modo JIT (Just in Time) para o AOT (Ahead-of-Time) permitindo que seu aplicativo em Adobe AIR pudesse ser convertido para um aplicativo nativo do iOS.

LLVM é um sistema modular, o sistema compilador flexível que é amplamente utilizado em uma variedade de projetos. A principal razão que a Adobe escolheu o LLVM é a sua flexibilidade e aplicabilidade para o desenvolvimento do iOS. LLVM já é utilizado no projeto Alchemy(Alchemy = C/C++ com ActionScript 3.0).

A criação de aplicativos para iOS usando a Flash Platform só é possivel a partir do iOS 3.0 ou superior.

Ferramentas de desenvolvimento
Adobe Flash CS5 Professional – Com a atualização do Packager for iPhone, você pode a partir do Adobe Flash CS5(com o Packager for iPhone instalado), criar seus aplicativos para o iOS(iPhone/iPad), teremos um novo profile chamado “AIR for iOS”, gerando o arquivo ja com o tamanho padrão de 320×480. Por enquanto não existem componentes pré-programados para iOS e não é recomendado usar os já existentes no Flash.

Adobe Flash Builder 4 (burrito) – A Adobe disponilibizou juntamente com o Flash Builder 4 (burrito), o SDK do Flex versão 4.5, com componentes otimizados para dispositivos moveis, no entanto, esses componentes ainda estão sendo otimizados para rodarem no iOS e serão disponibilizados numa futura versão do Flash Builder, mas você pode criar tranquilamente um projeto ActionScript(usando somente ActionScript 3.0 sem o SDK do Flex) e usar o compilador por linha de comando(ADT).

Qualquer editor de texto – Você pode usar qualquer editor de texto salvando na extensão .as ou seu editor ActionScript favorito.

Distribuição
Você pode gerar o instalador do seu aplicativo pelo Flash Builder(próximas versões), Flash CS5(com o Packager for iPhone instalado) ou por linha de comando usando o ADT. É gerado um aplicativo com a extensão .ipa. A distribuição pode ser feita atraves da App Store, para se tornar um publisher da App Store, basta pagar a inscrição de 99 dolares. Acompanhe esse tutorial sobre como publicar seu aplicativo na App Store.

Acompanhe alguns tutoriais:
Developing for iOS using Flash Professional
Optimizing content for Apple iOS devices
Guide for Apple App Store submissions
Saving state in AIR applications for iOS devices
Using screen orientation APIs for smartphone application development

Nos proximos artigos, mostrarei como usar alguns recursos do AIR for iOS :D

Fev 24

Android – Configurações iniciais e “Hello, world!”

Escrito por DClick Team em 1, 4, 6, Android, Aplicativos, AR, BI, blog, class, configuração, control, Curso, Cursos, Desenvolvimento, developer, development, Dica, dll, Download, Eclipse, err, exemplo, for, Google, html, IE, image, int, Java, Linux, lista, Mercado, mg, mobile, O, on, Outros, print, processo, reference, RIA, Ria’s Geral, SDK, Segurança, ssl, Sun, TAT, Tema, Teste, tool, Tutoriais, Tutorial, Twitter, UI, uint, update, UX @ 02 24th, 2011 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

Este tutorial é o primeiro de uma série de tutoriais sobre o sistema operacional Android. Inicialmente falarei um pouco sobre o que é o android, para que os iniciantes entendam um pouco melhor o que está por trás deste Sistema Operacional que, em tão pouco tempo, conquistou uma fatia tão grande do mercado de mobiles.


O Android

É uma plataforma open source criada, como muitos devem saber, pelo Google. Mas não apenas por ele. Do desenvolvimento deste SO participou o grupo Open Handset Alliance, que conta com outros 47 grandes nomes, como: HTC, LG, Samsung, Motorola, Toshiba, Sprint Nextel, T-Mobile, Asus, Intel, e muitos outros (Mais informações sobre a OHA podem ser encontradas em: http://www.openhandsetalliance.com/).

O SO e a máquina virtual

Baseado no kernel 2.6 do Linux, o SO do Android é responsável por gerenciar a memória, os processos, segurança de arquivos e pastas e também redes e drivers. Cada aplicativo dispara um processo no sistema operacional e cada processo possui uma thread dedicada. O sistema operacional tem total controle sobre os processos e pode, se necessário, encerrá-los e reiniciá-los para liberar recursos.

A linguagem utilizada para desenvolvimento de aplicações em Android, como muitos devem saber, é Java. Mas o que poucos sabem é que o SO não possui uma JVM, e sim uma máquina virtual chamada Dalvik, otimizada para mobile.

Configuração inicial

A seguir está um tutorial passo-a-passo sobre como instalar o SDK do Android no Eclipse para que possamos começar a desenvolver para esta plataforma.

Assumirei que o Eclipse já está instalado e configurado na sua máquina. Desta forma, a primeira coisa que deve-se fazer é o download do SDK do android. Que pode ser obtido no seguinte endereço:

http://developer.android.com/sdk/index.html

Após fazer o download do SDK, extraia-o para alguma pasta do seu sistema, como “D:/Android_SDK”, por exemplo. Utilize o update manager do Eclipse para instalar os plug-ins disponíveis para o Android Development Tools (ADT) pela URL: https://dll-ssl.google.com/android/eclipse

Em seguida deve-se configurar o “caminho” para onde você salvou o SDK na guia “preferences” do seu Eclipse:

O próximo passo é instalar os pacotes do SDK disponíveis através do ADT:

Após selecionar os pacotes desejados, clique em “Install Selected” e confirme as licenças para cada um deles. O passo seguinte é instalar um AVD (Android Virtual Device) para que você possa testar seus aplicativos.

Na mesma janela do ADT, selecione a aba “Virtual Devices” , clique em “New”, configure como desejar e clique em “Create AVD”:

Em seguida teste seu AVD. Selecione-o na lista, clique em “Start…” e em seguida em “Launch”:

Parabéns! Seu Eclipse agora está configurado para que você comece a desenvolver aplicativos para Android.

Hello, World!

Agradecimentos ao @eduardohorvath pelo apoio e auxílio na estruturação do post.

Fev 16

BDD – Do que se trata?

Escrito por DClick Team em 1, 4, 6, análise, AR, arte, auto, bar, Behavior, bug, class, classe, classes, cliente, código, comunicação, cultura, demo, Desenvolvedor, Desenvolvimento, Desenvolvimento de Software, development, err, erro, exemplo, Ferramenta, for, Formação, framework, Frameworks, IE, if, int, Java, lógica, NaN, O, on, Opinião, problema, problemas, programação, Projetos, relatório, RIA, Ria’s Geral, Sem categoria, serviço, Software, Sun, TAT, Tema, Teste, Twitter, UI, Ved @ 02 16th, 2011 | via http://blog.dclick.com.br/pt/ | Sem comentários
DClick Team
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

BDD – Behavior Driven Development



BDD está ficando mais conhecido ultimamente e muitas pessoas estão adotando a prática no dia a dia de desenvolvimento. Mesmo assim BDD é tão antigo quanto o próprio TDD (Test Driven Development).
BDD nada mais é do que trazer ao código, e principalmente ao código que testa os casos de uso da aplicação, um pouco mais da lógica de negócio e do problema que está sendo resolvido no nível do usuário.

Melhorando a comunicação



Quando escrevemos algum teste unitário, normalmente damos um nome ao teste para que possamos entender os resultados quando gerarmos um relatório após a execução dos mesmos. Também damos nomes que façam sentido, para facilitar a comunicação da equipe de desenvolvimento, pois se outra pessoa da equipe precisar dar manutenção no teste, torna mais fácil a compreensão do que o teste está encarregado de testar sem que seja necessário ler muitas linhas de código.


Nos tempos atuais falamos bastante de aumentar a integração da equipe com o cliente ou a área que entende do negócio da aplicação. Também falamos em uma maior colaboração de ambas as partes no desenvolvimento de software. Para quebrar essa barreira que existe entre desenvolvimento e análise, algumas equipes empregam uma programação mais voltada a resolver os casos de uso propostos, ao invés de resolver problemas de baixo nível e compor uma aplicação final.


BDD prega que o problema que será resolvido deve estar bem claro para a parte quem entende do negócio (chamarei de cliente, mesmo que algumas vezes não seja necessariamente um cliente), e quem desenvolve a aplicação em si. Para isso são escritos casos de testes baseados nos casos de uso do sistema, e tais casos de teste usam uma linguagem comum para ambas as partes.


Como normalmente o cliente não é técnico, fica muito difícil se comunicar com ele via testes unitários em código, e fica mais difícil ainda que o cliente colabore com a melhoria e a escrita de tais testes. Porém, os testes unitários e automatizados são a melhor ferramenta do desenvolvedor para testar a aplicação e garantir que a equipe mantenha o código funcionando.


Para suportar ambas as necessidades, e implantar o BDD de fato, uma das soluções é associar o problema de cada caso de uso, a um teste unitário que irá se certificar que aquele caso de uso está sendo corretamente executado.


Por exemplo, em java podemos dar nomes a nossas classes de teste de acordo com o caso de uso que aquele teste se refere. E podemos também nomear os métodos como a execução específica daquele caso de uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class TesteDeCadastroDeUsuario {
? ?
? ? @Test
? ? public void testeDeCadastrarNovoUsuario() {
? ?
? ? ? ? // … cadastra o usuário
? ?
? ? ? ? Assert.assertTrue(“Usuário novo não foi cadastrado corretamente, “
? ? ? ? ? ? ? ? ? ? ? ? + “pois o nome está inválido.”,
? ? ? ? ? ? ? ? ? ? ? ? nomeUsuarioValido());
? ?
? ? }
? ?
}



Dessa forma quando o cliente ver o resultado dos testes e perceber que este teste falhou, ao invés de ler algo como “O serviço de usuário voltou null.”, ele conseguirá ler “No teste de cadastro de usuário, ao testar que um usuário novo está sendo cadastrado, o teste falhou pois o usuário não possui um nome válido, logo não foi cadastrado.”


Parece pouca coisa, mas para o cliente é um informação muito importante nas discussões sobre prioridade de correção de bugs e melhorias do sistema. Isso porque fica claro para o cliente quando o desenvolvedor descreve o teste exato que falhou e o cliente sabe exatamente a qual caso de teste se refere e qual o problema que está sendo resolvido. Não é informação pertinente ao cliente como que tecnicamente se corrige o problema e como que o sistema está implementado para que o erro ocorre-se, esse é o papel do desenvolvedor.

Simples e Efetivo, mas não é a Silver Bullet



Existem muitos frameworks para facilitar a empregação do BDD. Vimos aqui que mais do que um framework, BDD é uma cultura e pode ser empregado sem o uso de qualquer ferramenta, pois o importante é manter a comunicação entre os níveis técnicos diferente na mesma equipe.


Muitos correm atrás da implantação do BDD nos projetos com a esperança de que os problemas na resolução de bugs e na comunicação da equipe serão resolvidos. Isso não é verdade e seu projeto irá dar tão certo quanto ele daria antes da adoção de BDD. BDD é um mudança de comportamento na equipe onde todos devem estar empenhados na causa de melhorar a comunicação, e tentar entender os problemas de verdade que o sistema se propõe a resolver.


A mudança de comportamento tem que partir do lado do cliente também, pois é necessário a compreensão de que os erros que estão claros para ele agora, não surgiram do nada. Na verdade eles sempre estiveram presentes no sistema, só que protegidos pela barreira que impedia a comunicação entre de desenvolvimento e análise.


Espero ter sido claro, qualquer opinião sobre o assunto será bem vinda.


Por @Gust4v0_H4xx0r

Fev 4

Iniciando com Adobe AIR for Android

Escrito por Leonardo França em 1, 4, 6, action, Actionscript, Actionscript 3.0, Adobe, Adobe Air, Air, Android, api, aplicacao, Aplicativos, app, apple, AR, Artigo, Artigos, BI, blog, Blogs, builder 4, case, class, Componente, Componentes, Curso, Cursos, Desenvolvedor, desenvolvedores, Desenvolvimento, development, err, exemplo, Exemplos, Ferramenta, flash, flash builder, Flash Builder 4, Flash Platform, Flash Player, Flex, for, Google, html, ide, IE, if, image, Iniciando, iphone, labs, mg, mobile, NaN, News, newsletter, O, on, padrão, PHP, platform, player, pt, RIA, Ria’s Geral, runtime, SDK, site, SmartPhone, Tech, Tecnologia, Tema, Tutoriais, Tutorial, UI, update, Ved, Widget @ 02 4th, 2011 | via http://www.leonardofranca.com.br | Sem comentários
Leonardo França
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »



Já temos há algum tempo a possibilidade de criar aplicativos para Android com a Flash Platform, usando o Adobe AIR ou Flash Player. Além disso o Android vem se tornando a cada dia mais popular, diariamente surgem varios aparelhos cada vez mais poderosos rodando o sistema operacional do Google e a Android Market foi reformulada para facilitar os usuarios e desenvolvedores.
Um detalhe importante é que não são todas as versões do Android que suportam o Adobe AIR e o Flash Player, é necessario que o smartphone tenha o Android 2.2(Froyo) ou posterior, e as versões do AIR deve ser a 2.5 ou Flash Player 10.1.

O desenvolvimento de aplicativos com a Flash Platform para o Android só é possivel a partir do Android 2.2(Froyo) e usando Adobe AIR 2.5 e Flash Player 10.1

Ferramentas de desenvolvimento
Adobe Flash CS5 Professional – É possivel desenvolver aplicativos para Android usando o Adobe Flash CS5 Professional, na ultima versão foi adicionado um profile “AIR for Android”, gerando o arquivo ja com o tamanho padrão de 480?800. Por enquanto não existem componentes pré-programados para Android e não é recomendado usar os já existentes no Flash.

Adobe Flash Builder 4 (burrito) – A Adobe disponilibizou juntamente com o Flash Builder 4 (burrito), o SDK do Flex versão 4.5, com componentes otimizados para dispositivos moveis, para quem se recordar, a Adobe tinha um projeto de uma versão do Flex para mobile chamado “Slider”, em virtude do rápido crescimento do processamento do smartphones atuais, a Adobe decidiu juntar esse projeto ao SDK padrao do Flex.

Qualquer editor de texto – Você pode usar qualquer editor de texto salvando na extensão .as ou seu editor ActionScript favorito.

Runtime Adobe AIR
Para que seu aplicativo rode em um dispotivo com Android, é necessario que seja instalado o runtime do Adobe AIR para logo em seguida você instalar seu aplicativo.

Distribuição
Você pode gerar o instalador do seu aplicativo pelo Flash Builder, Flash CS5 ou por linha de comando usando o ADT. É gerado um aplicativo com a extensão .apk. A distribuição pode ser feita atraves da Android Market, para se tornar um publisher da Android Market, basta pagar a inscrição de 25 dolares.
Acompanhe esse tutorial sobre como publicar seu aplicativo na Android Market
Caso você crie algo para rodar no Flash Player, basta rodar pelo navegador do smartphone, a Adobe tem uma página para que você possa ver alguns sites que usam Flash Player e que foram otimizados para mobile. Acesse o Adobe Flash Showcase for Mobile

Acompanhe alguns tutoriais:
Exemplos no Adobe Labs
Advanced Android development
Creating mobile apps for Android using Flash Builder “Burrito” and Flex SDK “Hero”
Test Drive for Mobile: Style the application

Nos proximos artigos, mostrarei como usar alguns recursos do AIR for Android :D

Fev 2

Introdução ao Windows Phone 7

Escrito por Alexandre Tadashi em .NET, .Net Magazine, 1, 2009, 3d, 4, 6, Animação, Animações, Aplicativos, app, AR, arte, Artigo, auto, back, BI, Blend, blog, Blogs, botão, browser, C#, camp, case, class, Class Library, código, código fonte, configuração, control, Curso, Cursos, custom, dados, demo, Desenvolvedor, desenvolvedores, Desenvolvimento, Design, designer, developer, development, DevMedia, Diversos, Download, DRE, email, empresas, err, exemplo, explorer, expression, Expression Blend, Ferramenta, fonte, for, framework, fundo, game, Geral, git, gratuito, html, ide, IE, if, image, instalação, int, Introdução, jogo, Jogos, layout, library, Links, lista, live, Mac, menu, Mercado, mg, Microsoft, Microsoft Expression, Microsoft Silverlight, mobile, MSDN, Negócios, novidade, Novidades, O, on, pagamento, produtividade, Projetos, RIA, Ria’s Geral, RTW, silverlight, Silverlight 4, site, SmartPhone, social, Software, spark, tag, Tecnologia, Tema, tool, UI, uint, UX, Ved, Visual Studio, Visual Studio 2010, vs, web, window, windows, windows 7, XAML, Xna, XP @ 02 2nd, 2011 | via http://alexandretadashi.net/ | Sem comentários
Alexandre Tadashi
? X
  • Bookmarks

Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

More »

WP7_1

Neste artigo será apresentada uma pequena introdução ao desenvolvimento de projetos mobile com o Windows Phone 7, o Windows Phone 7 ou WP7, é o mais recente sistema operacional da Microsoft para a plataforma mobile, foi projetado para proporcionar ao desenvolvedor a criação de aplicativos com recursos interativos e ricos, seu visual é simples, agradável e moderno. Para o desenvolvimento de aplicativos para essa plataforma a Microsoft investiu praticamente no Microsoft Silverlight e no Framework XNA.

O Silverlight pode ser utilizado para diversas finalidades, mas sua força está na criação de aplicativos de negócios em geral, utilizando a plataforma .net. Além do WP7 é possível utilizar o Silverlight para criar projetos web , rodando no browser ou até mesmo criar projetos Silverlight que rodam instalados fora do browser.

O XNA é um framework completo para o desenvolvimento de games, tanto para PCs com o Windows, como para o XBOX 360 e o Windows Phone 7, é possível criar jogos com o Silverlight , mas como o XNA foi concebido com esse propósito ele tem um suporte melhor para a criação de games mais complexos.

Se você já programa em C# .net ou até em Silverlight, você poderá aproveitar e aplicar seus conhecimentos para criar aplicativos para o WP7, neste artigo será apresentado como preparar o ambiente de desenvolvimento para você iniciar a criação de aplicativos para o Windows Phone 7 com Silverlight utilizando o Visual Studio 2010 ou com o Expression Blend.

O Ambiente de desenvolvimento para o WP7 é totalmente gratuito, você poderá utilizar o Visual Studio 2010 Express, o Visual Studio é a principal IDE da Microsoft para o desenvolvimento de aplicativos para a plataforma .net, neste artigo vou usar a versão Premium do Visual Studio 2010 , mas você poderá utilizar os mesmos conceito na versão Express (gratuita).

Uma ferramenta muito interessante e com total suporte ao Windows Phone 7 é o Expression Blend 4, o Blend é uma ferramenta completa para a criação de layouts aprimorados, com suporte ao Windows Phone, nela diversas tarefas são realizadas com a ajuda do mouse, os códigos XAML são gerados automaticamente conforme você manipula visualmente o layout das telas, além de praticidade e produtividade ele também possui um emulador do Windows Phone e diversos recursos para o designer da aplicação. 

Ambiente de desenvolvimento – Windows Phone 7 Developer Tools

WP7DT

Para iniciar o desenvolvimento com o WP7 você vai precisar instalar o Windows Phone Developer Tools  RTW , ele está disponível para o Windows Vista e Windows 7, o programa inclui os seguintes aplicativos:

  • Visual Studio 2010 Express for Windows Phone
  • Windows Phone Emulator Resources
  • Silverlight 4 Tools For Visual Studio
  • XNA Game Studio 4.0
  • Microsoft Expression Blend for Windows Phone 
  •  

    Para outras informações sobre o ambiente gratuito de desenvolvimento para o WP7 clique aqui.

    Inicie a instalação do Windows Phone Developer Tools RTW, se você tiver alguma versão incompatível instalada,  o software vai alertá-lo, a primeira etapa é aceitar a licença do programa, em seguida aparecerá uma tela com o botão “Install Now”, clique  para iniciar a instalação, você poderá neste momento alterar o diretório de instalação, Figura 1, se clicar no botão Customize.

    O Windows Phone Developer Tools iniciará a instalação dos programas e você verá a tela da Figura 2 assim que a instalação de todos os programas for completada.

    Figura 1. Customizando a Instalação do Windows Phone Developer Tools

    Figura 2. Instalação concluída do Windows Phone Developers Tools

    Os programadores Visual Basic tem um Windows Phone Developers Tools específico neste link Visual Basic for Windows Phone Developer Tools – RTW.

    Criando uma aplicação no Visual Studio 2010

    Abra o Microsoft Visual Studio 2010 e clique em File->New->Project, cinco opções são apresentadas como modelos de projetos para o Windows Phone, o primeiro é o Windows Phone Application, nele temos um projeto básico com o mínimo necessário para criar uma aplicação WP7, a segunda opção é a Windows Phone Databound, que permite criar uma aplicação baseada em um modelo capaz de trabalhar com uma lista de dados e com controle de navegação,  a terceira opção é a Windows Phone Class Library, onde é possível criar uma biblioteca para o Windows Phone, em seguida temos o Windows Phone Panorama Application, que cria um projeto com um modelo de navegação muito comum no Windows Phone, onde é possível através do toque na tela andar pela aplicação e navegar em suas listas de dados e por ultimo temos o Windows Phone Pivot Application, onde está disponível um controle Pivot para ser usado na aplicação.

    vs1

    Figura 3. Tipo de projetos para Windows Phone no Visual Studio 2010

    Como o foco do artigo não é a criação de uma aplicação para o Windows Phone 7 e sim somente dar uma introdução ao desenvolvimento para a plataforma, vamos criar um projeto do tipo Windows Phone Panorama Application e modificar somente em dois pontos e em seguida visualizar as alterações.

    No código fonte da aplicação (XAML), vamos modificar o título da aplicação e o cabeçalho do primeiro item do controle panorâmico, localize o controle  Panorama e modifique o parâmetro Title para um nome qualquer, em seguida faça o mesmo com a propriedade Header do controle PanoramaItem, veja a Figura 4.

    FontePanorama 

    Figura 4. Modificando o fonte do projeto Windows Phone Panorama Application

    Agora clique no play do Visual Studio 2010 para executar a aplicação e visualizar o emulador do Windows Phone 7, Figura 5 e 6.

    emuladorVS

    Figura 5. Executando a aplicação no emulador do Windows Phone 7

    Emulador 

    Figura 6. Emulador do Windows Phone 7 no Visual Studio 2010

    Abrindo a aplicação no Expression Blend 4

    O Expression Blend é um aplicativo que auxiliar na parte gráfica da aplicação, com ele temos uma ferramenta gráfica e com recursos específicos para essa finalidade, um bom exemplo e a criação de animações em sua aplicação, vamos supor que você queira animar um determinado elemento, seja uma imagem ou um botão, por exemplo,a vantagem de utilizar o Blend nesta tarefa é a possibilidade de gravar toda a animação na tela e ele automaticamente gera todo o código XAML, poupando dezenas de linhas de códigos que seriam digitadas no Visual Studio 2010.

    O Microsoft Expression Blend for Windows Phone é um dos aplicativos instalados pelo Windows Phone Developers Tools, existe também uma versão para uso do Silverlight  que é a que estou usando neste artigo, chamada de Expression Blend 4, que faz parte do pacote do Expression Studio 4, integrado com o Visual Studio 2010 e que também funciona para programar para o Windows Phone 7.

    Saiba mais sobre o Expression Studio 4 neste artigo da .net Magazine.

    O Expression Blend é integrado ao Visual Studio 2010, basta clicar no seu projeto com o botão direito do mouse e clicar em Open in Expression Blend, Figura 7, qualquer modificação feita nas ferramentas já é atualizado na outra assim que uma é acionada.

    Figura 7. Emulador do Windows Phone 7 no Visual Studio 2010.

    eb

    Figura 8. Expression Blend 4.

    App Hub

    Os aparelhos com o Windows Phone 7 ainda não chegaram ao Brasil, o jeito é aguardar ou adquirir um aparelho importado, depois que você já preparou o ambiente de desenvolvimento e já está desenvolvendo aplicativos com a tecnologia Silverlight ou XNA, você vai querer testar o aplicativo no próprio aparelho e ainda começar a ganhar dinheiro enviando sua aplicação para o Windows Phone Marketplace, o Windows Phone Marketplace é onde você pode testar e comprar aplicativos, jogos, músicas para o seu Windows Phone 7.

    O Windows Phone Marketplace já está aberto para que os desenvolvedores possam enviar seus aplicativos, para que você possa criar aplicações e vender no Marketplace você vai precisar desbloquear o equipamento e criar uma conta no site App Hub, vamos ver agora passo a passo como realizar esse procedimento.

    1. Acesse o site http://create.msdn.com/en-US .
    2. Clique em Sig-in .
    3. Entre com o seu Window Live ID .
    4. Selecione o tipo de conta: Company (Empresas), Individual (desenvolvedor individual) ou Student (estudante que participa do projeto DreamSpark) .

    As contas do tipo Company e Individual tem um custo anual de $99, se você é estudante, participe do projeto DreamSpark, atualmente o Dreamspark é a única forma de participar do App Hub sem custos, no meu caso eu selecionei um conta de desenvolvedor individual.

    Figura 8. Tipo de conta no App Hub

    5. O próximo passo é digitar algumas informações pessoais como nome, endereços e email, no campo Publisher Name, você informará o nome que aparecerá no Windows Phone Marketplace.
    6. Selecione a imagem que será apresentada quando você participar de fóruns do App Hub.

    Figura 9. Imagem que será apresentada nos fóruns.

    7. Se você não selecionou o tipo Student (Dreamspark), será necessário pagar uma taxa anual para enviar aplicativos para o Windows Phone Marketplace, está disponível atualmente o pagamento via cartão de crédito VISA e MASTERCARD.

    8. A última etapa e a confirmação do email e de sua identidade, no caso da conta individual, ambos são feitos por e-mail. Você receberá uma e-mail alguns dias após o cadastro para validar a sua identidade, no caso de desenvolvedor individual é necessário enviar uma cópia da sua carteira de motorista ou passaporte.

    Figura 10. Conclusão do cadastro no App Hub.

    Na página do App Hub, no link Devices, aparecerão os aparelhos que você vai desbloquear e poderá realizar o deploy no Visual Studio 2010 antes de publicar no Windows Marketplace. 

    Zune

    O Zune é o software que irá fazer a sincronização da sua aplicação no Visual Studio 2010 e o equipamento, para mais informações sobre o Zune veja no blog do MSDN.

    Faça o Download da última versão do Zune no site oficial.

    Desconecte o seu aparelho do computador, caso esteja conectado, feche todos os aplicativos abertos e inicie a instalação, a primeira etapa é aceitar a licença do ZUNE, em seguida o software é instalado. Quando você receber a mensagem de “INSTALAÇÃO DO SOFTWARE DO ZUNE CONCLUÍDA”, clique em fechar, uma tela será apresentada com as etapas de configurações do ZUNE, a primeira configuração e a tela abaixo onde você vai inserir o nome que o equipamento vai ter no software do ZUNE, no equipamento e no site.

    Figura 11. Nome do telefone no ZUNE

    Conecte o seu celular via USB e deixe o windows realizar a instalação dos drivers, agora você já tem o seu aparelho sincronizado com o ZUNE.

    Figura 12. Dados do aparelho sincronizado

    Registrando o aparelho no Windows Phone Developer

    Este é o último passo antes de você iniciar o deploy com o Visual Studio 2010 e enviar sua aplicação ao Marketplace, vamos agora registrar a conta como desenvolvedor, no menu iniciar do Windows, localize o menu Windows Phone Developer Tools e clique em Windows Phone Developer Registration.

    Figura 13. Registro de desenvolvedor

    Deploy no Visual Studio 2010

    No menu do Visual Studio 2010, localize o combo onde está escrito Windows Phone 7 Emulator e altere para Windows Phone 7 Device, selecione o projeto no Solution Explorer do Visual Studio com o botão  direito do mouse e clique em deploy. O Zune deverá sempre estar ativo para realizar a sincronização com o equipamento.

    Deploy

    Figura 14. Deploy no Visual Studio 2010

    Conclusão

    imagesCAZ3EAMH

    Com a evolução dos aparelhos de celulares e smartphones, o mercado mobile está crescendo assustadoramente a cada ano, os novos equipamentos estão recheados de novos recursos e com isso a necessidade de que tenha um sistema operacional capaz de aproveitar ao máximo tudo que as novas tecnologias estão oferecendo, é neste cenário que a Microsoft apresenta o seu Windows Phone 7.

    O Windows Phone Marketplace está recheado de aplicativos e games, o potencial do sistema operacional da Microsoft é muito positivo, particularmente eu acho o sistema operacional fantástico e de incrível liberdade de desenvolvimento para os desenvolvedores .net, principalmente pela produtividade e pelo fato de aproveitar os conhecimentos já adquiridos em C#, Visual Basic, XNA e Silverlight, enquanto o Windows Phone ainda não está disponível aqui no Brasil , podemos criar aplicações com as ferramentas gratuitas da Microsoft.

    Links Interessantes:

    WP7_fundohttp://winphoneblog.com.br/ 

    http://channel9.msdn.com/Series/Windows-Phone-7-Development-for-Absolute-Beginners

    http://www.devmedia.com.br/post-17986-Windows-Phone-7-e-Silverlight-4.html

    http://www.charlespetzold.com/phone/

    http://www.devmedia.com.br/post-18740-Animacoes-no-Windows-Phone-7.html

    http://blogs.msdn.com/b/jpclementi/archive/2011/02/02/links-mais-importantes-para-o-windows-phone-7.aspx?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+clementi+%28Falando+de+novidades+e+tecnologias+Microsoft%29

    http://www.microsoft.com/showcase/en/us/related?video=bda22419-a49e-4ef6-973d-f9c6d59aa525

    FAQ

    Jan 12

    Criando uma aplicação com Flex 4, Java e Blazeds

    Escrito por Pablo Souza em 1, 2009, 3d, 4, 6, Access, Adobe, Adobe Flex, app, AR, auto, back, bar, BI, Blazeds, blog, botão, browser, builder 4, class, código, Componente, Componentes, comunicação, configuração, control, Curso, Cursos, dados, Data Service, Data Services, DataGrid, Desenvolvimento, Design, developer, development, dispatch, Diversos, Download, DRE, dynamic, Eclipse, email, err, event, Evento, exemplo, Exemplos, Ferramenta, flash, flash builder, Flash Builder 4, Flex, Flex 4, fonte, fonts, for, Formação, Formulário, frontend, function, git, handle, html, ide, IE, if, image, instalação, int, interface, Java, kit, label, layout, library, lista, map, menu, Messaging, mg, MXML, NaN, novidade, Novidades, O, on, Oracle, pattern, pt, Remoting, RIA, Ria’s Geral, server, serviço, Serviços, servidor, site, spark, string, Sun, tag, TAT, Tech, Tema, TextInput, UI, web, window, windows, XML @ 01 12th, 2011 | via http://rectius.com.br/blog | 2 comentários
    Pablo Souza
    ? X
    • Bookmarks

    Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

    Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

    Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

    More »

    Hoje vou mostrar a integração de aplicações Flex 4 com back-end Java, utilizando o Blazeds para comunicação entre eles. Durante a instalação e configuração do ambiente de desenvolvimento, estamos considerando que você está trabalhando numa máquina com Windows. Caso não seja este o caso não fique preocupado, basta repetir os mesmos passos descritos para o Windows adaptando para o sistema operacional que você estiver utilizando.

    1. Instalações

    - Download Java Development Kit (JDK6), e após configurar a váriavel de sistema JAVA_HOME.
    - Download Eclipse IDE for Java Developers.
    - Download BlazeDS Turnkey, contêm uma versão configurada do servidor Tomcat e diversos exemplos.
    - Download Adobe Flash Builder 4, versão Standalone.

    2. Instalando o BlazeDS

    Após o download do BlazeDS descompacte-o num diretório de sua preferência:
    C:blazeds

    * Nesse momento você já deve ter instalado o JDK e confgurado a variável JAVA_HOME.

    Para verificar se tudo está funcionando vamos iniciar o servidor Tomcat.

    Abra um prompt do Windows e digite:
    cd C:blazedstomcatbin

    Em seguida inicie o servidor Tomcat:
    catalina start

    Após a inicialização do servidor, você verá a janela abaixo:

    O servidor de aplicação foi inicializado na porta 8400. Como eu disse anteriormente, o BlazeDS Turnkey vem com uma série de aplicações de exemplo mostrando a integração entre o Adobe Flex e o Java.

    Para verificar se o servidor está rodando corretamente e ver as aplicações que citei, digite num browser de sua preferência:
    http://localhost:8400/

    3. Instalando o Eclipse

    Após o download do Eclipse, descompacte o conteúdo do arquivo compactado para uma pasta um diretório de sua preferência:
    C:eclipse

    * Assim como o BlazeDS, o Eclipse também não necessita de instalação. Basta descompactá-lo para utilizar.

    4. Instalando o Flash Builder 4

    Para a instalação do Adobe Flash Builder 4 basta você ir avançando as opções, sempre mantendo os valores padrões. A versão Standalone é uma versão Trial que dura 60 dias. No site da Adobe você pode obter gratuitamente uma licensa de utilização caso você se enquadre nas exigências legais (estudantes, profissionais autônomos, etc).

    5. Criando o projeto Java

    Abra a pasta onde você descompactou o Ecplise e execute-o:
    C:eclipseeclipse.exe

    Em seguida vamos criar nosso projeto Java. Clique em:
    File > New > Dynamic Web Project

    Agora vamos criar um bean que será usado na serialização das informações que serão trocadas entre o Adobe Flex e o Java.

    Clique com o botão direito do mouse no projeto e então:
    New > Class

    A seguir a implementa da nossa classa Java bean Usuario.java:

    package br.com.rectius.model;
    ?
    import java.io.Serializable;
    ?
    public class Usuario implements Serializable {
    ?
    	/**
    	 *
    	 */
    	private static final long serialVersionUID = 1L;
    ?
    	private String nome;
    	private String email;
    	private String cargo;
    ?
    	public void setNome(String nome) {
    		this.nome = nome;
    	}
    	public String getNome() {
    		return nome;
    	}
    ?
    	public void setEmail(String email) {
    		this.email = email;
    	}
    	public String getEmail() {
    		return email;
    	}
    ?
    	public void setCargo(String cargo) {
    		this.cargo = cargo;
    	}
    	public String getCargo() {
    		return cargo;
    	}
    ?
    }

    Agora vamos criar nossa camada de serviço, que será o ponto de entrada das requisições do nosso front-end Flex.

    Clique novamente com o botão direito do mouse sobre o projeto e então:
    New > Class

    A seguir a implementação da nossa camada de serviço UsuarioService.java:

    package br.com.rectius.service;
    ?
    import java.util.ArrayList;
    ?
    import br.com.rectius.model.Usuario;
    ?
    public class UsuarioService {
    ?
    	/*
    	 * Como não estamos utilizando nenhuma ferramenta
    	 * para persistência dos dados, vamos armazenar
    	 * a informações nessa lista estática
    	 */
    	private static ArrayList<Usuario> listaUsuarios =
    		new ArrayList<Usuario>();
    ?
    	/*
    	 * Insere um novo usuário
    	 * @param usuario
    	 */
    	public void insereUsuario(Usuario usuario)
    	{
    		listaUsuarios.add(usuario);
    	}
    ?
    	/*
    	 * Retorna todos os usuários
    	 * @return
    	 */
    	public ArrayList<Usuario> listaUsuarios()
    	{
    		return listaUsuarios;
    	}
    ?
    }

    Pronto! Nossa aplicação Java já está finalizada.

    6. Configurando o BlazeDS

    Para que o Adobe Flex possa se comunicar com nossa camada de serviço no Java, teremos que modificar alguns arquivos de configuração do BlazeDS.

    Abra a pasta onde você descompactou o BlazeDS:
    C:blazeds

    Crie um nova pasta chamada:
    C:blazedsBlazedsConfigBase

    Localize agora o arquivo blazeds.war e descompacte-o na pasta que acabamos de criar:
    Arquivo: C:blazedsblazeds.war
    Pasta: C:blazedsBlazedsConfigBase

    Veja o contéudo da pasta C:blazedsBlazedsConfigBase>:
    C:blazedsBlazedsConfigBaseMETA-INF
    C:blazedsBlazedsConfigBaseWEB-INF

    * A pasta WEB-INF contém toda a informação necessária para a integração de um projeto Adobe Flex + Java + Blazeds.

    Agora vamos copiar algumas pastas do BlazeDS para dentro nosso projeto Java. Localize a pasta:
    C:blazedsBlazedsConfigBaseWEB-INF

    Copie o arquivo e os diretórios abaixo para WebContentWEB-INF, dentro do Eclipse:
    C:blazedsBlazedsConfigBaseWEB-INFweb.xml
    C:blazedsBlazedsConfigBaseWEB-INFflex
    C:blazedsBlazedsConfigBaseWEB-INFlib

    A pasta lib contém todas as biliotecas necessárias para realizar a comunicação do Adobe Flex com o Java.
    A pasta flex contém os arquivos de configuração necessários para estabelecer essa comunicação.

    Nesse momento a estrutura do seu projeto deve estar como na imagem abaixo:

    Agora vamos configurar nossa aplicação para que o Flex consiga se comunicar com o nosso projeto Java.

    Dentro do Eclipse localize e abre o arquivo:
    WebContentWEB-INFweb.xml

    Configure-o conforme a seguir:

    <?xml version="1.0" encoding="UTF-8"?>
    DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    ?
        <display-name>BlazeDSdisplay-name>
        <description>BlazeDS Applicationdescription>
    ?
        -- Http Flex Session attribute and binding listener support -->
        <listener>
            <listener-class>flex.messaging.HttpFlexSessionlistener-class>
        listener>
    ?
        -- MessageBroker Servlet -->
        <servlet>
            <servlet-name>MessageBrokerServletservlet-name>
            <display-name>MessageBrokerServletdisplay-name>
            <servlet-class>flex.messaging.MessageBrokerServletservlet-class>
            <init-param>
                <param-name>services.configuration.fileparam-name>
                <param-value>/WEB-INF/flex/services-config.xmlparam-value>
           init-param>
            <load-on-startup>1load-on-startup>
        servlet>
    ?
    -- begin rds
    end rds -->
        <servlet>
            <servlet-name>RDSDispatchServletservlet-name>
    		<display-name>RDSDispatchServletdisplay-name>
            <servlet-class>flex.rds.server.servlet.FrontEndServletservlet-class>
    		<init-param>
    			<param-name>useAppserverSecurityparam-name>
    			<param-value>falseparam-value>
    		init-param>
            <load-on-startup>10load-on-startup>
        servlet>
    ?
        <servlet-mapping id="RDS_DISPATCH_MAPPING">
            <servlet-name>RDSDispatchServletservlet-name>
            <url-pattern>/CFIDE/main/ide.cfmurl-pattern>
        servlet-mapping>
    ?
        <servlet-mapping>
            <servlet-name>MessageBrokerServletservlet-name>
            <url-pattern>/messagebroker/*
        
    ?
        
            index.html
            index.htm
        
    ?
        
        
    ?
    

    Ainda dentro do Eclipse localize e abra o arquivo:
    WebContentWEB-INFflexremoting-config.xml

    Dentro desse arquivo é que informamos quais os serviços que nosso front-end Flex poderá ter acesso. Para tal basta criar um novo destino para cada serviço.

    Crie um destino para o serviço UsuarioService adicionando no arquivo remoting-config.xml o código abaixo:

        <destination id="UsuarioService">
        	<properties>
        		<source>br.com.rectius.service.UsuarioServicesource>
        	properties>
        destination>

    Pronto! O projeto Java já está configurado para trabalhar com o BlazeDS.

    7. Publicando nossa aplicação no Tomcat

    Já terminamos o projeto Java e a configuração do BlazeDS. Agora o próximo passo é publicar o projeto no servidor de aplicações Tomcat.

    Navegue até a pasta:
    C:blazedstomcatwebapps

    Crie uma pasta para o projeto Java:
    C:blazedstomcatwebappsGerenciaUsuario

    Agora dentro do Eclipse, clique sobre a pasta WEB-INF e a copie Edit > Copy.

    Cole então seu conteúdo na pasta que criada no passo acima:
    C:blazedstomcatwebappsGerenciaUsuario

    Agora reinicie o servidor de aplicação Tomcat para subir o projeto que acabamos de fazer deploy:
    catalina stop
    catalina start

    08. Criando o projeto Flex

    Uma das novidades do novo ambiente de desenvolvimento Adobe Flex, o Flash Builder 4, é sem dúvidas os recursos de conexão a dados e serviços.
    No passo 4 nós fizemos a instalação do Flash Builder 4. Agora localize seu ícone na área de trabalho ou no menu iniciar e abra o aplicativo.

    Em seguida crie um novo projeto Flex. Clique em File > New > Flex Project

    Agora faça suas configurações conforme a imagem abaixo:

    Root folder: Representa o diretório onde fizemos o deploy do nosso projeto Java, dentro do servidor de aplicação.
    Root URL: Representa a URL de acesso ao projeto no servidor de aplicação.
    Context root: Representa o nome da nossa aplicação.
    Output folder: Representa o local onde serão compilados os arquivos do Flex.

    Clique em Validate Configuration para se certificar de que você configurou tudo corretamente e em seguida clique em Finish.

    Antes de qualquer coisa vamos conferir se o Flash Builder inseriu corretamente um parâmetro de compilação no projeto Flex.

    Clique com o botão direito do mouse no projeto Flex, clique em Properties e certifique-se de que o argumento de compilação -services foi inserido:

    Agora vamos criar a interface. Digite o código abaixo:

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
    			   xmlns:s="library://ns.adobe.com/flex/spark"
    			   xmlns:mx="library://ns.adobe.com/flex/mx">
    ?
    	<s:controlBarContent>
    		<s:Label text="Gerenciamento de Usuários"
    				 fontWeight="bold" fontSize="18"/>
    	s:controlBarContent>
    ?
    	<s:layout>
    		<s:VerticalLayout
    			horizontalAlign="center" verticalAlign="middle"
    			paddingLeft="10" paddingRight="10" paddingBottom="20" paddingTop="20"/>
    	s:layout>
    ?
    	<s:Panel title="Cadastro de Usuários" width="500">
    ?
    	s:Panel>
    ?
    	<s:Panel width="500" height="100%" title="Listagem de Usuários">
    		<mx:DataGrid id="dgUsuarios" left="20" right="20" bottom="20" top="20">
    		mx:DataGrid>
    	s:Panel>
    ?
    s:Application>

    09. Conectando a aplicação Adobe Flex ao Java

    Em seguida vamos utilizar os novos recursos inseridos no Flash Builder 4 para se comunicar com o Java.

    Clique em Windows > Data/Services. Após a aba correspondente se abrir clique em Connect to Data/Service….

    Veja que alguns arquivos foram criados automaticamente:

    Clique com o botão direito em qualquer ponto da sua Application (não clique nos componentes Panel ou qualquer outro que não seja a Application) e clique em Generate Service Call:

    Em seguida selecione o método listaUsuarios():

    Vá para o modo de visualização “Source” e veja que um método handler foi criado para manipular o evento CreationComplete da Application.

    Agora volte para o modo “Design”, clique com o botão direito no componente DataGrid e em seguida clique em Bind to Data…

    Clique no botão OK e veja o resultado:

    Finalizamos o código para a listagem dos usuários. Agora precisamos fazer o código que vai inserir os usuários.

    Novamente clique com o botão direito do mouse no componente DataGrid e então clique na opção Generate Details Form…

    Arrume o posicionamento do formulário de cadastro, altere o label do botão. Em seguida clique com botão direito do mouse sobre o botão e Generate Service Call…

    Agora altere o método button_clickHandler que foi gerado automaticamente:

    protected function button_clickHandler(event:MouseEvent):void
    {
    	var usuario:Usuario = new Usuario();
    	usuario.email = emailTextInput.text;
    	usuario.nome = nomeTextInput.text;
    	usuario.cargo = cargoTextInput.text;
    	insereUsuarioResult.token = usuarioService.insereUsuario(usuario);
    }

    Com isso já conseguimos inserir usuários na coleção do back-end Java. Agora vamos modificar nosso código para que toda vez que um usuário for inserido os usuários sejam listados novamente no componente DataGrid.

    Agora altere o método insereUsuarioResult_resultHandler:

    protected function insereUsuarioResult_resultHandler(event:ResultEvent):void
    {
    	listaUsuariosResult.token = usuarioService.listaUsuarios();
    }

    Agora rode sua aplicação e veja o resultado final.

    Pronto! A aplicação está rodando perfeitamente.
    Como lição de casa, faça com que seja possível remover e alterar um usuário.

    Fontes do projeto:

    Download do projeto Flex (28 KB)
    Download do projeto Java (3.67 MB)

    Referências:
    - Accessing data services overview

    Espero que tenham gostado e até a próxima!

    Dez 28

    Adobe Certified Expert!

    Escrito por Mauro Martins em .NET, 1, 3d, 4, 6, Adobe, Adobe Certified Expert, AR, bar, BI, Blazeds, blog, certificação, class, Componente, Desenvolvimento, Design, Design Pattern, Design Patterns, development, email, event, Experiências, facebook, Flash / Flex, Flex, Flex 2, Flex 4, Flex4, for, framework, gmail, Google, html, ide, IE, if, image, linkedin, Links e sugestões, live, map, mg, O, on, Partilha, pattern, PHP, Ria’s Geral, Software, TAT, Twitter, UI, XP @ 12 28th, 2010 | via http://imauro.com/blog/ | Sem comentários
    Mauro Martins
    ? X
    • Bookmarks

    Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

    Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

    Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

    More »

    ACE Flex 2 Adobe Certified Expert!

    Olá a todos!

    Para os mais distraídos, há cerca de uma semana coloquei, do lado direito do blog, um logótipo do qual me orgulho muito. É o logótipo que é atribuído a todos os profissionais que possuem o título de Adobe Certified Expert.

    Esta certificação deu-se, depois de ter completado, com sucesso, o exame da Pearson Vue sobre Flex 4.

    Em termos de partilha de experiência, posso-vos dizer que o exame é difícil e que toca em bastantes pontos do desenvolvimento nesta plataforma.

    As questões que nos são colocadas no exame vão desde o simples nome de uma propriedade de um componente, passando por casos de utilização ou não de certos tipos de design patterns, até a questões sobre BlazeDS, Adobe Live Cycle e consequentemente questões sobre model-driven development.

    No meu caso, quando achei que estava na hora de obter a certificação, marquei logo o exame e dediquei cerca de dois meses a estudar a plataforma / framework e todos os seus pequenos detalhes. De forma a estar mais confortável no exame, comprei o software Attest 3 que tenta simular o ambiente de exame real e que se revelou essencial para o resultado final.

    Esta foi, sem dúvida, a forma ideal de acabar 2010 icon smile Adobe Certified Expert!

    Qualquer dúvida que tenham e esclarecimento que precisem sobre as certificações de Adobe Certified Expert, coloquem-nas aqui que tentarei responder o melhor que sei!

    Bom 2011, Mauro.

    • Blog this on Blogger
    • Subscribe to the comments for this post?
    • Digg this!
    • Share this on Facebook
    • Email this via Gmail
    • Share this on LinkedIn
    • Email this to a friend?
    • Stumble upon something good? Share it on StumbleUpon
    • Tweet This!



    Dez 23

    Parsing de XML no IPhone

    Escrito por DClick Team em 1, 2.0, 4, 6, Access, api, Aplicativos, app, apple, AR, arte, BI, blog, busca, class, classe, classes, código, comparação, dados, demo, Desenvolvedor, Desenvolvimento, developer, development, Download, err, Estilo, event, Evento, Eventos, exemplo, Ferramenta, filtra, Flex, for, Google, how-to, html, ide, IE, if, image, int, Introdução, iphone, library, Mac, mg, O, object model, on, padrão, problema, problemas, procura, reference, referencia, relatório, Relatórios, rest, RIA, Ria’s Geral, SDK, serviço, Serviços, Software, string, TAT, Tema, Touch, tv, Twitter, UI, uint, UX, validação, Ved, vs, web, web 2.0, XML, XP @ 12 23rd, 2010 | via http://blog.dclick.com.br/pt/ | Sem comentários
    DClick Team
    ? X
    • Bookmarks

    Blinkbits BlinkLists BlogLines Blogmarks Buddymarks CiteULike Co.mments Del.icio.us Digg Diigo

    Fark Feed Me Links Furl Google Linkagogo ma.gnolia Mister Wong Newsvine Propeller Rawsugar

    Reddit Rojo Simpy Sphinn Spurl Squidoo StumbleUpon Tailrank Technorati Yahoo

    More »

    Introdução

    Fazer parsing de uma estrutura de dados como o XML é muito comum no desenvolvimento de aplicativos web, a maior parte dos sistemas desenvolvidos com o conceito de Web 2.0 implementam uma api de serviços para que o desenvolvedor possa utilizar e criar novos aplicativos, sub programas, relatórios e etc.

    Estas API’s de serviços trabalham na maioria das vezes com formato de dados universais, como por ex, o JSON e XML. Portanto uma terefa comum quando estamos desenvolvendo um aplicativo “client” para estes serviços é interpretar estes dados para utilizar do modo desejado no software.

    Existem diferentes modos de trabalhar com documentos XML’s e diferentes ferramentas para isso. Neste post vamos ver como isso funciona no desenvolvimento para IPhone.

    Como funciona o parsing de XML?

    Existem dois modos para fazer parsing de um documento XML, e muita diferença entre eles. Entender como cada modo funciona é fundamental para que esta tarefa não se torne um problema no seu projeto.

    SAX ( Sequencial Access Parser )

    Como o nome sugere, o parser que implementa o SAX irá fazer uma analise sequencial na estrutura do xml, o que isso quer dizer? Cada elemento do XML será analisado individualmente e em sequencia. Ele é baseado em um fluxo de eventos que são disparados para cada elemento do XML.

    Exemplo

    Dado o XML abaixo:

    PLAIN TEXT
    XML:

    1. <?xml version=“1.0″ encoding=“UTF-8″?>
    2. param=“value”>
    3. ? ? >
    4. ? ? ? ? Some Text
    5. ? ? >
    6. >

    A sequência que o parser irá fazer é a seguinte:

    • Começo de um novo elemento, chamado RootElement, com o atributo param = “value”
    • Começo de um novo elemento, chamado FirstElement
    • Um nó de texto com o data igual a “Some Text”
    • Final do elemento chamado FirstElement

    Quando utilizar?
    Este tipo de parser é recomendado quando o tamanho do documento é muito grande ( algo em torno de 10MB ) e você pretende utilizar somente uma pequena parte do XML, pois ele não carrega o conteúdo do documento em memória ( isso acontece com os parser que implementam DOM ), porém o trabalho de desenvolvimento é maior.

    DOM ( Document Object Model )
    O parser que implementa o XML DOM, possibilita você acesse qualquer elemento diretamente sem a restrição de seguir uma seqüência baseado na hierarquia do XML.

    Normalmente os parsers que implementam o modelo DOM também permitem que você defina a consulta no xml através de XPath. Isso torna muito mais fácil a maneira de filtrar ou agrupar os elementos do XML.

    Para aqueles que estão acostumados a trabalhar com o flex, a maneira como o sdk lida com XML é através da implementação DOM, e a linguagem de busca dentro do XML é o E4X, portanto a curva de aprendizagem para aprender XPath será menor.

    Para que o parser possa interpretar as consultas XPath e navegar de modo trasnversal entre os elementos para encontrar o critério de busca, o XML é carregado em memoria e transformado em uma estrutura de dados que facilita este tipo de tarefa. O ponto ruim disso é que em documentos grandes esta abordagem pode ocasionar problemas.

    Exemplo

    Dado o xml abaixo:

    PLAIN TEXT
    XML:

    1. <?xml version=“1.0″ encoding=“UTF-8″?>
    2. param=“value”>
    3. ? ? >
    4. ? ? ? ? />
    5. ? ? >
    6. >

    E o seguinte trecho de código:

    O exemplo de código abaixo utiliza a biblioteca GDataXML para manipulação DOM do XML, está biblioteca é distribuida pela Google.

    O método [doc nodesForXPath:@"//item":nil] irá percorrer todos os elementos do XML procurando pelos nós do tipo .

    Quando utilizar?
    O parser que implementa o XML DOM deve ser utilizado em documentos que não irão comprometer a memória ( algo menor que 10MB ), já que o gerenciamento de memoria no desenvolvimento de IPhone é um ponto que deve ser considerado. A manipulação de XML com DOM é muito mais fácil do que com SAX, uma vez que o acesso é direto.

    Quais bibliotecas utilizar?

    Existem várias bibliotecas que fazem parsing de XML, as mais conhecidas são:

    • NSXMLParser É um SAX parser incluido por padrão no SDK do IPhone.
    • libxml2 Este é um projeto Open Source que também é incluido por padrão no SDK do IPhone, ele é baseado na linguagem C, portanto é um pouco mais complicado de usar se comparado com o NSXMLParser. Esta biblioteca suporta tanto o modo SAX quanto DOM. O processamento SAX desta biblioteca é muito interessante pois permite que você faça a leitura/manipulação do XML durante o download, evitando o tempo que demoraria para baixar o documento todo.
    • TBXML é um parser DOM XML muito leve desenvolvido para ser  muito rapido e consumir o minimo de memoria possível. Ele ganha tempo pois não faz validação, não da suporte ao XPath e possibilita somente acesso de leitura ao conteúdo do XML.
    • TouchXML é um parser com mesmo estilo do NSMXL porem com DOM XML. Do mesmo modo que o TBXML ele permite acesso somente de leitura, entretanto possui suporte para XPath.
    • KissXML muito similar ao TouchXML, inclusive foi feito com base no mesmo, entretanto possibilita edição do conteúdo do XML.
    • GDataXML este parser é desenvolvido pela  Google como part de sua biblioteca Objectve-c. Ele suporta leitura e escrita , e também da suporte a XPath

    Conclusão

    O importante é ter em mente quais são as opções e modos de fazer o parcing do XML na sua aplicação, entender quais são as métricas que o ambiente da aplicação possui e leva-las em conta na decisão de como fazer o parsing. Estas métricas irão te encaminhar a uma das opções.

    O link a seguir possui um conteudo complementar ao tema, e também apresenta uma comparação entre todas as ferramentas analisando performace e utilização de memória, vale a pena dar uma olhada: link

    Referencias:

    http://www.raywenderlich.com/553/how-to-chose-the-best-xml-parser-for-your-iphone-project
    http://stackoverflow.com/questions/406811/iphone-development-xmlparser-vs-libxml2-vs-touchxml
    http://www.saxproject.org/
    http://en.wikipedia.org/wiki/Simple_API_for_XML
    http://www.w3schools.com/Dom/dom_parser.asp
    http://www.w3schools.com/XPath/default.asp

    « Entradas anteriores | Entradas recentes »

    ACERCA

    O que é o RedeRIA ?

    O redeRIA não é nada mais que um agregador de feed's que disponibiliza o conteudo de varios blogs e autores ao redor do mundo RIA, actualmente agregamos mais de 2791 entradas vindas de 53 blogs especializados em ria’s, pelo que só fica a ganhar em assinar o feed ou seguir a comunidade no twitter.

    Se acha que o seu blog ou um blog de um amigo é interessante e util para os leitores o redeRIA, faça a sua submissão aqui.

    Feed: assine já
    Twitter: siga-nos

    GOOGLE

    Votação


    Deveria o RedeRia agregar conteúdo em inglês?
    Ver Resultados

    AUTORES


    Eduardo KrausAlexandre TadashiBindableCognitiva SoluçõesDaniel LopesDaniel SchmitzDanielPedrinhaDClick TeamEbercomEdgard DavidsonElvis FernandesErko BrideeFabiel PrestesFábio Batista da SilvaFabio da SilvaFabriccio BernardesFelipe BorellaFlavia MoreiraGabriel VersalliniGabriela T. PerryIgor MusardoJanderson CardosoJoão AugustoJose Carlos FielKelps SousaLeonardo FrançaLucas MarçalLuis MessiasLuiz TarabalMario JuniorMário SantosMauro MartinsPablo SouzaPedro ClaudioreneRia BrazilriaPTRicardo CerqueiraRobson FernandesRodrigo Pereira FragaSaintBrSamuelFacchinelloSergio SouzaSilva DeveloperStefan HorochovecTech CaffeTecinforThiago BuenoVedVinícius SandimWillian ManoXAML Cast

    PUBLICIDADE








    Powered by Wordpress & msdevstudio.com