Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Tracker - Приложение помогает пользователям формировать полезные привычки и контролировать их выполнение.

Notifications You must be signed in to change notification settings

Dzhabaev/Tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

29 Commits

Repository files navigation

Tracker

Tracker - приложение для отслеживания привычек и целей, разработанное для iOS. Помогает пользователям формировать полезные привычки и контролировать их выполнение.

Описание

Пользователи могут создавать трекеры для привычек и нерегулярных событий. Они могут задавать расписание, выбирать эмодзи и цвет для каждого трекера, а также просматривать статистику достижений. Приложение поддерживает темную тему, интегрированную аналитику и предоставляет возможность проведения скриншот тестов.

ScreencastTracker

Инструкция по развёртыванию или использованию

Приложение использует Core Data и SQL для хранения данных, поэтому для полноценной работы требуется подключение к интернету для аналитики.

Для запуска приложения необходимо клонировать репозиторий и запустить проект в Xcode выполнив следующие шаги:

  1. Клонировать репозиторий на локальную машину:

    git clone https://github.com/Dzhabaev/Tracker.git
  2. Перейти в папку проекта, к примеру:

    cd ~/Tracker
  3. Открыть проект с помощью Xcode:

    open Tracker.xcworkspace
  4. Запустить проект на симуляторе или устройстве.

Системные требования

  • Xcode 12.0 или выше
  • Swift 5.3 или выше
  • iOS 13.4 или выше
  • Поддержка iPhone X и выше
  • Адаптация под iPhone SE
  • Предусмотрен только портретный режим
  • Вёрстка iPad не предусмотрена
  • Зависимости: SnapshotTesting, YandexMobileMetrica

Планы по доработке

В планах по доработке:

  • Скриншот-тесты для всех экранов.
  • Переписать все экраны на архитектуру MVVM.
  • Реализовать переключение между датами через swipe влево и вправо.

Стек технологий

Проект использует:

  • Swift для разработки мобильного приложения.
  • UIKit для построения пользовательского интерфейса.
  • MVVM (Model-View-ViewModel) архитектура.
  • Core Data и SQL для хранения данных.
  • UICollectionView для отображения трекеров.
  • UIPageViewController для онбординга.
  • Snapshot Testing для создания скриншот тестов.

Расширенная техническая документация

Ссылки
Структура проекта
  • Resources: Дополнительные ресурсы.

    • Colors: Палитра цветов приложения.
    • Localizable: Локализация приложения.
  • Onboarding: Модули для онбординга.

    • TabBarController: Основной контроллер вкладок.
  • Trackers: Модули для трекеров.

    • TrackersViewController: Контроллер отображения трекеров.

    • FiltersViewController: Контроллер фильтров.

    • TrackersCell: Ячейки трекера.

    • Creating: Модули для создания трекеров.

      • CreatingTrackerViewController: Контроллер создания трекеров.

      • BaseTrackerViewController: Базовый контроллер трекеров.

      • EditingHabitsViewController: Контроллер редактирования трекеров.

      • Regular: Модули для привычек.

        • NewRegularViewController: Контроллер создания новых привычек.
        • Schedule: Модули для расписания.
          • ScheduleViewController: Контроллер расписания.
      • Irregular: Модули для нерегулярных событий.

        • NewIrregularViewController: Контроллер создания новых нерегулярных событий.
      • Category: Модули для категорий.

        • CategoryViewController: Контроллер категорий.
        • CategoryListViewModel: Модель представления списка категорий.
        • NewCategoryViewController: Контроллер создания новой категории.
  • Statistic: Модули для статистики.

    • StatisticsViewController: Контроллер статистики.

    • CustomView: Пользовательские представления.

  • Models: Модели данных.

    • Tracker: Модель трекера.

    • TrackerCategory: Модель категории трекера.

    • TrackerRecord: Модель записи трекера.

    • Schedule: Модель расписания.

  • Extensions: Расширения для различных классов.

    • UITextField+Extension: Расширения для текстового поля.
  • CoreData: Модули для работы с Core Data.

    • TrackerStore: Хранилище трекеров.

    • TrackerCategoryStore: Хранилище категорий трекеров.

    • TrackerRecordStore: Хранилище записей трекеров.

    • UIColorMarshalling: Утилиты для работы с цветами.

  • Analytics: Модули для аналитики.

  • TrackerTests: Модуль для тестирования.

Настройка CI для запуска

Проект можно интегрировать с любой CI/CD системой, поддерживающей сборку проектов Swift и Xcode.

Создатели

Чингиз Джабаев

About

Tracker - Приложение помогает пользователям формировать полезные привычки и контролировать их выполнение.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /