My iOS App Creation Process — Part 1

Jody Abney
4 min readNov 29, 2020
Photo by Abdelrahman Sobhy on Unsplash

Recently, I decided to go “all in” on the latest iOS14 frameworks, including SwiftUI (Apple’s declarative interface design) and Combine (Apple’s version of reactive programming). In this series of articles, I will take you through my development process from idea to readying the completed app for submission to the iOS App Store.

I chose to build an app for curating photos. Why? Because one of my hobbies is photography. While I enjoy taking pictures, I also appreciate photos taken by others and use them as inspiration for my images and honing my skills. I’ve been a longtime Flickr.com user, so I often use it as a photography inspiration source. They also have an API that allows developers to access photos and manage photo favorites, among other Flickr actions. It was the perfect choice as a photo source for my app.

Here are the significant steps I took to develop my app:

  • Develop user personas and associated user stories
  • Detail the Desired App Features and Requirements
  • Determine Best App Architecture
  • Determine the minimal viable product (MVP) for the initial app release
  • UX design (SwiftUI)
  • Data Modeling (JSON)
  • Coding and Testing
  • Preparing for iOS App Store Submission
  • Develop plans for a future version to implement features that didn’t make the initial MVP for release

In this article, I will focus on the first two (2) bullets to cover defining app requirements and understanding how users want to use the app.

User Personas and User Stories

Photo by UX Indonesia on Unsplash

I used a simplified design thinking approach to develop a small set of personas and corresponding abbreviated user stories. I took these user stories as the basis to build my requirements in the next step.

  • Gloria: She is a casual user who is only interested in viewing great photos every day while she’s riding the train to and from work. Great images are a means of escape during her humdrum daily commute. She is not interested in curating these photos or joining Flickr.com; Gloria is only interested in seeing the most recent inspirational images. She mainly uses her iPad during her commute.
  • Gregory: He is a semi-professional landscape and nature photographer. Gregory travels globally for his day job, so he often takes the opportunity to explore many places worldwide. He not only wants to use the curated photos as inspiration, but he also wants to find photos near his current location. Those nearby photos often give him insights into places and activities Gregory intends to photograph. Additionally, Gregory wants to save select images as Favorites in his Flickr account to compare his photo later against the original one that inspired him. Lastly, he likes to encourage other artists by leaving comments on their photos. Gregory primarily uses his iPhone 11 Pro since it offers him GPS functionality for traveling.
  • Theodore: He is a graduate student majoring in sociology with a specialization in social media influence on society. Theodore wants to see a non-curated stream of photos on Flickr, not one curated by Flickr editors. He’s specifically interested in seeing what Flickr users are posting most recently and how those photos may or may not relate to other social media trends (e.g., Twitter hashtags, Facebook posts). Theodore uses a mixture of an iPhone 8 and iPad Mini as his daily mobile devices.

Detail the Desired App Features and Requirements

Based on the user personas and their brief user stories, I derived the following requirements:

  1. The app shall return a set of curated photos from Flickr.com. (The most apparent photo feed is called Interestingness.)
  2. The app shall return a set of recent photos from Flickr.com.
  3. The app shall return a set of photos from Flickr.com taken nearby the user’s current GPS location.
  4. The app shall display the photo sets in a grid format that allows a user to tap on an individual photo to display it along with its details.
  5. The app shall display the photo details such as title, date taken, photographer, indicated image size, and copyright.
  6. The app shall display the map location where the photography took the photo.
  7. The app shall display a photo fullscreen when a user taps the picture from its detail screen.
  8. The app shall support user authentication (read/change) with Flickr.com to manage the user’s Favorites.
  9. The app shall allow the user to login/logout of Flickr.com,
  10. The app shall allow the user to change the boundary of nearby photos to be displayed.
  11. The app shall allow the user to change the count of photos displayed in the photo streams.
  12. The app shall allow the user to display/hide non-curated photo feeds such as Recent photos since some content may not be safe for work.
  13. The app shall natively support both iPhone and iPad.
  14. The app shall support portrait and landscape device orientations while effectively utilizing screen real estate.
  15. The app shall support following/unfollowing photographers based on the user favorites from the photo streams.
  16. The app shall support searching photographs within the available photo streams based on keywords assigned by either the photographer-assigned keywords or machine-assigned keywords.
  17. The app shall support commenting on photos, including the deletion and revision of previous comments the user created.

In my next article, I will detail the approach I use to determine the required app architecture. Additionally, I will explain my MVP process to bring focus and scope boundary to the initial app release version.

Until next time, stay safe and keep learning!

--

--

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