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.

en es ja ru zh