Pular para o conteúdo
Início
Docs/Projetos

Projetos e workspace do IDE

Projetos é a segunda página do PocketCode. Ela lista seus projetos e adiciona novos de quatro maneiras: Novo (15 templates), Importar (um ZIP), Abrir pasta (uma cópia de uma pasta do dispositivo) e Clonar (um repositório do GitHub, GitLab ou Bitbucket). Cada cartão também reúne Renomear, Exportar, Publicar, Excluir e o Git do projeto. Duas páginas à direita, a página IDE mantém suas abas abertas e um preview somente leitura do arquivo ativo. O plano gratuito comporta um projeto seu.

O que é e como abrir

O PocketCode tem cinco páginas pelas quais você desliza: Início, Projetos, Arquivos, IDE (o cabeçalho dela diz Editor) e Chat IA. Os pontos de página da barra inferior (a barra lateral na horizontal) mostram onde você está. Esta página cobre Projetos e IDE; Arquivos tem a sua própria.

Da lista ao editor

  1. 1Em Projetos, toque no cartão de um projeto. Ele passa a ser o projeto aberto e o app leva você para Arquivos.
  2. 2Em Arquivos, toque em um arquivo. O app leva você para a página IDE e abre o arquivo como uma aba.
  3. 3Na página IDE, toque no preview (ou em Abrir no editor) para editar o arquivo no editor de código em tela cheia.
Ao iniciar, o PocketCode reabre o último projeto que você usou, sem trocar de página, então Arquivos e a página IDE já o mostram. Se esse projeto foi excluído ou renomeado, o app o esquece.

Onde ficam seus projetos

  • Cada projeto é uma pasta no armazenamento privado do PocketCode (files/projects/<name>). O nome da pasta é o nome e o id do projeto.
  • Nada disso exige permissão de armazenamento: Importar, Abrir pasta e Exportar usam os seletores de arquivos do próprio Android.
  • Outros apps e gerenciadores de arquivos não enxergam essas pastas, o backup do Android está desativado para o PocketCode e desinstalar o app as apaga. Use Exportar para guardar uma cópia fora do app.
  • Os projetos não são sincronizados com a nuvem. O Cloud Sync cobre configurações e dados de trabalho; o código de um projeto só sai do dispositivo se você fizer push ou exportar por conta própria.

Mapa de telas

Cada tela e folha das duas páginas, e como chegar até ela:

TelaComo chegarO que você pode fazer
Projetos (a lista)A segunda página do appVer todos os projetos, puxar para baixo para atualizar, tocar em um cartão para abri-lo e no chevron dele para ver as ações.
Novo projetoO atalho NovoDar um nome ao projeto e escolher um dos 15 templates.
Importar um ZIPO atalho ImportarEscolher um .zip e descompactá-lo como um novo projeto.
Abrir uma pasta do dispositivoO atalho Abrir pastaCopiar uma pasta do dispositivo para um novo projeto.
ClonarO atalho ClonarEscolher GitHub, GitLab ou Bitbucket e clonar um dos seus repositórios.
Projetos IlimitadosAdicionar um segundo projeto no plano gratuitoAbrir a tela de planos ou dispensá-la com Agora não.
Cartão expandidoO chevron de um cartãoTempo, tamanho, branch e barra de linguagens; Pull, Push, Fetch, Commit; os chips Git, Renomear, Exportar, Publicar e Excluir.
Configurações GitO chip GitComeçar a controlar, vincular ou criar um remoto, enviar e baixar, branches, histórico, tags e o nome nos seus commits.
Confirmar alteraçõesO botão CommitAdicionar e remover arquivos do stage, descartar alterações, escrever uma mensagem, fazer amend, commit, commit e push.
Histórico de commitsConfigurações Git → HistóricoÚltimos 100 commits; revert, reset soft ou hard, cherry-pick.
TagsConfigurações Git → EtiquetasListar, criar, excluir e enviar tags.
Publicar no remotoO chip PublicarCriar um repositório no GitHub, GitLab ou Bitbucket e vinculá-lo como remoto.
Renomear, excluir, exportarChips do cartão expandidoRenomear com verificação de duplicidade, excluir para sempre, exportar um ZIP para o lugar que você escolher.
Página IDEA quarta página, ou tocar em um arquivo em ArquivosA faixa de abas, um preview somente leitura do arquivo ativo e Abrir no editor.
Abas abertasVer abas no aviso de limite de abasFiltrar e saltar entre as abas abertas, fechar as salvas, abrir outro arquivo.
Projetos de exemploAdicionados na primeira execuçãoWebPortfolio e TaskCLI, dois projetos para você testar.

A lista de projetos

A página mostra um cartão por projeto em uma única coluna, com margens laterais mais largas em tablets. A lista não é ordenada e não tem busca: os cartões vêm na ordem em que o sistema de arquivos do dispositivo os devolve.

PocketCode Projects page on a tablet with the New, Import, Open Folder and Clone tiles and two project cards, WebPortfolio and TaskCLI
A página Projetos em um tablet: os quatro atalhos e dois cartões de projeto, cada um com o número de arquivos, a linguagem e um framework ou o tempo desde a última alteração.

O cartão de projeto

Um cartão mostra o ícone da linguagem principal (ou uma pasta), o nome, um rótulo de Git quando há algo a informar, o número de arquivos, a linguagem principal e mais um item: o framework, se algum for detectado; senão a branch; senão o tempo desde a última alteração (19d, 5h, 12m, ou uma data dd/MM depois de 30 dias; abaixo de um minuto aparece Ahora, em qualquer idioma).

Você pode

  • Toque no cartão para abrir o projeto. O app leva você para Arquivos.
  • Toque no chevron para expandir o cartão e chegar às ações dele (próxima seção).
  • Puxe a lista para baixo para atualizá-la: a contagem de arquivos, a análise e os rótulos de Git são recalculados.
  • Acompanhe um clone em andamento: um cartão com barra de progresso e Baixando do GitHub… aparece no topo (o texto é o mesmo para GitLab e Bitbucket).
  • Sem projetos, a página diz Vamos começar a programar! com Criar projeto e Importar projeto. Se o carregamento falhar, aparecem Ops, algo deu errado e Tentar novamente.

Você não pode, e por quê

  • Buscar, ordenar ou filtrar a lista. Uma caixa de busca e filtros Todos / Recentes / Sincronizados existem no código do app, mas não estão ligados à tela.Ainda não
  • Duplicar um projeto. Exporte um ZIP e importe-o.De propósito
  • Recuperar um projeto excluído. Não há lixeira nem tela de restauração.De propósito

Rótulos de Git

Um rótulo ao lado do nome diz em que pé está um projeto Git em relação ao remoto. Só existem quatro:

RótuloSignificado
AlteraçõesO projeto tem remoto e alterações não confirmadas. Aparece antes dos outros rótulos.
PushVocê tem commits que o remoto não tem, ou esta branch nunca foi enviada.
PullO remoto tem commits que você não tem.
ConflitoOs dois lados têm commits novos: sua branch e o remoto divergiram. Não significa que já haja arquivos em conflito.
(sem rótulo)Em dia com o remoto, só neste dispositivo ou não é um repositório Git.
Os rótulos são recalculados quando a lista carrega, quando você puxa para atualizar, depois de uma ação de Git no cartão e quando você salva um arquivo no editor. Um ● em Commit indica que o projeto tem alterações não confirmadas, com ou sem remoto.

Análise automática

O PocketCode examina cada projeto para preencher o cartão:

  • Arquivos: contados sem os nomes que começam com ponto (.git, .gradle…).
  • Linguagem: a principal por número de arquivos, entre 20: Kotlin, Java, JavaScript, TypeScript, Python, Go, Swift, C, C++, C#, Ruby, Rust, Dart, PHP, R, Scala, Shell, HTML, CSS e SQL. O cartão expandido mostra uma barra com as cinco primeiras e a participação de cada uma.
  • Framework, a partir dos arquivos de configuração encontrados: Android/Gradle, Next.js, Angular, Vue, Node.js, Flutter, Go Module, Python, Maven e Docker (somente docker-compose.yml).
  • Tamanho do projeto inteiro, no cartão expandido.
  • Projetos em Rust (Cargo), Ruby (Gemfile), C e C++ (CMake, Make) e projetos com Dockerfile não mostram framework: hoje a detecção nunca os reconhece.Ainda não

Ações do cartão

Toque no chevron de um cartão para expandi-lo. Você vê o tempo desde a última alteração, o tamanho, a branch e, se o projeto tiver linguagens reconhecidas, uma barra com as cinco principais e a porcentagem de cada uma. Se o projeto tem remoto, aparecem três chips: Pull, Push e Fetch. Se for um repositório Git, aparece um botão Commit (com um ● quando há alterações não confirmadas). A última linha tem cinco chips: Git, Renomear, Exportar, Publicar e Excluir. Nenhum deles tem limite de plano.

Renomear

Renomear abre Renomear projeto com o nome atual. A pasta é renomeada, então o id do projeto muda junto.

Você pode

  • Digite um novo nome. Renomear fica desativado enquanto o campo estiver vazio, sem alteração ou já usado por outro projeto; neste último caso o campo diz “Já existe um projeto com este nome”.
  • Renomeie um projeto de exemplo: ele continua sendo um exemplo e continua sem contar para o limite gratuito.

Você não pode, e por quê

  • Usar / \ : * ? " < > | no nome: o app responde “El nombre contiene caracteres no válidos”, em espanhol em qualquer idioma.De propósito

Excluir

Excluir abre Excluir projeto: “Tem certeza de que deseja excluir "<name>"? Esta ação não pode ser desfeita.” com Excluir e Cancelar.

Você pode

  • Apague a pasta do projeto do dispositivo. É local: não toca em nenhum repositório remoto nem em nada online.
  • Exclua um projeto de exemplo. Ele não volta.

Você não pode, e por quê

  • Desfazer uma exclusão. Não há lixeira nem tela de restauração.De propósito

Exportar

Exportar é a forma de tirar um projeto do app.

  1. 1Toque em Exportar. Uma mensagem diz “Exportando '<name>'…”.
  2. 2O diálogo de salvar do Android abre com <name>.zip sugerido. Escolha onde salvar: qualquer lugar que o seletor liste, incluindo nuvens.
  3. 3Quando a cópia termina você vê “Projeto salvo”. Cancelar o diálogo é silencioso e descarta o arquivo temporário.

Você pode

  • Obtenha um ZIP com todos os arquivos do projeto, incluindo as pastas .git e .pocketcode. Pastas vazias não são adicionadas.
  • Use-o como backup ou para mover o projeto: Importar o lê de volta.

Você não pode, e por quê

  • Deixar arquivos de fora (node_modules, .git…) ou exportar só uma parte do projeto.De propósito
  • Usar a folha de compartilhamento ou pular o diálogo de salvar. O app pergunta onde salvar de propósito, para que o backup acabe onde você decidir.De propósito

Publicar

Publicar abre Publicar no remoto, para colocar um projeto no GitHub, GitLab ou Bitbucket.

  1. 1Em Selecione um serviço, toque em um dos seus serviços conectados. Só aparecem os serviços com repositórios.
  2. 2Digite o Nome do repositório (começa como o nome do projeto) e escolha Público ou Privado. A folha começa em Público.
  3. 3Toque em Criar e vincular.

Você pode

  • Crie um repositório vazio pela API do serviço e vincule-o como origin. Se o projeto não era um repositório Git, antes ele executa git init.
  • Veja “'<name>' vinculado a <service>” com o endereço do repositório quando terminar.

Você não pode, e por quê

  • Colocar seus arquivos online com Publicar: ele não faz commit nem push. Eles chegam ao remoto quando você faz Commit e depois Enviar alterações (ou usa Commit & Push).De propósito
  • Publicar sem uma conta conectada. Sem nenhuma, a folha diz “Conecte GitHub, GitLab ou Bitbucket em Serviços primeiro” e você conecta em Serviços de plataforma; não dá para fazer isso a partir desta folha.Precisa de rede
  • Publicar no GitHub Enterprise, GitLab auto-hospedado ou qualquer outro host: só github.com, gitlab.com e bitbucket.org.De propósito

Configurações Git

O chip Git abre Configurações Git. Um cartão de status diz em que pé o projeto está, e as ações mudam conforme ele:

Cartão de statusO que você pode fazer
Ainda sem controlo de versõesO projeto não é um repositório Git. Começar a controlar este projeto executa git init e garante que o .gitignore exclua .pocketcode/. Ligar um repositório que já tenho executa git init e define origin como a URL que você digitar.
Guardado só neste dispositivoUm repositório sem remoto. Digite um Nome do repositório, escolha Privado (o padrão aqui) ou Público e toque em Criar em GitHub e ligar (usa o primeiro serviço Git conectado; o nome dele aparece no botão). Sem uma conta, diz “Liga primeiro uma conta GitHub nas Definições”. Ligar um repositório que já tenho adiciona origin para um repositório que já existe.
LigadoHá um origin. Enviar alterações faz push, Obter alterações faz pull e Verificar o remoto faz fetch.

Você pode

  • Com um remoto, abra Ramo para ver suas branches locais. Toque em uma (Mudar para esta branch) para ir até ela, ou toque em Criar nova branch: abre um diálogo Nova branch com uma caixa para mudar para ela.
  • Histórico mostra o número de commits (contados até 1.000) e abre o histórico. Etiquetas abre as tags.
  • O teu nome nos commits guarda o nome e o e-mail que o Git escreve nos seus commits. Vem preenchido a partir do repositório, do serviço conectado ou da sua conta do PocketCode; Salvar alterações o grava no repositório.

