Buzzard to Peregrine Transition

Understanding the evolution from the Buzzard (legacy) native apps to the Peregrine (modern) React Native platform.

This page documents the strategic transition from the legacy Buzzard native apps to the current Peregrine React Native platform.

Overview

The Phenom mobile application has evolved through two major platform generations:

  1. Buzzard (Legacy): Native iOS (Swift) and Android (Kotlin) apps built on Firebase
  2. Peregrine (Current): Cross-platform React Native app built with Expo

This document explains the relationship between the two platforms and the transition strategy.

flowchart LR A([Buzzard iOS
Swift]):::legacy --> C([Peregrine
React Native]):::current B([Buzzard Android
Kotlin]):::legacy --> C C --> D([iOS App Store]):::deploy C --> E([Google Play]):::deploy classDef legacy fill:#151515,stroke:#d73429,color:#ffffff,rx:30 classDef current fill:#121010,stroke:#a5e3e8,color:#a5e3e8,rx:30 classDef deploy fill:#1a1a1a,stroke:#a5e3e8,color:#ffffff,rx:30

Platform Comparison

Aspect Buzzard Peregrine
Platform Native iOS (Swift) + Android (Kotlin) React Native + Expo (cross-platform)
Backend Firebase (Firestore, Cloud Functions, Auth) Hasura GraphQL + PostgreSQL + AWS Cognito
Real-time Messaging PubNub Matrix Protocol
Maps Google Maps SDK Mapbox GL
Geospatial Basic lat/lng H3 hexagonal indexing
Camera Native camera APIs Vision Camera v5 + React Native Skia HUD
Content Auth None C2PA Content Credentials
Video Processing Basic capture FFmpeg Kit + custom post-processor
Internationalization English only 7 languages (i18next)
Development Team ABCloudz (external) Internal team
Repositories Buzzard-iOS, Buzzard-Android PhenomApp

Why the Transition

Limitations of Buzzard

  • Dual codebase: Maintaining separate Swift and Android codebases doubled development effort
  • External dependency: Reliance on ABCloudz for all development work
  • Firebase limitations: Vendor lock-in with limited query capabilities compared to PostgreSQL + GraphQL
  • No content authentication: No C2PA support for verifying captured media authenticity
  • Limited geospatial: Basic coordinate storage without advanced spatial indexing

Peregrine Advantages

  • Single codebase: React Native serves both iOS and Android from one codebase
  • Internal control: Development managed by the internal team
  • Modern stack: Hasura GraphQL, AWS infrastructure, advanced geospatial (H3)
  • Content credentials: C2PA integration ensures media authenticity
  • Advanced visualization: Skia-based camera HUD, Mapbox maps, 3D globe
flowchart TD A([Buzzard in Production]):::legacy --> B([Peregrine Development]):::current B --> C([Feature Parity Reached]):::milestone C --> D([Beta Testing]):::current D --> E([User Migration]):::milestone E --> F([Buzzard End-of-Life]):::legacy classDef legacy fill:#151515,stroke:#d73429,color:#ffffff,rx:30 classDef current fill:#121010,stroke:#a5e3e8,color:#a5e3e8,rx:30 classDef milestone fill:#d73429,stroke:#ffffff,color:#ffffff,rx:30

Current Status

  • Buzzard: In maintenance mode. ABCloudz handles bug fixes and minor updates on a Time and Material basis. Production version 1.2.3 (build 23) on iOS.
  • Peregrine: In active development. See Peregrine Feature Set for the production feature set and deployment architecture.

Transition Strategy

The transition follows a parallel approach:

  1. Buzzard remains in production for existing users
  2. Peregrine is developed to feature parity and beyond
  3. Once Peregrine reaches production readiness, users migrate to the new app
  4. Buzzard enters end-of-life