Criar uma aplicação autónoma com o componente Build4D

Um novo componente build4D está disponível no GitHub há alguns meses. Permite-lhe criar sem esforço um projeto compilado ou um componente. As coisas estão ficando ainda melhores; esta nova versão do componente permitir-lhe gerar uma aplicação de usuário único, expandindo as possibilidades do seu fluxo de trabalho de desenvolvimento.

Assim, com o tool4D disponível desde a v20, a integração do processo de geração de aplicações nas suas ferramentas de CI (Integração Contínua) tornou-se extremamente conveniente.

Vamos aos pormenores!

Componente Build4D

O que é que o componente faz?

Eis uma lista não exaustiva do que o componente lhe permite fazer:

  • compilar o projeto,
  • fundir o 4D Volume Desktop com seu projeto,
  • adicionar as informações da aplicação como Copyright, Empresa…,
  • adicionar o ícone,
  • escolher as pastas a adicionar, como Documentation, WebFolder, Default Data…,
  • selecionar as pastas a remover, como uma pasta Dev nos Recursos,
  • escolher os módulos a remover, como CEF, Mecab, php…,
  • gerar a licença de implantação,
  • e assinar a aplicação.

Qual é a diferença em relação ao comando Build application?

Em ambos os casos, é possível gerar uma aplicação de utilizador único perfeitamente utilizável. O comando Build Application é monolítico. Se quiser personalizar um arquivo ou adicionar ou remover uma pasta, tem que fazer isso depois de compilar a aplicação. E para uma aplicação macOS, tem de assinar a aplicação novamente.

O componente Build4D é composto de várias classes e funções codificadas em 4D. Então se sua aplicação for muito particular e diferente de outras. Pode facilmente adicionar uma nova função ou melhorar uma existente.

Como fazer isso?

O código abaixo é um exemplo de geração de uma aplicação standalone a partir de um projeto externo.

var $build : cs.Build4D.Standalone
var $settings : Object
var $success : Boolean

$settings :={}
// Define o arquivo de projeto externo
$settings .projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4folderDProject")

// Configura a aplicação
$settings .buildName:="myApp"
$settings .destinationFolder:="Test/"
$settings .obfuscated:=True
$settings .packedProject:=False
$settings .useSDI:=False
$settings .startElevated:=False
$settings .lastDataPathLookup:="ByAppPath"

// Define o path 4D Volume Desktop
$settings .sourceAppFolder:=Folder(fk documents folder). xml-ph-0034@deepl.internaapp")

// Especifica os componentes exigidos para compilação
$componentFolder :=Folder(fk documents folder).folder("4D v20.0/4D.app/Contents/Components")
$components :=[]
$components .push($componentFolder.file("4D WritePro Interface.4dbase/4D WritePro Interface.4DZ"))
$settings .compilerOptions:={components: $components}

// Apaga módulos desnecessários
$settings.excludeModules:=["CEF"; "MeCab"]

// Inclui pastas e arquivos
$settings .includePaths:=[]
$settings .includePaths.push({source: $componentFolder.folder("4D WritePro Interface.4dbase").path; destination: "../Components/"})
$settings .includePaths.push({source: $componentFolder.folder("4D SVG.4dbase").path; destination: "../Components/"})

// Apaga pastas e arquivos
$settings .deletePaths:=[]
$settings .deletePaths.push("Resources/Dev/")

// Adiciona um ícone para a aplicação
$settings .iconPath:="/RESOURCES/myIcon.icns"

// Adiciona informações da aplicação
$settings .versioning:={}
$settings .versioning.version:="version"
$settings .versioning.copyright:="copyright"
$settings .versioning.companyName:="companyName"
$settings .versioning.fileDescription:="fileDescription"
$settings .versioning.internalName:="internalName"

// Cria o arquivo de licença de deployment
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D")

// Assina a aplicação macOS
$settings .signApplication:={}
$settings .signApplication.macSignature:=True
$settings .signApplication.macCertificate:="xxxxxx"

// Lança o build
$build:=cs.Build4D.Standalone.new($settings)
$success:=$build.build
()

Para obter mais detalhes sobre cada atributo, leia a documentação de cada classe de componente.

Para as aplicações macOS, é necessário autenticá-las para as distribuir. Para obter mais detalhes, consulte a documentação da Apple.

Próximo…

Acesse ao GitHub para transferir o componente “Build4D”. Além disso, para se manter informado sobre todas as novas funcionalidades do componente, clique no botão “Watch” ou coloque 4D Depot ou Build 4D nos seus favoritos. Se precisar de ajuda, pode ler esse post, que detalha todas as organizações 4D e como usar todas as funcionalidades do Github.

Vanessa Talbot
• Proprietário do produto - Vanessa Talbot entrou ao time 4D Program em Junho de 2014 como Proprietária do Produto e está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Desde sua chegada, trabalhou na definição de funcionalidades chaves em 4D. Trabalhou na maioria das novas funcionalidades multithread preemptivo e também em um tema muito complexo: a nova arquitetura para a aplicação engined. Vanessa é formada pela Telecom Saint-Etienne. Começou sua carreira no Instituto de Investigação Criminal como desenvolvedora do departamento audiovisual. Também trabalhou em meios de comunicação e no âmbito médico como especialista em assistência técnica, produção e documentação de novas funcionalidades.