Tracker - приложение для отслеживания привычек и целей, разработанное для iOS. Помогает пользователям формировать полезные привычки и контролировать их выполнение.
Пользователи могут создавать трекеры для привычек и нерегулярных событий. Они могут задавать расписание, выбирать эмодзи и цвет для каждого трекера, а также просматривать статистику достижений. Приложение поддерживает темную тему, интегрированную аналитику и предоставляет возможность проведения скриншот тестов.
Приложение использует Core Data и SQL для хранения данных, поэтому для полноценной работы требуется подключение к интернету для аналитики.
Для запуска приложения необходимо клонировать репозиторий и запустить проект в Xcode выполнив следующие шаги:
-
Клонировать репозиторий на локальную машину:
git clone https://github.com/Dzhabaev/Tracker.git
-
Перейти в папку проекта, к примеру:
cd ~/Tracker
-
Открыть проект с помощью Xcode:
open Tracker.xcworkspace
-
Запустить проект на симуляторе или устройстве.
- 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/CD системой, поддерживающей сборку проектов Swift и Xcode.
Чингиз Джабаев