Developing a Mobile App for Rock Climbing
A rock climbing app is a specialized route database (climbers call them "routes") with rigid difficulty categorization system, rock map and crags, ascent log, and social layer. It technically overlaps with hiking apps, but the emphasis is fundamentally different: not tracking path, but cataloging specific climbing routes with detailed climbing data.
Route Database: Data Structure
Each route: name, rock coordinates (not track, but start point), difficulty rating system (UIAA, French, Yosemite Decimal System), length in meters, number of ropes, type (sport/trad/bouldering/multi-pitch), orientation (N/S/E/W—important for surface temperature), first ascent (name, year), climbing description (beta), route photo with marked line.
Open data: 27crags.com and theCrag.com provide APIs—can use as base with custom UGC additions. theCrag license permits non-commercial use.
Route photo with drawn climbing line: on client Canvas/CALayer + UIPanGestureRecognizer for drawing path on photo. Saved as overlay (separate SVG Path over photo)—editable.
Difficulty Rating and Filters
Difficulty is a critical parameter. Conversion table between systems: UIAA 7+ = fr 7b = YDS 5.12b. Store in numeric field difficulty_numeric (float) for sorting and filtering, alongside string representation for each system. User selects preferred system in settings; app converts.
Filter on search: difficulty range, route type, orientation, length, height. iOS—UICollectionView with compositional layout for filter. Android—FlowRow of Material3 chips.
Ascent Log
Logbook: date, route, ascent type (redpoint/onsight/flash/attempt), partner, notes. Statistics: total meters, distribution by difficulty (histogram), redpoint progress per year.
Wishlist of routes—"want to climb." Flag routes: done/project/tried. Gamification layer: achievements ("first 7a", "100 routes", "all Crimea routes").
Rock and Crag Map
Two map modes: outdoor (rock areas, route start points) and indoor (climbing gyms with addresses, schedules, prices).
Rock clustering at low zooms—MapboxAnnotationOrchestrator with clustering. Tap cluster—zoom in. Tap rock—sheet with preview (number of routes, difficulty range, photo).
Offline map needed. Climbers often go to places without internet. MBTiles for specific crags downloaded in advance (20-50 MB per rock area).
Community
Ascent feed—friends shared redpoint. Comments on routes (conditions, "key shifted", "bolt broken"). Condition relevance—separate record type with TTL: "route wet" loses relevance after 72 hours.
Timeline
Basic app (route catalog, filters, map, log)—6-10 weeks. With user-generated photos with marked lines, offline maps, full community—3-5 months. Cost estimated individually.







