# Clean Architecture - React Native HealthKit Bridge

## 🏗️ Estrutura Proposta

```
src/
├── domain/                    # Camada de Domínio (Entidades e Regras de Negócio)
│   ├── entities/             # Entidades do domínio
│   ├── usecases/             # Casos de uso
│   ├── repositories/         # Interfaces dos repositórios
│   └── value-objects/        # Objetos de valor
├── data/                     # Camada de Dados (Implementação)
│   ├── repositories/         # Implementação dos repositórios
│   ├── datasources/          # Fontes de dados (Native, Mock)
│   └── mappers/              # Conversores de dados
├── presentation/             # Camada de Apresentação
│   ├── hooks/                # React Hooks
│   ├── providers/            # Context Providers
│   └── adapters/             # Adaptadores para React Native
└── infrastructure/           # Camada de Infraestrutura
    ├── config/               # Configurações
    ├── utils/                # Utilitários
    └── errors/               # Tratamento de erros
```

## 🎯 Princípios Aplicados

### 1. **Dependency Inversion Principle**
- Interfaces no domínio, implementações na camada de dados
- Dependências apontam para abstrações, não concretizações

### 2. **Single Responsibility Principle**
- Cada classe tem uma única responsabilidade
- Separação clara entre validação, negócio e infraestrutura

### 3. **Open/Closed Principle**
- Extensível para novos tipos de dados sem modificar código existente
- Novos providers podem ser adicionados facilmente

### 4. **Interface Segregation Principle**
- Interfaces pequenas e específicas
- Clientes não dependem de métodos que não usam

### 5. **Dependency Injection**
- Injeção de dependências via construtor
- Facilita testes e reduz acoplamento

## 🔄 Fluxo de Dados

```
React Component → Hook → UseCase → Repository → DataSource → Native Module
```

## 📋 Benefícios

1. **Testabilidade** - Fácil mock de dependências
2. **Manutenibilidade** - Código organizado e previsível
3. **Escalabilidade** - Fácil adição de novos recursos
4. **Flexibilidade** - Troca de implementações sem afetar domínio
5. **Clareza** - Responsabilidades bem definidas 