Questão de Programação — Desenvolvimento Mobile — Quadrix 2025
- Código
- qg599997
- Banca
- Quadrix
- Órgão
- CRO-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Desenvolvimento de Sistemas de Informação
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: E — ERRADO. O Core Data não é uma biblioteca multiplataforma — ele é um framework exclusivo do ecossistema Apple (iOS, macOS, tvOS e watchOS), e não utiliza SQL puro como linguagem de consulta; ele trabalha com um modelo de objetos e, por baixo dos panos, pode usar SQLite como armazenamento, mas a interação é feita por meio de uma API orientada a objetos (NSManagedObject). A afirmação mistura dois conceitos: multiplataforma (que se refere a ferramentas como Flutter e React Native) e persistência relacional com SQL (que é o papel de bibliotecas como SQLite ou Room no Android).
O Core Data é um framework da Apple para gerenciar o ciclo de vida de objetos e sua persistência. Ele não é um banco de dados em si, mas uma camada de abstração que pode usar SQLite, XML ou memória como armazenamento subjacente. O desenvolvedor interage com objetos gerenciados (NSManagedObject) e consultas são feitas com NSFetchRequest, não com comandos SQL. Isso significa que, embora o Core Data possa usar SQLite como repositório, o desenvolvedor não escreve SQL puro — ele usa uma API de objetos.
Para entender a pegadinha, é preciso distinguir os conceitos:
Desenvolvimento nativo: cada plataforma tem suas próprias ferramentas. No iOS, usamos Swift/Objective-C com frameworks como Core Data; no Android, usamos Kotlin/Java com Room ou SQLite.
Desenvolvimento multiplataforma: ferramentas como Flutter (Dart), React Native (JavaScript) e Xamarin (C#) permitem escrever um código que roda em várias plataformas. O Core Data não se enquadra aqui, pois é exclusivo da Apple.
Persistência relacional com SQL: bibliotecas como SQLite (usada diretamente) ou Room (Android) permitem consultas SQL. O Core Data, apesar de poder usar SQLite, não expõe SQL ao desenvolvedor.
A banca explora a confusão entre "multiplataforma" e "persistência". O candidato que sabe que Core Data é do iOS já elimina a primeira parte; quem sabe que ele não usa SQL puro elimina a segunda. A questão é simples, mas exige conhecimento específico do ecossistema Apple.
Na prática, se você está desenvolvendo um app iOS e precisa persistir dados, pode usar Core Data (orientado a objetos) ou SQLite diretamente (com SQL). No Android, o equivalente ao Core Data seria o Room, que também abstrai o SQL, mas é específico do Android. Nenhum desses é multiplataforma.
Critério | Core Data | SQLite | Room |
|---|---|---|---|
Plataforma | Exclusivo Apple (iOS, macOS, etc.) | Multiplataforma | Exclusivo Android |
Linguagem de consulta | API orientada a objetos (NSFetchRequest) | SQL puro | SQL (com abstração via DAO) |
Papel | Camada de abstração (pode usar SQLite como armazenamento) | Banco de dados relacional | Biblioteca de persistência (abstrai SQLite) |
A afirmação está incorreta por dois motivos: (1) o Core Data é um framework exclusivo da Apple, não multiplataforma — ele não roda em Android; (2) ele não usa SQL puro — a interação é via objetos e consultas com NSFetchRequest, embora possa usar SQLite como armazenamento interno. A banca troca o Core Data por uma ferramenta multiplataforma genérica e atribui a ele uma característica (SQL puro) que pertence a bibliotecas como SQLite.
Para não errar, lembre-se: Core Data = iOS, orientado a objetos; SQLite = multiplataforma, SQL puro; Room = Android, abstrai SQL. Se a questão falar em "multiplataforma" e "SQL puro", desconfie — provavelmente é uma pegadinha.
Gabarito: E — ERRADO.
Link permanente: /questoes/qg599997