# 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