Development - samyanez94/Chirpy GitHub Wiki
Development
Run commands from the repository root. The app uses the hosted Supabase backend by default; running it locally is optional.
Run the app
- Use an Xcode version that supports the project's iOS 26.5 deployment target.
- Copy
Chirpy/Configuration/LocalConfiguration.example.plisttoChirpy/Chirpy/LocalConfiguration.plist. - Set
ChirpyAPIKeyto the personal API key configured on the backend. - Open
Chirpy/Chirpy.xcodeproj, select theChirpyscheme 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.