The Startup
Published in

The Startup

My iOS App Creation Process — Part 2

Photo by Fotis Fotopoulos on Unsplash
  1. Develop user personas and associated user stories
  2. Detail the Desired App Features and Requirements
  3. Determine Best App Architecture
  4. Determine the minimal viable product (MVP) for the initial app release
  5. UX design (SwiftUI)
  6. Data Modeling (JSON)
  7. Coding and Testing
  8. Preparing for iOS App Store Submission
  9. Develop plans for a future version to implement features that didn’t make the initial MVP for release

Determine Best App Architecture

Photo by Tobias Keller on Unsplash
  1. Does the app need to be available on only iOS or both iOS and Android?
  2. Does the app’s content need to be available on the web?
  3. Does the app make use of Location-based services?
  4. Does the app display a map view?
  5. Does the app need to access/retrieve/publish information from/to an online service? If Yes, is there an Application Programming Interface (API) for the online service?
  6. Does the app require user authentication to access or perform actions under the API methods?
  7. Does the app need to store user defaults?
  8. Does the app need to store data on the device for reloading later, such as on the next launch? If the app stores data or user defaults, does that data need to be synchronized to other devices the user utilizes?
  9. Does the app use Bluetooth networking for any of its functionality?
  10. Does the app require any encryption of its content, including storage of defaults?
Model-View-ViewModel (MVVM) Design Pattern
Initial App Architecture Diagram

Determine MVP for Initial App Release

  1. Group the app requirements under the appropriate architecture components
  2. Implement at least one (1) requirement from each grouping to build out the app’s foundational structure.
  3. Review the development scope for the MVP against the complete set of documented requirements. The review helps ensure future development work builds on a solid app foundation and avoids an all too common event where a developer must tear the app’s code apart to additional functionality for requirements not part of the initial MVP.
  4. Ensure the MVP is meaningful to the app user. In other words, the user must have a positive user experience with the MVP version of the app. For example, you wouldn’t choose the implement only the settings screen as part of the MVP for a photos app. You would want to ensure the screen(s) for the photos would be in the first release’s MVP, even if you needed to forego the Settings screen initially.
  • View — Photo Grid that can display any of the photo streams
  • View — Photo Details for an individual photo, including a map view of its location if that data is available
  • View — Settings to allow for the user to change the appropriate settings, including authentication with
  • ViewModel — PhotoStore which handles the data binding with the views and communicates with the models
  • Model — Photos to represent the photo streams
  • Model — Photo to represent an individual photo
  • Model — PhotoDetails depict details of a particular image such as the photographer, image title, image date, among other information.
  • Model — OAuth service to perform authentication with Flickr API
  • Model — Various Flickr API models to support API actions and errors



Get smarter at building your thing. Follow to join The Startup’s +8 million monthly readers & +768K followers.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jody Abney

I’m an iOS developer with extensive professional experience in Pharma IT, SAP implementation, Data Migration, Data Analytics/Data Science, and Machine Learning