Skip to content

🟡 MEDIUM: Extract business logic from RegistrationView #219

@arkavo-com

Description

@arkavo-com

Problem

RegistrationView.swift (800 lines) mixes UI code with business logic.

Business Logic in View

  1. Form validation - Should be in validator service
  2. Screen name availability checking - Should be in service
  3. Network calls - Should be in repository
  4. Debouncing logic - Should be utility
  5. Animation timing - Acceptable in view

Impact

  • Cannot unit test validation logic
  • Business rules scattered in UI code
  • Difficult to reuse validation elsewhere

Proposed Architecture

Registration Feature
├── RegistrationView (~400 lines)
│   └── Pure UI, delegates to ViewModel
├── RegistrationViewModel (~200 lines)
│   └── UI state, form state
├── RegistrationValidator (~100 lines)
│   └── Validation rules, error messages
└── ScreenNameService (~100 lines)
    └── Availability checking, debouncing

Acceptance Criteria

  • View reduced to <400 lines
  • Validation rules testable without UI
  • Screen name checking in dedicated service
  • All business logic unit tested

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions