Topics to learn before entering a role as a Senior Developer

Senior iOS Developer: Must Know topics for interview/to become better at the development

Being an iOS developer, we should be strong in the following topics and should be able to explain these on our own, which will make us better developers and will be helpful in the interview process as well.

  1. iOS App Life Cycle, application states, AppDelegate & SceneDelegate

  2. Class VS Struct
    1. Difference
    2. Use case scenario
    3. Responder chain or root class for UI kit elements(label, tableview….)
    4. ARC
    5. Cyclic reference and memory leak
    6. Weak vs. unowned
    7. Types of initializers and their use

  3. Functions and closures
    1. Trailing closure
    2. Escaping vs. non-escaping
    3. Capturing values in closure
    4. Defer
    5. Input/output parameter

  4. Protocols
    1. Protocol-oriented programming
    2. Can we have stored properties in the protocol
    3. Computed properties in protocol
    4. Default implementation of a protocol function — when to use it

  5. Extensions
    1. What’s the use
    2. Stored properties/ computed properties in an extension

  6. SOLID principles with an example

  7. Higher order functions
    1. Explain all
    2. Write your custom function that should behave as a map, sort, filter, or reduce

  8. Hashable

  9. Equatable

  10. Property wrappers

  11. Static function vs. class function

  12. Final keyword

  13. Access specifiers
    1. Internal
    2. Private
    3. File Private
    4. Public
    5. Open

  14. Enums
    1. Enums are Value type or a reference type?
    2. Computed Properties for cases
    3. Associated values
    4. Enum in parsing JSON using codable

  15. Storage
    1. Core data
    2. User defaults
    3. Cache

  16. Multithreading
    1. GCD vs. operation queue
    2. Sync vs. async
    3. Main vs. global queue
    4. Dispatch work item
    5. Dispatch Group

  17. Challenges faced in a project and how did you overcome that?

  18. Agile process

  19. CI CD — how to use it, like how the process will be (not the setup)

  20. Unit testing
    1. Dependency injection
    2. UI tests

Previous
Previous

Understanding Protocols

Next
Next

How to filter an Array in Swift