Skip to content

Первый практический проект курса iOS-разработчик с кивизом по топ-250 фильмов по версии IMDb

Notifications You must be signed in to change notification settings

Dzhabaev/MovieQuiz-ios

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MovieQuiz

MovieQuiz - это приложение с квизами о фильмах из топ-250 рейтинга и самых популярных фильмах по версии IMDb.

Описание

Одностраничное приложение с квизами о фильмах из топ-250 рейтинга и самых популярных фильмов IMDb. Пользователь приложения последовательно отвечает на вопросы о рейтинге фильма. По итогам каждого раунда игры показывается статистика о количестве правильных ответов и лучших результатах пользователя. Цель игры — правильно ответить на все 10 вопросов раунда.

MovieQuiz-ios

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

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

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

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

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

    cd ~
    cd MovieQuiz-ios
  3. Открыть проект с помощью Xcode:

    open MovieQuiz-ios.xcodeproj
  4. Запустить проект на симуляторе или устройстве.

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

  • Xcode 12.0 или выше
  • Swift 5.3 или выше
  • iOS 13.0 или выше
  • Предусмотрен только портретный режим
  • Вёрстка под SE и iPad не предусмотрена
  • Зависимости: нет явных зависимостей от сторонних библиотек, за исключением стандартной библиотеки Foundation и UIKit.

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

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

  • Расширение работы с различными источниками данных о фильмах, включая Kinopoisk API и TMDb API для расширения функциональности и увеличения базы фильмов.
  • Реализация кэширования данных для повышения производительности приложения.
  • Переход на использование Alamofire для упрощения сетевых запросов и улучшения их поддержки.

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

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

  • Swift для разработки мобильного приложения.
  • UIKit для построения пользовательского интерфейса.
  • URLSession для выполнения сетевых запросов.
  • JSONDecoder для декодирования данных из API.
  • Figma для дизайна.
  • Interface Builder для построения интерфейса.
  • User Defaults для хранения пользовательских данных.
  • MVP (Model-View-Presenter) архитектура.

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

API Endpoints
  • API IMDb: https://imdb-api.com/api#Top250Movies-header
Ссылки
Структура проекта
Models
  • QuizStepViewModel.swift: модель данных для шага квиза.
  • QuizResultsViewModel.swift: модель данных для результатов квиза.
  • QuizQuestion.swift: модель данных для вопроса квиза.
  • AlertModel.swift: модель данных для алерта.
  • MovieAndTopModel.swift: модель данных для фильма.
  • MostPopularMovies.swift: модель данных для самых популярных фильмов.
Services
  • QuestionFactory.swift: фабрика для создания вопросов.
  • QuestionFactoryProtocol.swift: протокол для фабрики вопросов.
  • QuestionFactoryDelegate.swift: делегат для фабрики вопросов.
  • StatisticService.swift: сервис для управления статистикой.
  • NetworkClient.swift: клиент для выполнения сетевых запросов.
  • MoviesLoader.swift: загрузчик данных о фильмах.
Presentation
  • MovieQuizViewController.swift: контроллер для отображения вопросов квиза.
  • MovieQuizViewControllerProtocol.swift: протокол для контроллера квиза.
  • AlertPresenter.swift: презентер для отображения алертов.
  • MovieQuizPresenter.swift: презентер для управления квизом.
Helpers
  • UIColor+Extensions.swift: расширения для работы с цветами.
  • Array+Extensions.swift: расширения для работы с массивами.
  • Date+Extensions.swift: расширения для работы с датами.
Tests
  • ArrayTests.swift: тесты для расширений массива.
  • MoviesLoaderTests.swift: тесты для загрузчика данных о фильмах.
  • MovieQuizPresenterTests.swift: тесты для презентера квиза.
  • MovieQuizUITests.swift: UI-тесты для квиза.

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

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

Создатели

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

About

Первый практический проект курса iOS-разработчик с кивизом по топ-250 фильмов по версии IMDb

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Swift 100.0%