Skip to content

Development

Samuel Yanez edited this page Oct 11, 2026 · 4 revisions

Development

Run commands from the repository root. The app uses the hosted Supabase backend by default; running it locally is optional.

Run the app

  1. Use an Xcode version that supports the project's iOS 26.5 deployment target.
  2. Copy Chirpy/Configuration/LocalConfiguration.example.plist to Chirpy/Chirpy/LocalConfiguration.plist.
  3. Set ChirpyAPIKey to the personal API key configured on the backend.
  4. Open Chirpy/Chirpy.xcodeproj, select the Chirpy scheme and an iPhone Simulator, then run.

The copied plist is Git-ignored. Its key is embedded in the build, so keep the key and build private. Never put a Supabase service-role key in the app. See Backend: Personal API key for key setup and rotation.

For a local backend, change AppConfiguration.baseURL in Chirpy/Chirpy/AppConfiguration.swift to http://127.0.0.1:54321 for the Simulator, or your Mac's local network address for a physical device.

Tests and previews

In Xcode, choose an iPhone Simulator and use Product › Test (⌘U). Swift Testing covers loading, cancellation, pagination, likes, deletion, shared profile state, networking, and models with fake clients.

SwiftUI previews use PreviewChirpyClient and sample models under Chirpy/Chirpy/Preview Content, without calling the backend. Use the available loaded, empty, error, dark, and large-text previews to check layout.

Quick manual check

  • Browse Home, open a detail, toggle a like, scroll through more posts, and refresh.
  • Create a post; check that Home reloads and a failed submission preserves the draft.
  • Search, change the query quickly, and clear it. Check empty results and pagination.
  • Open Profile; check the header, author-filtered posts, empty state, and refresh.
  • Delete one of your own posts from detail. Check confirmation, return to the list, and removal after refreshing other tabs. Other birds' posts should have no delete action.
  • Check retry behavior with the backend unavailable, plus large text, dark mode, and VoiceOver.

For code responsibilities, see Architecture. Backend tests and deployment commands live on Backend.

Clone this wiki locally