Instruções para Desenvolvedores acerca da Compatibilidade com o Wolfram CDF Player Pro
Programando para o CDF Player Pro
Quase todas as funções de programação e computação disponíveis no Mathematica podem ser usadas para criar aplicações para o CDF Player Pro, com apenas algumas restrições de programação:
- Operações do tipo Wolfram Symbolic Transfer Protocol, incluindo .NET/Link, não são suportadas. Evite usar comandos como Install, LinkConnect, Links e assim por diante. Isso inclui links a kernels remotos do Mathematica como gridMathematica.
- InputField não aceita programas arbitrários do Mathematica, mas aceita expressões matemáticas e outras entradas que não se assemelhem a programas do Mathematica.
- Kernel de front end alternativos, como os que podem ser escritos em Java, C/C++, ou .NET, não são suportados. O único método suportado para uso do kernel é através da interface de notebook do Mathematica.
- GUIKit não é suportado.
Pré-carregamento de Dados
As aplicações do CDF Player Pro não requerem dados incoporados, dessa maneira dados externos podem ser carregados sempre que necessário. Porém, se o seu objetivo é fazer uma aplicação tão autônoma quanto possível, considere essas instruções.
Existem duas abordagens básicas para incorporação de dados:
Initialization
Pequenos blocos de código e dados podem ser incluídos no comando Manipulate usando a opção Initialization. Por exemplo:
Manipulate[myfunction[mydata,n],{n,0,1},
Initialization:>(myfunction[dat_,n_]:=...;mydata={...})];
SaveDefinitions
Para blocos de códigos maiores, pacotes, ou maiores arquivos de dados, pode ser mais conveniente defini-los antes de criar o Manipulate, então salvar o estado dos dados dentro do Manipulate usando a opção SaveDefinitions. Por exemplo:
<<MyPackage`
mydata=Import[...];
Manipulate[myfunction[data,n],{n,0,1},SaveDefinitions->True];
Utilizando Arquivos Externos
A habilidade do CDF Player Pro de acessar arquivos externos durante a execução oferece diversos benefícios.
Organização e Proteção de Código
Para projetos maiores, organizar os códigos em pacotes (incluindo com o Wolfram Workbench) promove um desenvolvimento sustentável. Em vez de incluir seu código dentro do Manipulate com o comando Initialization, você pode incluir uma chamada aos pacotes. Todos os pacotes devem ser codificados usando o comando Encode ou DumpSave para criar um arquivo binário .mx. Para mais informações, assista a videoaula.
Pode ser carregado a partir da sua interface dinâmica. Por exemplo:
Manipulate[myfunction[n],{n,0,1},Initialization:>Needs["EncodedPackage`"]]
Outra vantagem é que esse comando criptografa seu código-fonte.
Dados em Tempo Real ou Especificados pelo Usuário
Existem diversas maneiras de incorporar chamadas de dados externos em notebooks para que estes em conjunto com o CDF Player Pro possam utilizar seus próprios dados ou possam usar dados em tempo real pré-especificados. Seguem alguns exemplos comuns:
- Inicialize a aplicação com dados de uma fonte remota:
Manipulate[...,Initialization:>(data=Import["http://server.domain.com/latestdata.dat"])] - Capture dados a partir de uma webcam:
Manipulate[...,Button["Get image", data=Import["http://server.domain.com/webcam.jpg"] - Deixe o usuário escolher um arquivo de dados para análise:
Manipulate[..., Button["Load data", mydatapath = SystemDialogInput["FileOpen"]]]
Notebooks e Outros Arquivos
Somente notebooks criados pelo Mathematica podem ser abertos — notebooks sem caches de arquivo detalhados não podem ser abertos. Arquivos que não sejam notebooks não podem ser abertos.