Skip to content

ricotandrio/pulse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pulse

Pulseis a iOS application (iOS 16.6+) designed to provide real-time cryptocurrency market data. It is built entirely with UIKit using a programmatic approach (no Storyboards or XIBs) and follows the VIPER design pattern for maximum scalability and testability using XCTest. The app integrates Binance REST APIs and Binance WebSockets to support real-time data streaming.

Table of Contents

Architecture

The project is organized into logical layers to promote reusability and maintainability:

Common

Shared resources and utilities:

  • Extensions: Robust logic for Decimal, Int, and String to handle currency formatting and number abbreviation.
  • Token: Centralized design system for colors and UI constants.
  • Models: Shared data models used across the app.

Network & Services

A decoupled networking layer to isolate API logic from the UI:

  • Core: Contains the APIClient, request logging, and generic error handling.
  • Services: Specific implementations for Market data, handling Binance-specific endpoints and responses.
  • WebSocket: Dedicated layer for real-time connection lifecycles, ensuring that live feeds are managed independently of the View state.

Scenes

Feature-based modules following the VIPER pattern, each encapsulating its own:

  • Contract: Defines the interfaces for View, Interactor, Presenter, and Router.
  • View: Programmatic UI components and layout.
  • Interactor: Business logic and data manipulation.
  • Presenter: Prepares data for display and handles user interactions.
  • Entity: Data models specific to the feature.
  • Router: Manages navigation and screen transitions.

Demo Video

About

iOS app for real-time cryptocurrency market data

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages