Seu bolso de código sempre à mão
DevPocket é um aplicativo mobile para desenvolvedores salvarem, organizarem e reutilizarem snippets de código diretamente no celular. Com syntax highlighting, tags, busca avançada e muito mais.
- ✅ Criar, editar e deletar snippets
- ✅ Syntax highlighting em tempo real (suporta 20+ linguagens)
- ✅ Editor de código com scroll horizontal e vertical
- ✅ Preview de código com highlight
- ✅ Copiar código para área de transferência
- ✅ Sistema de tags completo
- ✅ Tags sugeridas baseadas na linguagem
- ✅ Filtro por tags (múltipla seleção)
- ✅ Badges visuais para tags
- ✅ Marcar snippets como favoritos
- ✅ Filtrar apenas favoritos
- ✅ Ordenação automática (favoritos primeiro)
- ✅ Busca por título, código, linguagem e tags
- ✅ Filtros combinados (tags + favoritos)
- ✅ Busca em tempo real
- ✅ Dashboard completo com métricas
- ✅ Top 5 linguagens mais usadas
- ✅ Top 10 tags mais populares
- ✅ Snippets criados nos últimos 30 dias
- ✅ Média de tags por snippet
- ✅ Exportar todos os snippets (JSON)
- ✅ Exportar snippet individual
- ✅ Importar snippets (substituir ou mesclar)
- ✅ Compartilhar snippets
- ✅ Suporte a Português (pt-BR) e Inglês (en-US)
- ✅ Detecção automática do idioma do dispositivo
- ✅ Interface completamente traduzida
- ✅ Versão gratuita: limite de 5 snippets
- ✅ Versão premium: snippets ilimitados
- ✅ Compras in-app (mensal/anual)
- ✅ Restaurar compras
- ✅ Anúncios AdMob (apenas versão gratuita)
- Banner na lista de snippets
- Intersticial ao criar snippet
- ✅ Tema claro e escuro
- ✅ Design moderno e responsivo
- ✅ Animações suaves
- ✅ Feedback visual em todas as ações
- React Native 0.81.5
- Expo 54.0.29
- TypeScript 5.9.2
- React 19.1.0
- Zustand - Gerenciamento de estado
- React Navigation - Navegação tipada
- AsyncStorage - Armazenamento local
- UUID - Identificadores únicos
- react-native-syntax-highlighter - Syntax highlighting
- expo-clipboard - Área de transferência
- expo-file-system - Sistema de arquivos
- expo-sharing - Compartilhamento
- expo-localization - Detecção de idioma
- i18n-js - Internacionalização
- react-native-iap - Compras in-app
- react-native-google-mobile-ads - Anúncios AdMob
devpocket/
├── src/
│ ├── components/ # Componentes reutilizáveis
│ │ ├── AdBanner.tsx
│ │ ├── Button.tsx
│ │ ├── Card.tsx
│ │ ├── CodeEditor.tsx
│ │ ├── CodePreview.tsx
│ │ ├── ConfirmModal.tsx
│ │ ├── Fab.tsx
│ │ ├── ImportModal.tsx
│ │ ├── Input.tsx
│ │ ├── LanguageSelect.tsx
│ │ ├── LimitReachedModal.tsx
│ │ ├── Screen.tsx
│ │ ├── SearchHeader.tsx
│ │ ├── TagBadge.tsx
│ │ ├── TagFilter.tsx
│ │ ├── TagInput.tsx
│ │ └── ThemeToggle.tsx
│ ├── constants/ # Constantes
│ │ ├── languages.ts
│ │ └── suggestedTags.ts
│ ├── hooks/ # Custom hooks
│ │ └── useTranslation.ts
│ ├── i18n/ # Internacionalização
│ │ ├── index.ts
│ │ ├── pt-BR.ts
│ │ └── en-US.ts
│ ├── navigation/ # Configuração de rotas
│ │ └── index.tsx
│ ├── screens/ # Telas da aplicação
│ │ ├── SnippetListScreen.tsx
│ │ ├── SnippetFormScreen.tsx
│ │ ├── StatisticsScreen.tsx
│ │ └── UpgradeScreen.tsx
│ ├── storage/ # Persistência
│ │ └── snippetStorage.ts
│ ├── store/ # Zustand stores
│ │ ├── snippetStore.ts
│ │ └── premiumStore.ts
│ ├── theme/ # Sistema de temas
│ │ ├── colors.ts
│ │ ├── theme.ts
│ │ ├── ThemeProvider.tsx
│ │ └── tokens.ts
│ ├── types/ # Tipos TypeScript
│ │ ├── snippet.ts
│ │ └── syntax-highlighter.d.ts
│ ├── utils/ # Funções utilitárias
│ │ ├── adMob.ts
│ │ ├── generateId.ts
│ │ ├── getSuggestedTagsByLanguage.ts
│ │ ├── interstitialAd.ts
│ │ ├── languageMap.ts
│ │ ├── purchases.ts
│ │ ├── snippetExport.ts
│ │ ├── snippetImport.ts
│ │ └── snippetStatistics.ts
│ └── App.tsx # Componente raiz
├── assets/ # Imagens e ícones
├── app.json # Configuração Expo
├── package.json
└── tsconfig.json
- Node.js 18 ou superior
- npm ou yarn
- Expo CLI (instalado globalmente ou via npx)
- Expo Go (para testar no dispositivo) ou Android Studio (para emulador)
# Clonar o repositório
git clone https://github.com/SEU_USUARIO/devpocket.git
# Entrar na pasta
cd devpocket
# Instalar dependências
npm install# Iniciar o servidor de desenvolvimento
npm start
# Ou usar Expo CLI diretamente
npx expo startDepois, pressione:
apara abrir no emulador Androidipara abrir no simulador iOS- Escaneie o QR Code com o Expo Go no seu dispositivo
# Limpar cache e reiniciar
npx expo start --clear
# Rodar apenas Android
npm run android
# Rodar apenas iOS
npm run ios
# Criar build de desenvolvimento (requer configuração)
npx expo run:android
npx expo run:iosO app suporta syntax highlighting para mais de 20 linguagens de programação:
- JavaScript, TypeScript
- Python, Java, C, C++
- HTML, CSS, SCSS
- React, Vue, Angular
- SQL, JSON, XML
- E muitas outras...
- Tags sugeridas baseadas na linguagem selecionada
- Validação de formato (sem espaços, caracteres especiais)
- Filtro por múltiplas tags simultaneamente
- Contador de tags selecionadas
A busca funciona em:
- Título do snippet
- Código completo
- Linguagem
- Tags
O dashboard de estatísticas mostra:
- Total de snippets
- Total de favoritos
- Tags únicas
- Snippets dos últimos 30 dias
- Top linguagens (com barras de progresso)
- Top tags (com contadores)
- Média de tags por snippet
- Snippet mais antigo e mais recente
- ✅ Limite de 5 snippets
- ✅ Todas as funcionalidades básicas
- ✅ Anúncios AdMob (banner + intersticial)
- ✅ Snippets ilimitados
- ✅ Sem anúncios
- ✅ Todas as funcionalidades
- 💵 R$ 9,90/mês ou R$ 79,90/ano
- 🇧🇷 Português (pt-BR)
- 🇺🇸 Inglês (en-US)
O app detecta automaticamente o idioma do dispositivo e ajusta a interface.
- Zustand para gerenciamento de estado (leve e performático)
- Separação de responsabilidades (components, screens, utils, store)
- Tipagem forte com TypeScript em todo o projeto
- Navegação tipada com React Navigation
- AsyncStorage para armazenamento local
- Abstração em camada própria (
storage/) para facilitar migração futura - Normalização de dados ao carregar snippets
- Lazy loading de componentes pesados
- Memoização onde necessário
- Otimização de re-renders com Zustand
- Tema claro/escuro com detecção automática
- Feedback visual em todas as ações
- Animações suaves para transições
- Empty states informativos
- Loading states durante operações
- ✅ Android (5.0+)
- ✅ iOS (13.0+)
- Configure produtos no Google Play Console / App Store Connect
- Atualize os IDs em
src/utils/purchases.ts - Teste em sandbox antes de publicar
- Crie conta no Google AdMob
- Registre seu app
- Obtenha App IDs e Ad Unit IDs
- Atualize em
app.jsonesrc/utils/adMob.ts
# Usando EAS Build (recomendado)
npm install -g eas-cli
eas build --platform android --profile production
eas build --platform ios --profile production
# Ou build local
npx expo run:android --variant release
npx expo run:ios --configuration ReleaseEste projeto é privado e proprietário.
- Adicione a linguagem em
src/constants/languages.ts - O syntax highlighting funcionará automaticamente
- Crie arquivo em
src/i18n/(ex:es-ES.ts) - Copie estrutura de
pt-BR.tse traduza - Adicione em
src/i18n/index.ts
{
id: string;
title: string;
code: string;
language: CodeLanguage;
tags: string[];
isFavorite?: boolean;
createdAt: number;
updatedAt: number;
}# Limpar cache
npx expo start --clear
# Ou
rm -rf node_modules && npm install- Use Development Build (
npx expo run:android) em vez de Expo Go - Alguns módulos (compras, anúncios) não funcionam no Expo Go
- Verifique se os IDs dos produtos estão corretos
- Teste em sandbox primeiro
- Certifique-se de estar usando Development Build
GUIA_CONFIGURACAO.md- Configuração de compras e i18nGUIA_ADMOB.md- Configuração do AdMobINSTRUCOES_BUILD.md- Como criar builds
Desenvolvido com ❤️ usando React Native e Expo.
Versão: 1.0.0
Última atualização: 2024