ODANIGEEK

AppleScript vs JavaScript for Automation (JXA): Qual usar e quando?

AppleScript vs JavaScript for Automation (JXA): Qual usar e quando?

Ao criar scripts para Folder Actions no macOS, você tem duas opções principais: AppleScript e JavaScript for Automation (JXA). Ambas são oficialmente suportadas pela Apple, mas têm estilos e casos de uso diferentes. Entender qual usar pode te poupar tempo e dores de cabeça.

AppleScript: A linguagem tradicional do macOS

AppleScript existe desde os anos 90 e foi criado para permitir que usuários comuns automatizassem tarefas em aplicativos do Mac. Ele é fortemente integrado ao sistema e à interface gráfica, o que o torna ideal para tarefas como:

Exemplo simples de AppleScript para Folder Action

on adding folder items to this_folder after receiving added_items
    repeat with i from 1 to number of items in added_items
        set this_item to item i of added_items
        tell application "Finder"
            move this_item to folder "Arquivados" of desktop
        end tell
    end repeat
end adding folder items to

JXA (JavaScript for Automation): Uma alternativa moderna

Para quem já está familiarizado com JavaScript ou quer scripts mais estruturados, o JXA é uma opção poderosa. Ele oferece suporte a programação orientada a objetos e é excelente para quem precisa de mais lógica, manipulação de dados ou integração com APIs.

Vantagens do JXA

Exemplo de JXA equivalente

function run(input, parameters) {
  var app = Application('Finder');
  input.forEach(function(file) {
    app.move(Path(file), { to: Path('/Users/SeuUsuario/Desktop/Arquivados') });
  });
}

Conclusão da comparação


Comparando Folder Actions com Shortcuts e Hazel

O Automator e as Folder Actions não são a única forma de automatizar seu Mac. Outras duas ferramentas populares são os Shortcuts (Atalhos) da Apple e o app Hazel, da Noodlesoft. Vamos ver como elas se comparam.

1. Folder Actions (Automator)

Pontos fortes:

Limitações:

2. Shortcuts (Atalhos)

Pontos fortes:

Limitações:

3. Hazel

Pontos fortes:

Limitações:

Qual escolher?


Templates de Folder Actions Prontos para Usar

Abaixo, listo alguns scripts e automações que você pode copiar, colar e adaptar à sua rotina.

1. Mover PDFs automaticamente para uma pasta específica

on adding folder items to this_folder after receiving added_items
    repeat with this_item in added_items
        tell application "Finder"
            if name extension of this_item is "pdf" then
                move this_item to folder "PDFs" of desktop
            end if
        end tell
    end repeat
end adding folder items to

2. Renomear arquivos com data e hora de criação

on adding folder items to this_folder after receiving added_items
    repeat with i from 1 to number of items in added_items
        set this_item to item i of added_items
        tell application "System Events"
            set creationDate to creation date of this_item
        end tell
        tell application "Finder"
            set newName to "file_" & creationDate & ".txt"
            set name of this_item to newName
        end tell
    end repeat
end adding folder items to

3. Apagar arquivos temporários automaticamente

on adding folder items to this_folder after receiving added_items
    repeat with this_item in added_items
        if name of this_item ends with "~" then
            tell application "Finder" to delete this_item
        end if
    end repeat
end adding folder items to

Esses scripts são simples, mas funcionais, e cobrem casos comuns do dia a dia. Podem ser salvos como .workflow no Automator ou editados diretamente no Script Editor.


FAQ: Perguntas Frequentes Sobre Folder Actions

As Folder Actions funcionam em subpastas?

Não diretamente. Você precisa criar uma ação para cada subpasta ou rodar um script que percorra o conteúdo da pasta de forma recursiva.

Como saber se uma ação está realmente funcionando?

Use logs (log no AppleScript ou console.log no JXA), além de validar a execução com arquivos de teste.

O Automator sumiu. O que faço?

Verifique se o Automator está oculto no Launchpad. Se não estiver, reinstale via App Store ou use o Terminal com:

open /System/Applications/Automator.app

É possível importar bibliotecas ou comandos externos?

Sim, usando chamadas de shell dentro do script AppleScript:

do shell script "ffmpeg -i input.mov output.mp4"

Ou em JXA via ObjC.import() ou scripts externos.


Conclusão Expandida

O Automator e o Folder Actions Setup continuam sendo ferramentas incrivelmente valiosas no ecossistema do macOS. E, ao contrário do que muitos pensam, eles não estão obsoletos. Pelo contrário: com criatividade, conhecimento técnico e uma boa estrutura de pastas, é possível transformar seu computador em um assistente automático para tarefas do dia a dia.

Neste artigo, percorremos não só o básico, mas também:

Se você busca produtividade de verdade no Mac, aprender a usar Folder Actions é um dos caminhos mais diretos — e com o melhor custo-benefício: gratuito e nativo.