Mobile Platform Competencies

General Mobile Compentencies

  • Proficent in Swift or Kotlin
  • Experience with / understands nuances of mobile SDK development
  • Understands mobile build system and dependency management
    • Android: Gradle, Maven Repositories
    • iOS: Swift Package Manager, Cocoapods, and Carthage

UI Presentment

Strength:

  • Able to build out and style native UI
  • Understands how platform specific UI classes are used
    • Android: Activities, Fragments, ViewModels, Views, Jetpack Compose
    • iOS: UIKit, UIView, UIViewController, SwiftUI
  • Understands how to navigate to different screens within an app

Concern:

  • Unsatisfiable UI constraints
  • Creates a deeply nested view tree
  • Ignores accessibility support

Background Work & Networking

Strength:

  • Understands the execution of network calls within mobile
  • Familiar with tools for asynchronous work
    • Android: Coroutines, RxJava
    • iOS: Combine (or other reactive frameworks), Concurrency

Concern:

  • Network calls or long executing work blocks the UI thread

Mobile Architecture

Strength:

  • Aware of mobile architecture patterns (MVVM, MVC, MVI)
  • Provides a solution that has an easy to understand flow of data

Concern:

  • Introduces business logic within the view layer
  • No separation of concerns