THE PROBLEM
Make a location useful in the field.
Amateur radio operators use the Maidenhead Locator System to communicate geographic positions. Other contexts call for latitude and longitude, UTM/UPS, or MGRS. MyQTH brings these representations into a focused native iOS utility, alongside an interactive map.
What the application does
MyQTH presents four- and six-character Maidenhead locators, latitude/longitude in three notations, and WGS 84 UTM, UPS, and MGRS coordinates. It supports on-demand and continuous location updates, a callsign on the map marker, grid-related zoom levels, and a position-details view with reported horizontal accuracy.
Architecture: location, mathematics, presentation
Core Location supplies the position. Explicit coordinate models represent the conversions. SwiftUI and MapKit present the result. Keeping the mathematics separate from presentation makes the conversion behavior easier to inspect and test.
PositionCoordinate models
ConversionSwiftUI + MapKit
Presentation
Two important design choices
Native frameworks and a focused scope. The application uses Apple frameworks without third-party runtime dependencies. It is a location utility rather than a full navigation application; that boundary keeps attention on clear representations and predictable behavior.
Precision is not accuracy. More digits do not make the device’s position measurement more accurate. The details view includes Core Location’s horizontal accuracy alongside formatted coordinates so the displayed precision has context.
Evidence of verification
The repository includes Swift Testing suites for Maidenhead, UTM, UPS, and MGRS behavior. Test cases address geographic boundaries, invalid input, formatting, and special UTM zones in Norway and Svalbard. The UTM suite includes explicit expected values for northern and southern hemispheres and both longitude boundaries.
These are checked-in tests, not a claim that the current build or every geographic input has been independently verified for this case study.
Scope and next steps
Coordinate calculations operate locally and do not require an account or a remote conversion service. The underlying position still depends on the device’s location services and permissions. A useful next step is extracting the coordinate logic into a documented Swift package, with independently sourced reference values and an explicit numerical-precision contract.