ios
iOS
Current Version
18.3
The "VIPER" software architecture pattern is an acronym that stands for View, Interactor, Presenter, Entity, and Router. It is a design pattern primarily used in iOS (Swift) application development to achieve a clean and modular structure for building scalable and maintainable applications.
Here is a brief overview of each component in the VIPER pattern:
-
View: The View layer represents the user interface (UI) components of the application. It is responsible for displaying data to the user and capturing user interactions. The View layer does not contain business logic and is passive, meaning it only sends user actions to the Presenter for processing.
-
Interactor: The Interactor serves as the business logic layer of the application. It encapsulates the use cases or application-specific operations. It receives input from the Presenter, performs the necessary data processing or operations, and then sends the output back to the Presenter.
-
Presenter: The Presenter acts as the middleman between the View and the Interactor. It receives user actions from the View, processes them, and decides what data to display in the View. The Presenter retrieves data from the Interactor and formats it before presenting it to the View. It also handles navigation and UI updates.
-
Entity: The Entity represents the application's data model or domain model. It encapsulates the business entities and defines the data structures used throughout the application. The Entity layer is independent of the other layers and can be shared across different modules of the application.
-
Router: The Router handles the navigation and flow control between different modules or screens of the application. It receives instructions from the Presenter and determines which screens to present or how to transition between them. It helps decouple the navigation logic from the rest of the application.
The VIPER pattern promotes separation of concerns, modularization, and testability by clearly defining the responsibilities of each component. It allows for easier collaboration between developers, as different components can be developed independently. Additionally, the pattern helps in maintaining code quality and scalability as the application grows.
It's important to note that while VIPER is primarily associated with iOS development, the concepts and principles behind it can be adapted and applied to other platforms or frameworks.
Update Support
iPhone 14 Software Support Timeline
Full iOS Updates
- 2022: iOS 16
- 2023: iOS 17
- 2024: iOS 18
- 2025: iOS 19
- 2026: iOS 20
- 2027: iOS 21
Security-Only Updates
- ~2029: Final security patch expected.
https://www.statista.com/chart/5824/ios-iphone-compatibility/
List Devices
xcrun simctl list devices
XCode
- https://blog.pragmaticengineer.com/10-engineering-challenges-due-to-the-nature-of-mobile-applications/
- https://developer.apple.com/app-store/review/guidelines/#acceptable
- https://www.fastcompany.com/90623905/ios-web-apps
- https://developer.apple.com/app-store/review/
- https://itunes.apple.com/app/id1445341875
- https://github.com/dkhamsing/open-source-ios-apps
iPhone Debut Timeline
- 2007: iPhone
- 2008: iPhone 3G
- 2009: iPhone 3GS
- 2010: iPhone 4
- 2011: iPhone 4s
- 2012: iPhone 5
- 2013: iPhone 5s
- 2014: iPhone 6 + iPhone 6 Plus
- 2015: iPhone 6s + iPhone 6s Plus
- 2016: iPhone 7 + iPhone 7 Plus
- 2017: iPhone 8 + iPhone 8 Plus + iPhone X
- 2018: iPhone XS + iPhone XS Max + iPhone XR
- 2019: ?
When will the 2019 iPhone be released?
Since the iPhone 5, Apple has announced every flagship iPhone during a special event held the first or second Tuesday or Wednesday of September.
- iPhone 5: September 12, 2012
- iPhone 5s: September 10, 2013
- iPhone 6: September 9, 2014
- iPhone 6s: September 9, 2015
- iPhone 7: September 7, 2016
- iPhone 8: September 12, 2017
- iPhone X: September 12, 2017
Likewise, since the iPhone 5, Apple has shipped every flagship iPhone the second Friday following the event, with the exception of the iPhone 6s in 2015, which shipped the third Friday following the event, and iPhone X, which shipped on November 3:
- iPhone 5: September 21, 2012
- iPhone 5S: September 20, 2013
- iPhone 6: September 19, 2014
- iPhone 6s: September 25, 2015
- iPhone 7: September 16, 2016
- iPhone 8: September 22, 2017
- iPhone X: November 3, 2017
Apple Compiler Apple's compiler technology has migrated from GCC to LLVM over recent years. The transition from PowerPC/PowerPC64 over to Intel 32-bit/Intel 64-bit for binary executable code. This support for different processors added extra size to the application. On mobile devices, code size is even more important since the device has less space to begin with. At first the LLVM tool chain and infrastructure was used to compile GPU code for OpenGL.