Você não pode, e por quê

  • Ver Ramo, Histórico ou Etiquetas antes de haver um remoto: essas linhas só aparecem quando o repositório tem um.De propósito
  • Listar, mudar para ou criar branches remotas: só as branches locais são mostradas.Ainda não
  • Excluir ou renomear uma branch: o código existe, mas nenhuma tela oferece isso.Ainda não
  • Usar remotos SSH (git@…, ssh://…) ou hosts que não sejam github.com, gitlab.com e bitbucket.org: enviar, baixar e verificar recusam antes de tentar.De propósito
Merge, stash, blame, comparação de branches, rebase, pull requests e issues ficam no Controle de código-fonte do editor de código: veja Git & GitHub.

Commit

Commit abre Confirmar alterações, com a branch atual abaixo do título.

Você pode

  • Veja os arquivos alterados em duas listas, Staged (n) e Não adicionado (n). Marque a caixa de um arquivo para movê-lo; Adicionar tudo e Remover tudo movem todos os arquivos.
  • Toque no ícone Descartar mudanças em um arquivo alterado que não esteja no stage para jogar fora as alterações dele. Arquivos não rastreados não têm esse ícone.
  • Escreva uma Mensagem de commit e toque em Commit, ou em Commit & Push se o projeto tiver remoto.
  • Marque Amend último commit para reescrever o commit anterior com as alterações do stage e uma nova mensagem. O botão passa a ser Amend Commit.

Você não pode, e por quê

  • Fazer commit sem mensagem ou sem ao menos um arquivo no stage (o amend só precisa da mensagem). Sem nada no stage, a lista diz “Sem arquivos staged. Use 'Adicionar tudo' para incluir as alterações.”De propósito
  • Fazer o app adicionar os arquivos ao stage por você: o Commit leva apenas o que está em Staged.De propósito
Descartar mudanças é executado assim que você toca no ícone, sem perguntar.

Histórico de commits

Configurações Git → Histórico abre Histórico de commits: até 100 commits, cada um com a primeira linha da mensagem (cortada em 60 caracteres), um hash de 7 caracteres, o autor e a data.

Você pode

  • Toque em um commit para mostrar quatro botões: Revert (cria um commit que o desfaz), Reset Soft (move a branch para esse commit e mantém seus arquivos e as alterações no stage), Reset Hard (move a branch para lá e reescreve seus arquivos para coincidir; mostrado em vermelho) e Cherry-pick (aplica esse commit sobre a branch atual).

Você não pode, e por quê

  • Fazer reset “mixed” ou restaurar um único arquivo de um commit: não é oferecido. O código de restauração existe, mas nenhum botão o usa.Ainda não
Reset Hard é executado no instante em que você toca, sem confirmação, e descarta o trabalho não confirmado.

Tags

Configurações Git → Etiquetas lista as tags do repositório (ou “Nenhuma tag encontrada”).

Você pode

  • Criar tag (o ícone +): é preciso um nome como v1.0.0; a mensagem é opcional e, se você der uma, cria uma tag anotada. A tag aponta para o commit atual.
  • Excluir tag com o ícone em cada tag.
  • Push de tags (o ícone de upload no topo) as envia ao remoto. Só aparece quando o repositório tem um remoto.

Você não pode, e por quê

—

Adicionar um projeto

Os quatro atalhos no topo da página adicionam um projeto. Não há um botão + separado: o atalho Novo leva o ícone de mais. No plano gratuito, Novo, Importar e Abrir pasta verificam o limite de projetos assim que você toca neles, e Clonar o verifica para GitHub, GitLab e Bitbucket assim que você toca em Clonar em um repositório (veja O limite do plano gratuito).

PocketCode New project sheet in landscape over the Projects page, with a name field, the category chips All, General, Frontend, Backend and Fullstack, and template cards for Empty, HTML / CSS / JS, React and Vue.js
A folha Novo projeto na horizontal: campo de nome, chips de categoria e cartões de template em dois painéis.

Novo: começar de um template

Novo abre a folha Novo projeto (“Escolha um nome e template inicial”).

  1. 1Digite um Nome (o placeholder diz Meu App).
  2. 2Se quiser, restrinja a lista com os chips Todos, Geral, Frontend, Backend, Fullstack ou Linguagens.
  3. 3Toque em um cartão de template. Vazio vem pré-selecionado.
  4. 4Toque em Criar. Enquanto trabalha, o botão diz Criando…; Cancelar fecha a folha.
TemplateCategoriaArquivos que ele cria
VazioGeralNenhum: uma pasta vazia.
HTML / CSS / JSFrontendindex.html, style.css, script.js
ReactFrontendindex.html, App.jsx (React 18 e Babel de uma CDN)
Vue.jsFrontendindex.html, app.js, style.css (Vue 3 de uma CDN)
TypeScriptFrontendindex.ts, tsconfig.json, package.json
PythonBackendmain.py, requirements.txt
Node.jsBackendserver.js (Express), package.json
FastAPIBackendmain.py, requirements.txt, README.md
DjangoBackendmanage.py, requirements.txt, README.md. O manage.py aponta para config.settings, que o template não inclui: adicione esse pacote antes de executá-lo.
React + Node.jsFullstackfrontend/index.html, frontend/App.jsx, backend/server.js, backend/package.json, README.md
React + FastAPIFullstackfrontend/index.html, frontend/App.jsx, backend/main.py, backend/requirements.txt, README.md
Next.jsFullstackapp/page.jsx, app/layout.jsx, app/api/hello/route.js, package.json
KotlinLinguagensMain.kt
GoLinguagensmain.go, go.mod
RustLinguagenssrc/main.rs, Cargo.toml

Você pode

  • Comece por qualquer um dos 15 templates: todos estão disponíveis no plano gratuito.
  • Digite qualquer nome: / \ : * ? " < > | viram -, caracteres de controle e pontos, espaços ou hifens nas pontas são removidos, e um resultado vazio vira Project. Se a pasta já existir, o nome ganha (2), (3)…
  • Na horizontal, a folha se divide em dois painéis: nome e botões à esquerda, chips e templates à direita.

Você não pode, e por quê

  • Criar seu próprio template ou um scaffold de projeto Android: só os 15 templates integrados são oferecidos.De propósito
  • Usar os templates React, Vue, React + Node.js ou React + FastAPI offline: o index.html deles carrega React, Vue e Babel de unpkg.com.Precisa de rede
O texto dentro dos arquivos de template está em espanhol (“¡Hola Mundo!”, “Mi App”), seja qual for o idioma do app.

Importar: um ZIP

Importar abre o seletor de arquivos do Android. Enquanto o ZIP é descompactado, uma sobreposição diz “Importando projeto…”, depois “Projeto '<name>' importado”.

Você pode

  • Escolha um ZIP. Se ele tiver uma única pasta no nível superior, o projeto é o conteúdo dessa pasta: a pasta envoltória é descartada.
  • Mantenha uma pasta .git que venha dentro do ZIP: o PocketCode antes remove as chaves de configuração que poderiam executar comandos e esvazia os hooks.
  • Dê ao projeto o nome do arquivo: todo caractere que não seja letra, dígito, - ou _ vira -, então my app.zip vira my-app-zip. Renomeie depois com Renomear. Se o nome já existir, ele vira -2, -3…

Você não pode, e por quê

  • Importar um ZIP que se expande além de 512 MB, tem mais de 20.000 entradas ou cresce mais de 200 vezes o próprio tamanho: a importação para, o projeto parcial é removido e uma mensagem diz o motivo (proteção contra zip bomb).De propósito
  • Importar .tar.gz, .rar ou .7z: só ZIP é lido.De propósito
  • Importar um ZIP muito grande em um celular com pouca memória: o app lê o arquivo inteiro na memória antes de descompactá-lo.Dispositivo

Abrir pasta: copiar uma pasta do dispositivo

Abrir pasta abre o seletor de pastas do Android. O app copia tudo o que está dentro da pasta escolhida para um novo projeto com o nome da pasta e diz “Projeto '<name>' aberto”. O original não fica vinculado: a partir daí os dois são independentes.

Você pode

  • Traga uma pasta do armazenamento interno, de um cartão SD ou de qualquer provedor que o seletor do Android liste.
  • Mantenha nela uma pasta .git, limpa do mesmo jeito que em um ZIP.

Você não pode, e por quê

  • Editar a pasta original no lugar ou manter as duas cópias sincronizadas: é uma cópia única, porque as escolhas de pasta do Android não são caminhos de arquivo e o Git e as ferramentas de arquivo precisam de caminhos reais. Use Exportar para tirar o resultado de volta.Dispositivo
Se já existir um projeto com o mesmo nome da pasta, ele é excluído e substituído sem perguntar. A cópia também não verifica o tamanho: uma pasta com node_modules é copiada por inteiro.

Clonar: da sua conta do GitHub, GitLab ou Bitbucket

Clonar abre uma folha com três linhas: Clonar do GitHub, Clonar do GitLab e Clonar do Bitbucket. Uma linha cuja conta está conectada mostra um marcador verde e abre a lista dos seus repositórios. Uma linha cuja conta não está conectada diz Não conectado — toque para conectar e tem um botão Conectar: ele abre Serviços de plataforma nesse serviço, e você conecta lá, não dentro da folha de clone. GitHub e GitLab se conectam com um código que você aprova no navegador (um token de acesso pessoal também funciona); o Bitbucket pede seu e-mail da Atlassian e um token de API.

Você pode

  • Ver de relance quais contas estão conectadas.
  • Conectar uma conta sem perder seu lugar: toque na linha, conecte em Serviços de plataforma e volte para Clonar.

Você não pode, e por quê

  • Clonar a partir de uma URL colada, ou de um host que não seja github.com, gitlab.com e bitbucket.org (GitHub Enterprise, GitLab auto-hospedado, Gitea, Azure DevOps…): todo clone começa na lista de repositórios de uma conta conectada.De propósito
  • Clonar sem uma conta conectada, nem mesmo um repositório público.Precisa de rede
  • Clonar por SSH: o PocketCode só usa endereços HTTPS.De propósito
  • Obter submódulos ou conteúdo Git LFS: o clone traz o histórico completo, sem submódulos, e os arquivos LFS não são baixados.De propósito

Clonar do GitHub

Clonar do GitHub abre uma lista em tela cheia, Repositórios do GitHub, com seus repositórios, os atualizados mais recentemente primeiro (até 1.000).

Você pode

  • Busque por nome, descrição ou linguagem e filtre com Todos, Públicos, Privados ou Forks (Forks só se você tiver forks). Cada cartão mostra a visibilidade, a descrição, a linguagem, as estrelas, os forks e a última atualização.
  • Toque em Clonar em um cartão: é um único toque, sem pasta para escolher, e o clone vai para a própria pasta de projetos do app. Segue-se um diálogo Clonando repositório, com Cancelar: cancelar apaga o clone parcial.
  • No plano gratuito, tocar em Clonar faz primeiro a verificação do limite de projetos, antes de o clone começar: sem vaga livre, a lista fecha e o cartão Projetos Ilimitados abre (veja O limite do plano gratuito).
  • Se já existir um projeto com o nome do repositório, o clone vira repo (2), repo (3)…
  • Ainda sem repositórios? Criar no GitHub abre github.com/new no navegador.

Você não pode, e por quê

  • Ver o progresso real: a porcentagem avança por etapas (0, 10, 50 e 100 %).Ainda não
  • Clonar quando a rede para de responder: o clone desiste após 60 segundos sem resposta.Precisa de rede

Clonar do GitLab ou do Bitbucket

Clonar do GitLab e Clonar do Bitbucket abrem uma lista dos seus repositórios com uma caixa de busca que compara com o título e a descrição. Toque em Clonar em um cartão para começar. Enquanto roda, um cartão com o progresso aparece no topo da lista de projetos.

Você pode

  • O GitLab lista os projetos de que você é membro, os atualizados mais recentemente primeiro (até 1.000).
  • No plano gratuito, tocar em Clonar executa primeiro a verificação do limite de projetos (veja O limite do plano gratuito).

Você não pode, e por quê

  • Filtrar a lista: só há a caixa de busca. O Bitbucket mostra os repositórios de um workspace (o seu pessoal, ou o primeiro a que você pertence), os 30 atualizados mais recentemente.De propósito

O limite do plano gratuito

O plano gratuito comporta um projeto seu. O Pro não tem limite de projetos.

  • O que conta: todo projeto da lista, exceto os dois projetos de exemplo (WebPortfolio e TaskCLI, mesmo renomeados). Exclua um projeto e a vaga dele é liberada.
  • O que verifica: Novo, Importar e Abrir pasta verificam no momento em que você toca no atalho, antes de qualquer diálogo ou seletor abrir. Clonar do GitHub, do GitLab ou do Bitbucket verifica assim que você toca em Clonar em um repositório. O AI Office, o Designer e aplicar um template de projeto do Marketplace usam o mesmo limite.
  • O que você vê: o cartão Projetos Ilimitados com o botão Desbloquear Projetos Ilimitados, que abre a tela de planos, e Agora não.
  • O que não tem limite: Renomear, Exportar, Excluir, Publicar, todas as ações de Git do cartão, os 15 templates, a página IDE e as abas dela.
O cartão lista três benefícios: “Projetos ilimitados”, “Crie, importe, abra e clone sem limite” e “Os projetos de exemplo não contam”. Eles descrevem o que esse limite desbloqueia: os 15 templates são gratuitos, e o Cloud Sync sincroniza configurações e dados de trabalho, não projetos.

Projetos de exemplo

Na primeira execução, o PocketCode adiciona dois projetos de exemplo à lista:

  • WebPortfolio (7 arquivos): um portfólio de uma página em HTML, CSS e JavaScript puros. index.html, css/styles.css, js/script.js, js/projects.js, data/projects.json, README.md, TASKS.md.
  • TaskCLI (9 arquivos): um gerenciador de tarefas de terminal em Node.js, sem dependências. main.js, src/args.js, src/colors.js, src/commands.js, src/store.js, data/tasks.json, package.json, README.md, TASKS.md.
  • Cada um tem um TASKS.md com exercícios de prática. Os arquivos estão em inglês, seja qual for o idioma do app.
  • Eles não contam para o limite gratuito. Você pode renomear, exportar e excluir como qualquer projeto; depois de excluídos, não voltam.

A página IDE

A página IDE é a quarta página do app. É uma bancada para os arquivos que você abriu: a faixa de abas do editor de código e um preview somente leitura do arquivo ativo. Você abre arquivos em Arquivos e edita no editor de código em tela cheia, que abre quando você toca no preview. A faixa e o editor compartilham os mesmos arquivos abertos, então uma aba aberta aqui está aberta lá.

Abas

O cabeçalho (Editor, com o nome do projeto e “N abertos · M não guardados”) e a faixa de abas aparecem quando há pelo menos uma aba aberta.

Você pode

  • Toque em uma aba para ativá-la. Mantenha-a pressionada para abrir o menu: Fechar, Fechar as outras, Fechar as da direita, Fechar as salvas, Fechar todas, Fixar / Desafixar, Manter aberta, Copiar caminho, Copiar caminho relativo, Mover para a esquerda e Mover para a direita. Os fechamentos em massa nunca fecham abas fixadas.
  • Mantenha uma aba pressionada e arraste para o lado para reordená-la; toque duas vezes na aba de preview ativa para mantê-la aberta.
  • Deslize para o lado com dois dedos sobre o preview para ir à aba seguinte ou à anterior.
  • Saia e volte: as abas de cada projeto são salvas separadamente e restauradas com a ordem, a aba ativa, as abas fixadas e as posições do cursor e da rolagem. Arquivos excluídos nesse meio-tempo são descartados sem erro.

Você não pode, e por quê

  • Abrir uma aba em tela dividida a partir desta página: Abrir em tela dividida não é oferecido aqui.De propósito
  • Restaurar o texto que você não salvou: a sessão salva contém a lista de abas e as posições, não as edições não salvas.De propósito
  • Manter mais de 20 abas sem que o app intervenha. Quando você abre outra, ele fecha a aba usada há mais tempo que não tenha alterações não salvas e que não esteja fixada nem ativa, e diz “<file> foi fechada (limite de 20 abas)” com Desfazer. Se nenhuma puder ser fechada, a nova aba abre mesmo assim e você vê “Há <n> abas abertas e nenhuma pode ser fechada sem perder alterações. Salve ou feche alguma.” O limite é o mesmo no Grátis e no Pro.Dispositivo

Seletor de abas

Abas abertas · N de 20 é uma folha para se mover entre as abas quando a faixa está cheia.

Você pode

  • Alterne a ordem entre Recentes e Ordem, digite em Filtrar abas…, toque em uma aba para saltar até ela e use o botão de cada linha para fechá-la.
  • Toque em Fechar as salvas para fechar todas as abas sem alterações não salvas, ou em Abrir arquivo… para ir a Arquivos.

Você não pode, e por quê

  • Abri-lo pela faixa: nesta página a faixa não tem o botão ▾. A folha abre a partir de Ver abas, a ação do aviso de limite de abas.De propósito

Preview e botões do cabeçalho

O preview mostra as primeiras linhas do arquivo ativo que cabem na tela, com números de linha e cores de sintaxe quando estão ativados nas configurações do editor, no tema, na fonte e no tamanho do editor. Mostra o texto que o editor guarda, edições não salvas incluídas.

Você pode

  • Toque no preview, ou em Abrir no editor abaixo dele, para abrir o arquivo no editor de código em tela cheia.
  • Abrir no navegador (o globo no cabeçalho) aparece para arquivos HTML, CSS, JavaScript e TypeScript. Abre o Dev Browser no servidor local do seu projeto e fica desativado até o servidor rodar para este projeto.
  • Executar (o ▶ no cabeçalho, marcado EXPERIMENTAL) aparece para arquivos Kotlin, Java, Python, JavaScript, TypeScript, Go, Rust, C++, Ruby, PHP, Dart, Swift e Shell.

Você não pode, e por quê

  • Editar ou rolar o arquivo aqui: o preview é estático, e linhas longas são cortadas em vez de quebrar.De propósito
  • Executar um arquivo a partir desta página: o ▶ apenas abre o arquivo no editor em tela cheia, e a execução acontece lá.Ainda não

Servidor local para previews web

Quando a página IDE abre um projeto, o PocketCode inicia um pequeno servidor web para ele: a primeira porta livre de 8765 a 8774, servindo os arquivos do projeto como estão (index.html é a página padrão).

Você pode

  • Abra um arquivo web com Abrir no navegador: CSS, scripts e imagens carregam por links relativos porque o servidor serve a pasta inteira do projeto.
  • Conte com ele ser privado: escuta apenas em 127.0.0.1 (o próprio celular, não o seu Wi-Fi) e responde “401 Unauthorized” a qualquer requisição sem a credencial por sessão que o Dev Browser do app envia.

Você não pode, e por quê

  • Ter recarga automática quando você salva: só as mudanças feitas pelo agente de IA recarregam o Dev Browser. Depois das suas próprias edições, recarregue a página.Ainda não
  • Executar código do lado do servidor: o servidor envia apenas arquivos estáticos.De propósito

Estados vazios

Sem nenhuma aba aberta, a página mostra Bem-vindo ao PocketCode IDE, o nome do projeto e uma dica para ir à página do explorador de arquivos; Começar a programar leva você a Arquivos. Sem projeto selecionado, mostra Nenhum projeto selecionado e Ir para o painel, que leva você a Projetos.

Você pode

  • Escolha o próximo arquivo em Arquivos: as abas da sua última sessão voltam sozinhas quando o projeto as tem.

Você não pode, e por quê

—

Grátis e Pro

Tudo nestas duas páginas está no plano gratuito. A única coisa que o plano limita é quantos projetos seus você pode ter:

RecursoGrátisPro
Projetos seus1Sem limite
Os dois projetos de exemplo (WebPortfolio, TaskCLI)Não contamNão contam
Novo, Importar, Abrir pasta, clonar do GitHub, do GitLab ou do BitbucketAté você ter 1 projetoSem limite do plano
Os 15 templatesTodosTodos
Renomear, Exportar, Excluir, PublicarIncluídosIncluídos
Git no cartão: Commit, histórico, tags, Pull / Push / FetchIncluídoIncluído
A página IDE e as abas delaIncluída, 20 abasIncluída, 20 abas
O limite é sobre os projetos seus: 1 no Grátis, sem teto no Pro. Para tudo o mais que os planos incluem, veja Planos e preços

Privacidade e segurança

  • Seus projetos ficam no dispositivo. São pastas no armazenamento privado do PocketCode, e estas páginas não enviam nada por conta própria: os arquivos só saem do dispositivo quando você faz push, publica e depois faz push, ou salva um ZIP de Exportar. Os recursos de IA leem os arquivos do projeto quando você os usa; isso é tratado no Chat IA.
  • Os tokens do Git ficam no armazenamento criptografado do Android, por conta do PocketCode. O PocketCode só envia um token para github.com, gitlab.com e bitbucket.org; para qualquer outro host não envia nada e a operação falha.
  • O Git roda dentro do app, sem programas externos. Hooks e filtros nunca são executados. Quando você importa um ZIP ou abre uma pasta que contém um .git, o PocketCode mantém o repositório, mas remove as chaves de configuração que poderiam executar comandos e esvazia os hooks.
  • O servidor de preview local responde apenas em 127.0.0.1 e exige uma credencial por sessão.
  • Exportar monta o ZIP em um arquivo temporário e o apaga depois de copiado para o lugar que você escolheu (ou quando você cancela).
  • Backups: o backup do próprio Android está desativado para o PocketCode. Em Configurações há Criar backup automático: quando ligado, cópias ZIP de todos os seus projetos são gravadas a cada 30 minutos (as últimas 5 por projeto são mantidas) no armazenamento privado do app. Não há tela para restaurá-las e desinstalar as apaga, então trate Exportar como seu backup de verdade.

Limitações

O que estas páginas não fazem hoje, para não pegar você de surpresa:

  • O plano gratuito comporta 1 projeto seu. Novo, Importar, Abrir pasta e clones do GitHub, do GitLab ou do Bitbucket param no cartão Projetos Ilimitados.Pro
  • Os projetos ficam só no armazenamento privado do app: outros apps e gerenciadores de arquivos não os enxergam, e desinstalar o PocketCode os apaga.Dispositivo
  • Abrir pasta copia a pasta em vez de vinculá-la, e a importação de ZIP é lida inteira na memória.Dispositivo
  • Um clone nunca pede pasta: todo clone, do GitHub, do GitLab ou do Bitbucket, cai na pasta de projetos do app.Dispositivo
  • Sem busca, ordenação nem filtros na lista de projetos, e sem duplicar.Ainda não
  • Projetos em Rust, Ruby, C e C++ e Dockerfiles não mostram framework no cartão.Ainda não
  • Uma importação de ZIP para além de 512 MB descompactados, 20.000 entradas ou uma proporção de 200:1, e só ZIP é lido.De propósito
  • O Git é só HTTPS, e só com github.com, gitlab.com e bitbucket.org e uma conta conectada. Não há SSH, nem GitHub Enterprise ou GitLab auto-hospedado, nem clone a partir de uma URL colada.De propósito
  • Sem submódulos, sem Git LFS e sem hooks: o motor do Git não executa programas externos.De propósito
  • Publicar cria e vincula o repositório, mas não faz push.De propósito
  • A partir do cartão você não pode excluir nem renomear uma branch, listar branches remotas, fazer reset “mixed” nem restaurar um arquivo de um commit.Ainda não
  • A porcentagem do clone avança por etapas (0, 10, 50, 100 %), e o Bitbucket lista um workspace, os 30 repositórios mais recentes.Ainda não
  • Os templates React, Vue, React + Node.js e React + FastAPI precisam de conexão: carregam bibliotecas de unpkg.com.Precisa de rede
  • A página IDE não edita, não rola nem executa: o ▶ dela só abre o editor, e o preview não recarrega sozinho quando você salva.Ainda não
  • O app mantém sozinho no máximo 20 abas abertas (o mesmo no Grátis e no Pro): além disso, fecha a aba salva usada há mais tempo, ou avisa você quando nenhuma pode ser fechada.Dispositivo
  • Algumas mensagens e textos estão escritos em espanhol, seja qual for o idioma do app: Ahora, os erros de renomear e de limite de ZIP, alguns erros de clone e de pull, e o texto dentro dos arquivos de template.Ainda não

Solução de problemas

As mensagens abaixo são as que o PocketCode mostra. Algumas estão escritas em espanhol em qualquer idioma; são citadas como aparecem.

“Já existe um projeto com este nome”

Em Renomear projeto: a pasta de outro projeto já tem esse nome. Escolha um diferente.

“El nombre contiene caracteres no válidos”

O novo nome tem um destes: / \ : * ? " < > |. Remova-o e renomeie de novo.

Projetos Ilimitados

Você está no plano gratuito e já tem um projeto seu. Exclua-o, ou exporte e exclua, para liberar a vaga, ou desbloqueie o Pro. Os projetos de exemplo não contam.

“El archivo trae más de 20000 entradas: se corta la extracción.”

O ZIP tem mais de 20.000 entradas. Nada é importado e o projeto parcial é removido. Deixe de fora o que não precisa e compacte de novo.

“El contenido descomprimido pasa de 512 MB: se corta la extracción.”

O ZIP se expandiria além de 512 MB. Mesmo resultado: nada é importado. Deixe de fora pastas grandes como node_modules.

“El archivo se expande más de 200:1 (… B → … B): se corta la extracción.”

O conteúdo cresce mais de 200 vezes o tamanho do ZIP, que é como uma zip bomb se apresenta. A importação para.

“Invalid entry path: …”

Uma entrada do ZIP tenta sair da pasta do projeto (.. ou um caminho absoluto). O PocketCode recusa o arquivo e remove o projeto parcial.

“O arquivo selecionado não é válido” ou “Não foi possível ler o arquivo selecionado”

O Android não conseguiu abrir ou ler o arquivo que você escolheu. Escolha-o de novo, ou copie-o antes para o armazenamento do dispositivo.

“A pasta selecionada não é válida” ou “Erro ao abrir a pasta”

Abrir pasta não recebeu uma pasta legível. Escolha uma pasta, não um arquivo, e tente de novo.

“Não conectado — toque para conectar”

Esse provedor não tem conta conectada. Toque na linha (ou em Conectar) para abrir Serviços de plataforma, conecte a conta e volte para Clonar.

“Conta de GitLab não conectada” (ou Bitbucket)

A lista abriu sem uma conta: “Conecte sua conta de GitLab em Serviços para clonar repositórios.” Conecte em Serviços de plataforma e reabra a lista.

“Falha ao carregar repositórios” ou “Algo deu errado”

A lista de repositórios não carregou, em geral por falta de rede. Toque em Tentar novamente.

“Falha ao clonar: …”

O motivo vem em espanhol. “Error de autenticación. Verifica tu token de GitHub.” significa que o token foi recusado: reconecte a conta. “Repositorio no encontrado. Verifica la URL.”, “Error de red. Verifica tu conexión a internet.” e “Error de permisos. Verifica que tienes acceso al repositorio.” dizem o que dizem; “Error al clonar: …” cobre todo o resto. O clone parcial é apagado.

“Este projeto ainda não tem remoto. Liga um nas definições de Git.”

Pull, Push e Fetch precisam de um origin. Abra Git e use Ligar um repositório que já tenho ou Criar em GitHub e ligar, ou use Publicar.

“Este remoto usa SSH, que não é suportado. Usa o endereço HTTPS do repositório.”

O origin do projeto é um endereço SSH (git@… ou ssh://…). O PocketCode só fala HTTPS, então recusa antes de tentar. Clone o repositório de novo com Clonar, que usa HTTPS.

“Não há nenhuma conta ligada a <host>. Liga uma nas Definições para enviar ou obter.”

Não há conta conectada para esse host, ou o host não é github.com, gitlab.com nem bitbucket.org: o PocketCode só envia tokens para esses três. Conecte a conta em Serviços de plataforma (Configurações → Integrações → Serviços conectados).

“<host> rejeitou as credenciais. Liga novamente a conta nas Definições.”

O token não vale mais. Desconecte e conecte a conta de novo em Serviços de plataforma.

“Não foi possível contactar <host>. Verifica a ligação e tenta novamente.”

Sem rede, ou o host não respondeu a tempo. Verifique a conexão e tente de novo.

“O remoto rejeitou o envio. Obtém primeiro as alterações do remoto e envia de novo.”

O remoto tem commits que você não tem. Use Obter alterações (ou Pull) e depois envie de novo. “A tua ramificação e a remota mudaram ambas.” significa o mesmo.

“Este projeto e o remoto não partilham histórico.”

“Costuma acontecer quando a pasta já tinha commits antes de ligar o remoto. Clona numa pasta vazia ou liga outro remoto.”

“As mesmas linhas mudaram dos dois lados.”

“Abre os ficheiros afetados, fica com a versão que queres e tenta outra vez.” Resolver as marcações é feito no editor de código.

“Sem arquivos staged. Use 'Adicionar tudo' para incluir as alterações.”

Em Confirmar alterações, Commit precisa de pelo menos um arquivo em Staged e de uma mensagem. Marque os arquivos ou toque em Adicionar tudo.

“Projeto criado, mas não foi possível escrever os ficheiros do modelo: …”

A pasta existe, mas o template não foi gravado, em geral por falta de espaço. Libere espaço, exclua o projeto e crie-o de novo.

“Conecte GitHub, GitLab ou Bitbucket em Serviços primeiro”

A folha Publicar no remoto não achou nenhum serviço conectado. Conecte um em Serviços de plataforma e depois reabra Publicar.

“Ya tienes un repositorio llamado «<name>». Elige otro nombre.”

O GitHub já tem um repositório com esse nome na sua conta. Mude o Nome do repositório em Publicar no remoto e toque em Criar e vincular de novo.

“Há <n> abas abertas e nenhuma pode ser fechada sem perder alterações. Salve ou feche alguma.”

Você chegou ao limite de 20 abas e todas as outras têm alterações não salvas ou estão fixadas. Toque em Ver abas e salve ou feche algumas.

“Nenhum projeto selecionado”

A página IDE abriu sem um projeto aberto. Toque em Ir para o painel e depois em um cartão de projeto.

“Não foi possível exportar o projeto”

O ZIP não pôde ser montado ou gravado no lugar que você escolheu. Tente outro local.