The Development of an iOS App

I am a man of many random hobbies and over the last few years I have gotten into precision rifles and rifle competitions. They are an absolute blast and a great way to spend a weekend. During these competitions shooters engage targets at different ranges from different shooting positions. If you are unfamiliar with ballistics, a bullet does not travel in a straight line but rather in a parabolic arc.

Why does a bullet straight 25 meters before starting a trajectory? - Quora


The shooter must adjust his point of aim in his optic in order to hit the target depending on the targets distance and the bullets ballistics. There are calculators that will give you these optic adjustments based on your gun and ammunitions characteristics. Shooters will take these “DOPE” (Data of Previous Engagement) numbers and write them onto a card or armband so they know their adjustments while shooting the competition. I am creating an Apple Watch application that will allow users to input this data and display it to the shooter during the matches stages. This is the MVP (minimum viable product) I would like to deliver-

  1. App Home Screen:
    • The home screen will provide options to create a new match card or access saved match cards.
  2. Creating a New Match Card:
    • When creating a new match card, you’ll have the option to name the card for easy reference.
    • You can then add stages to the match card. Each stage represents a specific distance where you’ll be shooting.
    • For each stage, you can specify the yardage distances and DOPE adjustments using the Apple Watch dial.
  3. Setting  Scope Adjustments:
    • Once you’ve set the yardage distance for a stage, the application will allow you to set the scope adjustment for the stages distances.
    • You can adjust the data using the Apple Watch dial or by entering a specific value.
  4. Saving Match Cards:
    • After setting the yardage distance and scope adjustment for a stage, you can save the match card.
    • The application will store all the information, including the stage details and corresponding yardage and adjustment values.
  5. Accessing Saved Match Cards:
    • On the home screen, you can access your saved match cards.
    • Selecting a match card will display the stages and their corresponding yardage and adjustment values.
    • You can edit or delete stages if needed.
  6. Using the Match Card during a Match:
    • When participating in a shooting match, you can open the specific match card you want to use.
    • The application will display the stages and their corresponding yardage and adjustment values for quick reference.
    • You can easily switch between stages to view the relevant information.

Overall, this application will provide a user-friendly interface on your Apple Watch, allowing you to set and save yardage distances and scope adjustments for each stage of your competition. It will serve as a handy tool for rifle shooters, providing quick access to the necessary information during matches.

Here will be the steps taken to develop the application.

  1. Design and Wireframing:
    • Begin by designing the user interface (UI) for the application. Consider the layout, screens, and navigation flow.
    • Use wireframing tools or design software to create mockups of the screens to visualize the app’s structure.
    • Since this is my own creation and Im not showing it to a client I skipped this step!
  2. Set up the Development Environment:
    • Install the necessary software development tools, such as Xcode (the integrated development environment for iOS and watchOS apps).
    • Make sure you have a valid Apple Developer account to test and deploy the application.
  3. Create a New Project:
    • Open Xcode and create a new project for a watchOS application.
    • Choose the appropriate template based on your requirements, such as SwiftUI or UIKit.
  4. Design the User Interface:
    • Implement the user interface for each screen based on your wireframes.
    • Use SwiftUI or Interface Builder (if using UIKit) to add and arrange UI elements like buttons, labels, and sliders.
  5. Handle User Input:
    • Implement the logic to handle user interactions, such as rotating the watch dial to set yardage distance or adjusting values.
    • Use the appropriate APIs provided by watchOS to detect and respond to user inputs.
  6. Manage Match Cards and Stages:
    • Create data models to represent match cards and stages.
    • Implement features to create new match cards, add stages, and manage saved match cards.
  7. Store Data:
    • Decide on the data storage mechanism for saving match card information.
    • You can use Core Data, UserDefaults, or a custom file-based storage solution to persist data between app launches.
  8. Implement Saving and Loading Functionality:
    • Add functionality to save and load match card data using the chosen data storage mechanism.
    • Handle the necessary operations for creating, updating, deleting, and retrieving match cards and stages.
  9. Test and Debug:
    • Regularly test the application on the Apple Watch simulator or a physical device.
    • Identify and fix any bugs or issues that arise during testing.
  1. Submit to App Store!

Testing the build.

After many hours and lots of bugs I have a working alpha of the app thats available to download in TestFlight. I am currently testing it on my iPhone! I’m writing down any bugs or things I encounter while testing so I can go back and fix them. So far the app is running on the iPhone and working as it should. There are a few minor bugs I have found so far.


Once I have tested the iOS portion of the application I will need to start designing the Watch application. I basically want it to mirror the Match View screen so a shooter has their DOPE available right on their wrist!