Instruções para Desenvolvedores para a Compatibilidade com o Wolfram Player Pro
Programando para o Player Pro
Quase todas as funções de programação e computação disponíveis no Mathematica podem ser usadas para construir aplicações para o Player Pro, com apenas algumas restrições de programação:
- Operações 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.
- O campo 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 Player Pro não requerem dados embarcados, dessa maneira você pode carregar dados externos sempre que necessário. Porém, se o seu objetivo é fazer uma aplicação tão autônoma quanto possível, considere as seguinte instruções.
Existem duas abordagens básicas para embarcar 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 Player Pro de acessar arquivos externos durante a execução oferece diversos benefícios.
Organização e Proteção de Código
Para maiores projetos, organizar os códigos em pacotes (incluindo com o Wolfram Workbench) promove um desenvolvimento sustentável. Ao invés 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, veja esta vídeo-aula.
Você pode carregar isso a partir da sua interface dinâmica. Por exemplo:
Manipulate[myfunction[n],{n,0,1},Initialization:>Needs["EncodedPackage`"]]
Outra vantagem é que esse comando criptografa o 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 Player Pro possam utilizar seus próprios dados ou possam usar dados em tempo real pré-especificados. Exemplos típicos:
- 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.