Resenha: Palesta Apollo na UNIFACS
Em primeiro lugar, muito obrigado à todos que compareceram à minha palestra, realizada no último dia 26 de maio na UNIFACS (Imbuí/Salvador/Bahia). Mesmo em um dia de chuva, muita gente acordou cedo para ouvir o que eu tinha a dizer e pude perceber a atenção com a qual o conteúdo foi recebido. Meus sinceros agradecimentos!
Segue aqui, conforme prometido, uma resenha sobre o conteúdo abordado.
1 - Recapitulando o que foi discutido na palestra anterior (21/abr/07).
Na oportunidade anterior, apresentamos o Apollo e seus principais conceitos apresentando-os através dos seguintes tópicos:
- O que é o Apollo?
- Qual o objetivo do Apollo?
- O que se pode fazer com o Apollo?
- A nova realidade para designers e developers
Diversos exemplos de aplicações foram apresentados para os participantes presentes, demonstrando o poder do Apollo e principalmente os recursos diferenciais que este disponibiliza aos desenvolvedores. Para uma fácil referência, utilizei os exemplos citados pela própria equipe da Adobe no site http://labs.adobe.com . Dentre os principais:
- Finetune. Discutindo inclusive sobre a importância do Apollo em uma análise particular do modelo de comércio possibilitado a partir de sua introdução.
- Fresh. Demonstrando a riqueza de interação já conhecida possibilitada pelo Flash/Actionscript em Rich Internet Applications, e adicionalmente um uso importante do recurso de renderização de HTML/CSS/Javascript possibilitado pelo controle HTML presente para esta finalidade.
- DryerFox. Demonstrando um uso divertido do controle HTML.
entre outros...
- Tweetr. Mais uma implementação de integração com o site Twitter.com. Para quem ainda não sabe, trata-se de um site estilo Blog Instantâneo onde as pessoas publicam simplesmente o que estão fazendo a cada momento. Curiosamente, aconselho conhecer o projeto TwitterVision 3D que não foi apresentado na palestra. Trata-se de mais uma interessante aplicação de integração com o Twitter, desta vez desenvolvido em Flex, integrando uma API 3D.
Finalizando esta primeira parte da agenda, discutimos sobre um novo cenário de oportunidades para designers e developers, debatendo principalmente sobre o baixo impacto de investimento intelectual (portanto, consequentemente financeiro) para aproveitamento destas oportunidades, uma vez que todo o conhecimento necessário por parte dos desenvolvedores de soluções web, são simplesmente reutilizados para a abordagem de soluções desktop adicionais, complementares ou isoladas de conteúdos e/ou soluções já desenvolvidas utilizando as tradicionais ferramentas Adobe para este propósito (Flash, Actionscript, Flex, Dreamweaver, Fireworks e uma linguagem server-side semelhante em funcionalidade ao Coldfusion).
2 - Últimos acontecimentos:
Nesta segunda parte, apresentei aos participantes do evento, notícias a respeito dos principais acontecimentos que influenciaram o meio relacionado ao Apollo. Os principais temas foram:
- Flex agora Open-Sourced
- API de acesso a dados, via Socket, para mySQL
- Anúncio do Silverlight (microsoft)
Anunciei aos que ainda não sabiam da notícia, a API disponibilizada publicamente por Matt MacLean em seu site, ainda sem um modelo de licença definido por tratar-se de um experimento, que permite o acesso direto (sem o uso de um middleware) ao banco de dados mySQL.
Para exemplificar o seu uso de maneira rápida, apresentei o seguinte código fonte, disponível aqui de forma completa (com comentários inclusive) pois nos slides ele encontrava-se particionado por razões claras aos presentes (resolução de vídeo, melhor apresentação, etc.):
<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" height="320" resizable="false">
<mx:Script>
<![CDATA[
//importação das classes referentes à API disponibilizada em http://maclema.com/asql
//desenvolvida por Matt MacLean
import pl.mooska.asql.*;
import pl.mooska.asql.events.*;
//declaração da variável que irá manter os dados recebidos.
//a metatag [Bindable] permite que a mesma seja utilizada como valor de
//parametro em tags MXML que necessitem ter acesso à mesma.
//no exemplo atual, vamos defini-la como a fonte de dados do data-grid
//de nome de instância "grid", através do parâmetro "dataProvider" que
//o controle do tipo grid disponibiliza
[Bindable]
public var recordset:Array;
//instancia da conexão com o banco de dados mySQL
private var connector:Asql;
//uma variável para manter as mensagens à serem apresentadas no
//controle tipo label que temos na interface
//o "bind" desta variável será utilizado no parametro "text" do
//controle "label" instanciado como "lblMessage" na porção MXML
//deste código
[Bindable]
public var connectorStatus:String;
public function startApp():void{
connector = new Asql();
connector.addEventListener(SQLEvent.CONNECT, onConnect);
connector.addEventListener(SQLEvent.SQL_OK, onProcessed);
connector.addEventListener(SQLEvent.SQL_DATA, onData);
connector.addEventListener(SQLError.SQL_ERROR, onError);
connector.connect("ip_ou_dominio", "usuario", "s3nh4", "nome_do_banco");
connectorStatus = "Tentando conectar...";
}
private function onConnect(e:SQLEvent):void{
connector.query("SELECT * FROM tabela");
connectorStatus = "Conexão OK! Solicitando dados...";
}
private function onProcessed(e:SQLEvent):void{
//actions for an ok update or insert action result
connectorStatus = "Dados processados!";
}
private function onData(e:SQLEvent):void{
recordset = e.data;
connectorStatus = "Dados recebidos!";
}
private function onError(e:SQLError):void{
connectorStatus = "Erro na conexão!";
}
]]>
</mx:Script>
<mx:Label text="Apollo x MySQL access sample" fontFamily="Verdana" fontWeight="bold" fontSize="16"/>
<mx:DataGrid id="grid" dataProvider="{recordset}" width="298"/>
<mx:Button label="Connect and get data" width="159" id="btn" click="startApp()"/>
<mx:Label text="{connectorStatus}" width="301" textAlign="center" fontWeight="bold" color="#ff0000" id="lblMessage"/>
</mx:ApolloApplication>
ATENÇÃO:
No código acima onde temos:
connector.connect("ip_ou_dominio", "usuario", "s3nh4", "nome_do_banco");
Deve-se alterar o seguinte:
ip_ou_dominio: o IP do servidor onde encontra-se a instância do seu banco de dados mySQL ou o seu nome de domínio. Exemplo: 192.168.0.1 ou localhost
usuario: o usuário no servidor mySQL que possui acesso ao banco de dados que irá ser consultado.
s3nh4: a senha respectiva ao usuário especificado.
nome_do_banco: nome do banco de dados no servidor mySQL contra o qual será feita a consulta.
O seguinte esquema pode ser utilizado para criar a tabela de exemplo no seu servidor mySQL caso você queira testar o código acima:
CREATE TABLE `users` (
`username` varchar(15) default NULL,
`id` int(10) unsigned NOT NULL auto_increment,
`fullname` varchar(45) default NULL,
PRIMARY KEY (`id`)
) TYPE=InnoDB;
INSERT INTO `users` (`username`, `id`, `fullname`) VALUES
('vpmjr', 1, 'Vicente Junior'),
('commander', 2, 'Neil Armstrong'),
('moonPilot', 3, 'Edwin Aldrin'),
('commandPilot', 4, 'Michael Collins');
- Adobe FlexBuilder 2.0.1 (plugin para Eclipse 3.x ou standalone)
- Apollo Alpha 1 SDK
- Apollo Extensions for FlexBuilder 2.0.1
- mySQL 4.x
Adiante, discutimos a respeito dos seguintes temas:
Sería o Silverlight finalmente o tal do FlashKiller? Uma ameaça? (sub-tema: Já não ouvimos esta história antes?) Definitivamente não existe esta comparação e isso ficou muito claro ao final da discussão. O posicionamento de ambos é totalmente diferente. Farei mais posts a respeito deste assunto aqui no Blog.
Após isso, introduzí à questão apenas por intenção de adicionar informação aos presentes, o JavaFX e também discutimos quanto ao seu posicionamento. Ficou evidente que o Silverlight e o JavaFX são concorrentes diretos mas que o Apollo possui algusn diferenciais importantes a começar por seus fundamentos e objetivos que são divergentes a estes dois. Como no tópico do Silverlight, mais posts serão colocados aqui abordando o tema mais profundamente.
Finalizando
Tratamos a respeito de conhecimentos necessários para começar a desenvolver com o framework do Apollo, treinamentos que estou ministrado para implementar ou complementar tais pré-conhecimentos, bem como os treinamentos voltados exclusivamente para o Apollo que já estou ministrando (extra-oficialmente) para os usuários interessados.
Caso você esteja interessado em algum treinamento, leia os detalhes disponíveis neste post e entre em contato a partir do meu email.
Os treinamentos são ministrados individual e particularmente, bem como para grupos/empresas.
Até a próxima! Mais posts a respeito dos assuntos aqui abordados estarão disponíveis nos próximos dias.
5 comentários:
Olha eu outra vez!! rss
Até que enfim coloquei o meu blog online!
Tem um post lá sobre a sua palestra ;)!
Abraçoww
Fala moço!
Mas qual o link do Blog? Publica aki que fica mais fácil do pessoal encontrar. Valeu a presença na palesta. Obrigado!
ABRAÇO!
Afff
Esqueci do link..Oo
www.osmundocavalcante.com.br
Está faltando umas coisinhas mas uma hora eu acabo ele rss
I dont know italiano, but one thing theres wrong :)
There are TWO different mysql drivers, the code you provided works with http://mooska.pl
and the link was to the http://maclema.com/assql
cheers
Postar um comentário