Core Dioxus — Native Access
Overview
Abstração de APIs nativas (câmera, GPS, storage local, notificações) via traits (ports) no domínio e adapters em infrastructure/, com mocks para testes e isolamento do hardware.
Config
- Ports em
features/<bc>/domain/ports/(traitsasync_trait) — retornamshared_kernel::Result<T>(Err(Vec<DomainError>), §5.1), nuncaResult<T, DomainError>de erro único. - Adapters em
features/<bc>/infrastructure/(impl usandodioxusquanto necessário, ou plugins). - Mocks para testes unitários em
#[cfg(test)](não compilar device code em testes). - Sujeitos a permissões de plataforma tratados no adapter, nunca no use case.
Exemplo (câmera)
// domain/ports/camera.rs
#[async_trait]
pub trait CameraPort {
async fn capture(&self) -> shared_kernel::Result<CameraPhoto>;
}
// infrastructure/camera_impl.rs
pub struct DioxusCamera;
#[async_trait]
impl CameraPort for DioxusCamera {
async fn capture(&self) -> shared_kernel::Result<CameraPhoto> {
// acionar câmera nativa via bridge/plugin
}
}
References
- Consultar
references/native-access-pattern.mdpara details de mocks e permissões.
Global Standards
- Consultar
../skills-standards.md.