Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

AllCatPics (iOS)

A SwiftUI app for iPhone and iPad. It lists cat pictures from a public API, shows a detail page with tags, and lets you add text to a picture and save it.

Context

Built in February 2024 (23 to 28 Feb) against a written brief: a list page with at least ten items from a JSON dataset, and a detail page fed by a public API. One week later I rebuilt the same app in React Native (all-cat-pics-rn).

What it shows

  • Layered architecture (presentation, domain, data, model) with SwiftUI views, ViewModels, a repository and a small dependency-injection container.
  • A custom navigation coordinator with lazy destination views.
  • Unit tests for the API client, local storage, repository and ViewModels, using hand-written mocks (including URLSession). UI tests use page objects and mocked network responses (SBTUITestTunnel).
  • Accessibility: raw IDs are turned into readable names for VoiceOver, and elements carry labels.
  • English and Spanish via String Catalogs, light and dark themes, a SwiftLint build phase, and Kingfisher for image caching with retry.

Stack

Swift 5, SwiftUI, XCTest, SBTUITestTunnel, Kingfisher, SwiftLint. iOS 15+, Xcode 15.

Run it

Open AllCatPics.xcodeproj in Xcode 15, let Swift Package Manager resolve the dependencies, and run on a simulator.

Looking back (2026)

The CI/CD plan in the original notes stayed a plan. Today I would add a CI workflow that runs the tests, use Swift Concurrency throughout, and look at the Observation framework instead of ObservableObject.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages