It’s recommended to follow the following principles to build first-class Software.
- Apply analytical skills at each stage of the Software Development Process – to ensure the UX is great.
- Stick to Native Frameworks provided by Apple where possible – to ensure the best User Experience.
- Ensure the error handling is done in a good way, and connectivity issues, server downtime issues are handled properly.
- Taking into account the market needed to be covered – wisely decide on the minimal supported iOS Version. The required minimal supported iOS version influences the Technology Stack.
- If the market requires to support iOS 16+ it’s recommended to use SwiftUI only for UI layer of the project. If older iOS versions support is required – it’s recommended to use UIKit or a combination of SwiftUI and UIKit.
- Stick to Native Frameworks provided by Apple to guarantee maintainability.
- Modularise the application. So that potentially it could be possible to separate the Core Module from Networking Layer and set of other features. Make sure that potentially the modules can be exported as CocoaPods or Swift Packages.
- Cover the non-UI Modules with Unit Tests.
- On each iteration perform the Memory Management Profiling – to ensure that the app could run without out-of-memory exceptions.
- Keep in mind the migration plans and versions compatibility.
- Apple manages the most parts related to security. Like even ensuring the mobile apps will use only SSL encrypted networking.
- Take care of sensitive strings, keeping in mind possibility of decompilation. Obfuscate the sensitive strings.
- Pay attention to the API vulnerabilities, communicate.
- Hide the Business Logic behind meaningful extendable interfaces.