Job responsibilities
- Develop application architecture and interfaces
- Collaborate with a UX / UI designer
- Publish ready products in the app stores (Google Play, App Store)
- Support the applications
- Test and debug
- Prepare accompanying documentation, create instructions for working with the product
Skills
- Familiarity with structures and algorithms, principles of object-oriented programming
- Knowledge of network protocols
- Understanding of MVP, MVC, and MVVM patterns
- Experience with common libraries for the desired platform
- Experience with Git
- Knowledge of SQL
- Proficiency in programming languages specific to each platform
Somewhat less common requirements:
- Understanding of the principles of mobile app design and engineering
- Multithreading experience
- Familiarity with CI/ CD and client-server architecture
- Understanding of the principles of usability
Other popular skills for mobile are memory management , core animation , auto layout , and a framework for cross-platform development called Flutter.
To develop on iOS you need to know:
- One or more of the following programming languages: Swift, Objective-C, C++
- Xcode or Cocoa development environment
- Apple development guidelines
- Sometimes, the Core Data framework
For Android:
- One or more of the programming languages: Java, Kotlin, sometimes Scala, C, C#
- Android SDK (software development kit) development tools, utilities, and documentation
- REST architecture style and SOAP messaging protocol
- Android SDK