IOS - peer-network/peer_backend GitHub Wiki

๐Ÿ iOS App โ€” Peer Network

This page documents the iOS client for Peer Network, built natively with Swift and structured around a modular architecture using SwiftUI, Combine, and Apollo GraphQL.


๐Ÿ“ฑ Project Overview

  • Built with SwiftUI for a modern, declarative UI
  • Uses Combine for reactive state and data flow
  • Integrates with the backend via Apollo GraphQL
  • Supports authentication, profile, feed, wallet
  • Maintains a clean project structure separating core, tests, and networking logic

๐Ÿงฑ Tech Stack

Layer Technology
Language Swift
UI Framework SwiftUI
State Management Combine
Networking Apollo GraphQL
Token Storage Keychain
Package Manager Swift Package Manager (SPM)
Build Tool Xcode

โœ… Implemented Features

  • โœ… User authentication (register, login, logout)
  • โœ… Profile management (username, bio, image)
  • โœ… Create and view posts and comments
  • โœ… Follow users
  • โœ… Wallet balance display
  • โœ… Token transfer functionality

๐Ÿšซ Not Yet Implemented

  • โŒ Push notifications
  • โŒ Real-time messaging (chat)
  • โŒ Referral registration flow

๐Ÿ†• Release Notes


โš™๏ธ Backend Integration

  • GraphQL schema and type generation is managed in ApolloGQL/
  • Authentication tokens are stored securely in Keychain
  • GraphQL operations use Apolloโ€™s strongly typed client
  • Custom payload logic is centralized in PayloadModification/

๐Ÿงช Testing

  • Unit tests are located in PeerAppTests/
  • UI tests are under PeerAppUITests/
  • Testing includes flows like login, post creation, and navigation

๐Ÿ“ Project Structure

peer_ios_frontend/
โ”œโ”€โ”€ ApolloGQL/             # GraphQL schema, code generation, fragments
โ”œโ”€โ”€ Packages/              # Swift Package Manager dependencies
โ”œโ”€โ”€ PayloadModification/   # Custom request/response interceptors
โ”œโ”€โ”€ PeerApp.xcodeproj/     # Xcode project settings
โ”œโ”€โ”€ PeerApp/               # Main application code (Views, ViewModels, Modules)
โ”œโ”€โ”€ PeerAppTests/          # Unit tests for core features
โ”œโ”€โ”€ PeerAppUITests/        # Automated UI tests
โ”œโ”€โ”€ .gitignore
โ”œโ”€โ”€ LICENSE
โ””โ”€โ”€ README.md

๐Ÿ““ Related Pages