JavaFx: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
Página substituída por '== Índice == ===Desenvolvimento de Aplicações RIA (Rich Internet Application)=== {{livro}} ===Sumário=== * /Prefácio/ * /Introdução/ {{AutoCat}}'
Linha 4:
===Sumário===
* [[/Prefácio/]]
Estamos presenciando o nascimento de uma tecnologia de desenvolvimento fascinante e não é sempre que temos esta chance. Em um instante da história onde participamos de um turbilhão de criações que apesar de serem bem elaboradas desaparecem como se nunca estivesse existido. Onde olhamos incrédulos para nossos equipamentos (recém adquiridos) e muito tempo não se passou e já não conseguimos efetuar upgrades, correções nem encontrar um [http://pt.wikipedia.org/wiki/Firmware firmware] no site do fabricante. Estar diante de uma tecnologia de desenvolvimento que ofereça rapidez, segurança, confiabilidade, [http://pt.wikipedia.org/wiki/Portabilidade_(inform%C3%A1tica) portabilidade] (usar o mesmo aplicativo em diversos aparelhos com sistemas de diferentes fabricantes) e outras que se formos citar não tem fim, é perturbador conceber tal tecnologia.
 
Recebemos todos os dias, informações sobre uma nova tecnologia implantada em determinado aparelho que facilitará o dia-á-dia de milhares de pessoas ou tornará mais dinâmico o controle de tal operação, na verdade não importa, são novas tecnologias, [http://pt.wikipedia.org/wiki/H%C3%A1ptico Interface Háptica], [http://pt.wikipedia.org/wiki/Ecr%C3%A3_t%C3%A1til touchscreen], [http://pt.wikipedia.org/wiki/Tela_retina telas retina da Apple], [http://pt.wikipedia.org/wiki/Project_Glass Projeto Glass da Google],[http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_em_nuvem Computação em nuvem], utilização de [http://pt.wikipedia.org/wiki/Banco_de_dados_distribu%C3%ADdos Banco de Dados Remoto, Distribuídos] ou [http://pt.wikipedia.org/wiki/Banco_de_dados_orientado_a_objetos Orientados ao Objeto] e muitas outras surgirão.
 
Mas o que existe por trás de tudo isto que as faz funcionar?
 
Precisamos imaginar que '''linguagens de programação''' foram envolvidas para tornar estes dispositivos operantes e que estas novas tecnologias provavelmente serão incorporadas ou repassadas para as ''linguagens de desenvolvimento'' do mercado. Então nos deparamos com a questão: A linguagem e técnica de trabalho que você está utilizando possui capacidade adaptativa para lidar com estas mudanças?
 
Perceba que não estamos interessados em linguagens ''sofisticadas'' e que atenda a realidade do momento, mas sim em linguagens capaz de acompanhar as mudanças tecnológicas, pois todos sabemos que investir anos e anos em conhecimento e domínio de linguagem, técnica de desenvolvimento e produtividade e tornar-se mão de obra ultrapassada e obsoleta antes mesmo de ingressar no mercado de trabalho é decepcionante. Entre muitos outros problemas, escolher uma linguagem errada pode ser um investimento caro e sem retorno. É preciso analisar com paciência e carinho todos os detalhes, pois além de ser sua principal ferramenta de trabalho deverá se tornar um dos motivos de inspiração pela sua profissão.
 
Acreditar em projetos de linguagens que irá solucionar problemas é perda de tempo. Precisamos saber se a linguagem possui característica de adaptação para os novos conceitos, técnicas e tecnologias.
 
Senhores e Senhoras bem vindo ao desenvolvimento de [http://pt.wikipedia.org/wiki/Internet_rica Aplicação de Internet Rica] (RIA - Rich Internet Application) usando '''JavaFx'''.
 
* [[/Introdução/]]
{{AutoCat}}
Dispensamos comentários a respeito do [http://pt.wikipedia.org/wiki/Linguagem_java Java] que é a linguagem de origem (do projeto atual) do ''JavaFx'' (Linguagem de Script Orientada a Objetos). O que percebemos pela estrutura de organização do projeto lançado pela '''Sun Mycrosystems''' e adquirido pela '''Oracle''' é que todo o projeto inicial foi repensado criando um promissor e envolvente segmento.
 
Em setembro de 2005 a empresa '''SeeBeyond Technology Corporation''' desenvolveu um projeto chamado '''F3 (Form Follows Function)''' que era baseado em uma linguagem interpretada e tinha como seu responsável criador '''Chris Oliver'''. A Sun comprou a empresa e Chris Oliver tornou-se funcionário. F3 foi alterado para o nome atual e se tornou open source no JavaOne 2007.
 
Em um curto espaço de tempo ''JavaFX'' evoluiu e adaptou-se a ponto de tornar comandos e técnicas de produção das antigas versões incompatível e improdutiva (diferenças entre as versões 1.0 e 2.0), onde mesmo os desenvolvedores habituado com produção direta com Java utilizando atualmente ''JavaFX'', precisaram reorganizar conceitos e técnicas para acompanhar a realidade tecnológica (conceito abordado a respeito do profissional e da linguagem adaptar-se a realidade). Não é correto afirmar que ''JavaFX'', devido ao seu grau de evolução seja superior ao ''Java'' mas concordamos que é o resultado de um processo evolutivo. A linguagem incorporou o '''CSS, HTML, JavaScript e XML''' diretamente em sua produção adaptando algumas delas para seu ambiente, como é o caso do XML que foi criado um "dialeto" com o nome '''FXML''' que serviu para um ambiente voltado para criação de layout.
 
Entre os diversos modelos de desenvolvimento dentro da tecnologia ''JavaFX'', a Oracle aprimorou um método de trabalho que mudou as regras para criação de telas utilizando a linguagem FXML. Uma [http://pt.wikipedia.org/wiki/API API] ('''Scene Builder''') cria o layout e grava em arquivos interpretados pelo ''JavaFX''. Uma técnica simples, rápida e elegante para desenvolver aplicativos sem carregar o código principal da aplicação e que pode ser implantado em diversos projetos, inclusive os projetos para ''Computação em Nuvem''.
 
Desenvolvedores sabem que ''design'' gráfico, programação e banco de dados são habilidades distintas. ''Designers'' gráficos ou [http://pt.wikipedia.org/wiki/Webdesign Webdesign] focam na interação humana com a aplicação e seu objetivo maior é manter o interesse humano e tornar o sistema mais intuitivo usando técnicas audiovisual. Os [http://pt.wikipedia.org/wiki/Desenvolvedor Desenvolvedores ou Programadores] estão tipicamente preocupados em implementar lógica de negócio e interagir com os servidores ''back-end'' usando conceitos de Programação Orientada a Objetos. Por outro lado os Data Bank Administrator ([http://pt.wikipedia.org/wiki/DBA DBA]) estão com o foco na linguagem para estrutura de armazenamento dos dados seguindo conceitos como consultas, relacionamentos, transação e replicação. É uma espécie rara os que possuem as três habilidades. O nosso objetivo é construir ligação entre este segmentos produtivo. O ''designer'' gráfico se aprofunde no visual do empreendimento o ''desenvolvedor'' implemente as regras do negócio enquanto o ''DBA'' se preocupe com o método de armazenamento.
 
Para entendermos ''JavaFX'' com maior facilidade vamos imaginar um ambiente de desenvolvimento corporativo, pois, o conceito de ''errar'' passa a ter um significado diferente daquele que temos em um ambiente puramente didático, no ambiente de trabalho ''erro'' significa perda de tempo e prejuízo mas que a regra é comete-los em menor número já que não podemos evita-los. Para isto a empresa cria mecanismos e conceitos como ''equipe de trabalho, organização, qualidade, produtividade e disciplina'' e a experiência cria as normas e regras a serem cumpridas.
Novas idéias e conceitos devem sempre ser incentivados dentro do ambiente de trabalho, desde que os riscos sejam estudados e os resultados analisados pela lógica e pela razão.
A '''inspiração''' vem de uma empresa focada no ramo de produção de aplicativos [http://pt.wikipedia.org/wiki/Multiplataforma multiplataforma] constituída do quadro de funcionários contendo Analista de Sistemas, Engenheiros, Desenvolvedores, Operadores, outros profissionais e departamentos necessário. O leitor assumirá o cargo de Desenvolvedor e acompanhará de perto todas as etapas do projeto, assumindo riscos, cometendo erros e ajudando a equipe a superar dificuldades e corrigir falhas.
 
A Direção da empresa solicita evitar utilização de módulos, classes, componentes e ferramentas de terceiros que venham causar qualquer tipo de dependência principalmente aquelas que dificultam ou proíbem acesso ao código original. Poderá ser utilizado API e/ou Frameworks nativos ou de empresas, organizações e instituições comprometidas em contribuir para o avanço tecnológico da linguagem, oferecendo serviços com clareza e transparência sem nunca inserir no código do projeto rotinas que sejam obscuras ou desvie do conceito original provocando falta de controle e compreensão. Ciência e tecnologia aplicada a experiência com resultado de sucesso comprovado conta muito para um trabalho concluído, portanto deveremos optar sempre pela técnica de reaproveitamento como forma de agilizar a produtividade, ''reinventar a roda'' é perda de tempo, o que faremos é o reaproveitamento de técnicas aplicada com sucesso e adaptando-as a nossa necessidade.
 
Produzir com técnicas para ''multiplataforma'' implica em reduzir ao máximo o consumo dos recursos dos dispositivos pelos aplicativos produzidos. Portanto tornar a empresa produtiva evitando métodos complexos e adotar '''simplicidade''' é ''desafio'' e o ''lema'' para todos participantes deste projeto.
 
''"A leitura traz '''conhecimento''', mas para o bom profissional, apenas conhecimento não é suficiente. É preciso '''experiência'''. Para adquirir experiência é necessário '''praticar'''. A prática requer sucessivas tentativas entre erros e acertos, falhas e sucessos. Portanto é sábio dizer que muitos afirmam que sabem, alguns fazem mesmo sem saber e poucos sabem o que faz."''
 
Antes de iniciarmos nossos trabalhos precisamos estabelecer as hierarquias, efetuar a ordenação e o agrupamento de atividades e recursos, ou seja, precisamos esclarecer a [http://pt.wikipedia.org/wiki/Estrutura_organizacional Estrutura Organizacional] para podermos alcançar os objetivos e resultados do nosso empreendimento. Se a empresa efetua esta tarefa de forma adequada aumenta significativamente as chances de alcançar resultados positivo no projeto proposto pois deixa claro aspectos como:
 
•Identificação das tarefas necessárias ao alcance dos objetivos estabelecidos;
 
•Organização das funções e responsabilidades;
 
•Informações, recursos e feedback aos membros envolvidos;
 
•Medidas de desempenho compatíveis com os objetivos; e
 
•Condições motivadoras para a realização das tarefas estabelecidas.
 
 
Sabemos que este assunto se estende e não vamos nos aprofundar, por isso efetuaremos um comparativo entre uma empresa de '''Desenvolvimento de Software''' e uma de '''Construção Civil''' que trata de uma área de conhecimento mais popular e de fácil compreensão.