Skip to content

rebss1/StatApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📊 StatApp

Тестовое задание iOS-разработчика

StatApp — приложение для просмотра статистики профиля: посетители, демография (пол и возраст) и динамика наблюдателей. Отдельный модуль StatLogic отвечает за расчёты и хранение данных, чтобы UI оставался тонким и легко поддерживаемым.

Demo

✨ Основные возможности • 📈 Карточка «Посетители» Краткое резюме: текущее количество и изменение относительно начала периода (рост / падение / без изменений). • 📊 Линейный график посещений Переключение режимов: • «По дням» • «По неделям» • «По месяцам» • 👥 Блок «Чаще всех посещают ваш профиль» Список топ-посетителей с именем, возрастом и аватаром-инициалами. • ⚧ Блок «Пол и возраст» • Кольцевая диаграмма распределения по полу (М / Ж) • Легенда с цветными точками • Горизонтальные бары по возрастным группам (0–17, 18–24, 25–34, 35–44, 45+) • Фильтрация по периодам: Сегодня / Неделя / Месяц / Все время • 👀 Блок «Наблюдатели» Две строки: • «Новые наблюдатели» • «Перестали наблюдать» У каждой — значение и мини-график тренда. • 📱 Современный кастомный UI на UIKit с использованием кастомных вью и PinLayout.

🧱 Архитектура проекта

Приложение разделено на два слоя: • StatApp (iOS-клиент) — UIKit-экран со стэком кастомных вью: • StatisticsViewController + вью StatTrendRowView, VisitorsLineChartView, GenderDonutChartView, AgeGroupRowView, TopVisitorRowView и т. д. • StatLogic (Swift Package) — доменная логика и работа с данными: • менеджер EpisodeStatisticsManager • модели EpisodeStatistics, EpisodeUser и др. • преобразование DTO → доменные модели → данные для UI

Используются принципы разделения ответственности: • UI ничего не знает о способе хранения данных • StatLogic можно переиспользовать в другом клиенте

🛠 Используемые технологии • UIKit — основной интерфейс • PinLayout — декларативная верстка без Auto Layout • RxSwift — реактивное обновление данных и биндинги • Swift Package Manager — подключение модуля StatLogic • Realm (через RealmProvider в StatLogic) — локальное хранилище статистики • Кастомные графики и диограммы для отображения трендов и распределений

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages