DEV Community

GoyesDev
GoyesDev

Posted on

Entrevista técnica - iOS

A continuación presento algunas preguntas para preparar una entrevista técnica para rol de iOS, y enlaces a algunos artículos que pueden servir de guía.


Programación Orientada a Objetos

  1. ¿Cuál es la diferencia entre clase y objeto?
  2. ¿Qué es la sobrecarga de métodos y para qué sirve?
  3. ¿Cuáles son las características de la programación orientada a objetos?
  4. ¿Qué es herencia?
  5. ¿Qué es polimorfismo?
  6. ¿Qué es abstracción?
  7. ¿Qué es encapsulamiento?
  8. ¿Qué es programación orientada a objetos?
  9. ¿Qué es herencia múltiple?
  10. ¿Qué es una interfaz?
  11. ¿Qué es una clase abstracta?

Manejo de memoria

  1. ¿Cuál es la diferencia entre strong, weak y unowned?
  2. ¿Cuál es la diferencia entre weak y unowned en Swift, y cómo afecta esto a la liberación de memoria bajo ARC?
  3. ¿Qué es un "capture list"?
  4. ¿Cuál es la diferencia entre despacho estático y dinámico?
  5. ¿Se puede usar despacho dinámico en tipos de dato por valor?
  6. ¿Qué es un witness table?
  7. ¿Qué es una VTable?

Swift

  1. Diferencia entre clase y estructura.
  2. ¿Cuál es la diferencia entre public y open?
  3. ¿Cuál es la diferencia entre fileprivate e internal?
  4. ¿Cuál es la diferencia entre static y class func?
  5. ¿Qué se entiende por programación orientada a protocolos?
  6. ¿Cuál es la función del protocolo Identifiable?
  7. ¿Qué son los macros de Swift?

Objective-C


UIKit

  1. ¿Qué es un UIViewController?
  2. ¿Quién controla el ciclo de vida de un UIViewController?

SwiftUI

  1. ¿Qué es un environmnet value?
  2. ¿Qué es un environment object?
  3. ¿Cuál es la diferencia entre StateObject, ObservedObject y State?
  4. ¿Cuál es la diferencia entre ejecutar trabajo asíncrono en .task vs .onAppear?
  5. Una vista se está repintando, sin embargo, necesito ejecutar una tarea solo una vez. Al usar .task y .onAppear, la tarea se ejecuta varias veces (debido al repintado de la vista). ¿Qué se puede hacer al respecto? (task(id:priority:_:))
  6. ¿Cuál es la función de ViewModifier dentro del sistema de diseño?
  7. ¿Qué es la identidad de una vista en SwiftUI? (implícita y explícita)

Concurrencia

  1. ¿Qué es el RunLoop?

GCD

  1. ¿Cuál es la diferencia entre una cola serial y una concurrente?
  2. ¿Qué es un "dispatch barrier"?

Combine

RxSwift

Swift Concurrency

  1. ¿Qué es nonisolated?
  2. ¿Cómo prevenir data races en Swift 6.2? (Sendable)
  3. ¿Qué es "actor re-entrancy"? ¿Qué problemas puede causar?

Automatización de pruebas

  1. ¿Cómo funciona un framework de tipo xUnit?
  2. ¿Qué partes componen el framework "XCTest"?
  3. ¿Qué es una prueba unitaria? ¿Para qué sirve?
  4. ¿Qué es una prueba de integración?
  5. ¿Qué es una prueba de extremo a extremo?
  6. ¿Qué es una prueba de contrato?
  7. ¿Qué es una prueba de snapshot?
  8. ¿Qué es una prueba exploratoria?
  9. ¿Qué es una prueba de humo?
  10. ¿Qué prácticas ayuda dentro del código de producción a escribir pruebas? (e.g. inversión de control, inyección de dependencias)
  11. ¿Es posible construir pruebas automatizadas para un Singleton?
  12. ¿Está bien tener 100% de cobertura de las pruebas sobre el código?

Persistencia en base de datos

CoreData

  1. ¿Cuáles son las opciones de CodeGen de CoreData?
  2. ¿Cuáles son las clases que componen el stack de CoreData?
  3. ¿Qué tipos de migraciones existe?
  4. ¿Cuáles son las reglas de borrado?
  5. ¿Cómo se crea un modelo de datos?
  6. ¿Cómo se manipulan los datos de una base de datos?

Realm

SwiftData

SQLite


Consumo de servicios web

  1. ¿Cómo descargar un archivo grande y reanudar la descarga si el internet falla?

URLSession

Alamofire

Moya


DevOps

  1. ¿Cómo funciona un pipeline de CI/CD?

Algoritmos y complejidad computacional

  1. ¿Qué es la biblioteca Algorithms?

Metodologías ágiles

  1. ¿En qué consiste SCRUM?
  2. ¿En qué consiste Waterfall?
  3. ¿En qué consiste Kanban?
  4. Cuéntame una situación en la que seguir estrictamente una metodología ágil (Scrum, Kanban, etc.) iba en contra de entregar valor. ¿Qué decidiste cambiar y por qué?
  5. ¿Cómo mantienes principios ágiles cuando el equipo depende de múltiples equipos, áreas no técnicas o stakeholders con mentalidad waterfall?
  6. ¿Qué métricas usas para saber si un equipo ágil está funcionando bien y cuáles evitarías usar? ¿Por qué?
  7. Háblame de un equipo “ágil” que no estaba funcionando. ¿Cómo identificaste el problema y qué acciones tomaste?
  8. ¿Cómo cambia tu rol como Senior/Staff Engineer o líder técnico en un equipo verdaderamente ágil frente a uno tradicional?

Flujo de trabajo


Arquitecturas de software

  1. ¿Qué es el Diseño Orientado al Dominio?
  2. ¿Qué es una arquitectura basada en capas?
  3. ¿Qué es Clean Architecture?
  4. ¿Cuál es la diferencia entre inyección de dependencias, inversión de control e inversión de dependencias?

MVC

MVP

MVVM

VIPER

TCA


Patrones de Diseño GoF

  1. ¿En qué consiste el Patrón: Abstract Factory?
  2. ¿En qué consiste el Patrón: Builder?
  3. ¿En qué consiste el Patrón: Factory Method?
  4. ¿En qué consiste el Patrón: Prototype?
  5. ¿En qué consiste el Patrón: Singleton?
  6. ¿En qué consiste el Patrón: Decorator?
  7. ¿En qué consiste el Patrón: Facade?
  8. ¿En qué consiste el Patrón: Iterator?
  9. ¿En qué consiste el Patrón: Observer?
  10. ¿En qué consiste el Patrón: Strategy?
  11. ¿En qué consiste el Patrón: State?
  12. ¿En qué consiste el Patrón: Template Method?
  13. ¿En qué consiste el Patrón: Visitor?
  14. ¿En qué consiste el Patrón: Bridge?
  15. ¿En qué consiste el Patrón: Composite?
  16. ¿En qué consiste el Patrón: Flyweight?
  17. ¿En qué consiste el Patrón: Proxy?
  18. ¿En qué consiste el Patrón: Adapter?
  19. ¿En qué consiste el Patrón: Chain of Responsibility?
  20. ¿En qué consiste el Patrón: Command?
  21. ¿En qué consiste el Patrón: Interpreter?
  22. ¿En qué consiste el Patrón: Mediator?
  23. ¿En qué consiste el Patrón: Memento?
  24. ¿Qué diferencias/similitudes encuentra entre los patrones Factory Method y Template Method?
  25. ¿Qué diferencias/similitudes encuentra entre los patrones Strategy y State?
  26. ¿Cuál es la categorización gamma?
  27. ¿Cuál es la característica de los patrones creacionales?
  28. ¿Cuál es la característica de los patrones estructurales?
  29. ¿Cuál es la característica de los patrones comportamentales?

Patrones GRASP

  1. ¿En qué consiste el Principio: Experto en información (Information expert)?
  2. ¿En qué consiste el Principio: Creador (Creator)?
  3. ¿En qué consiste el Principio: Bajo acoplamiento (Low coupling)?
  4. ¿En qué consiste el Principio: Alta cohesión (High cohesion)?
  5. ¿En qué consiste el Principio: Controlador (Controller)?
  6. ¿En qué consiste el Principio: Indirección (Indirection)?
  7. ¿En qué consiste el Principio: Polimorfismo (Polymorphism)?
  8. ¿En qué consiste el Principio: Fabricación pura (Pure fabrication)?
  9. ¿En qué consiste el Principio: Variaciones protegidas (Protected variations)?
  10. ¿Qué es cohesión?
  11. ¿Qué es acoplamiento?

Principios SOLID

  1. ¿En qué consiste el Principio de Responsabilidad Única?
  2. ¿En qué consiste el Principio de Abierto para extensión y Cerrado para modificación?
  3. ¿En qué consiste el Principio de Sustitución de Liskov?
  4. ¿En qué consiste el Principio de Segregación de Interfaces?
  5. ¿En qué consiste el Principio de Inversión de Dependencias?

Top comments (0)