# 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