Skip to content

Приложение для просмотра изображений через Unsplash API

Notifications You must be signed in to change notification settings

freeagles1991/ImageFeed_iOS_MVP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Feed App

📋 Описание

Многостраничное приложение для просмотра изображений через Unsplash API. Приложение поддерживает авторизацию через OAuth, просмотр ленты изображений, работу с избранным и просмотр профиля.


🚀 Основной функционал

1. Авторизация через OAuth

  • Вход через OAuth Unsplash с использованием POST-запроса для получения Auth Token.
  • Экран авторизации содержит:
    • Логотип приложения.
    • Кнопку «Войти».
  • Алгоритмы и доступные действия:
    • После нажатия кнопки «Войти» открывается браузер для авторизации.
    • При успешной авторизации браузер закрывается, и открывается лента изображений.
    • При ошибке входа отображается модальное окно с описанием ошибки.

2. Просмотр ленты

  • Лента содержит изображения из Unsplash Editorial.
  • Каждая карточка в ленте включает:
    • Изображение.
    • Кнопку «Лайк».
    • Дату загрузки фотографии.
  • Алгоритмы и доступные действия:
    • Лента автоматически подгружается при скролле (реализация через UITableView).
    • Если изображение не загружается, отображается системный лоадер или плейсхолдер.
    • Пользователь может:
      • Лайкать изображения. Кнопка меняет состояние (сердечко серого или красного цвета).
      • Снимать лайк, нажав повторно.
      • Переходить на экран просмотра изображения на весь экран.
      • Навигировать между лентой и профилем через таб бар.

3. Просмотр изображения на весь экран

  • Изображение растягивается до границ экрана.
  • Экран содержит:
    • Кнопку возврата на предыдущий экран.
    • Кнопку «Поделиться» для загрузки изображения или отправки ссылки.
  • Алгоритмы и доступные действия:
    • Поддержка жестов для перемещения, зума и поворота изображения.
    • Если изображение невозможно загрузить, отображается плейсхолдер.
    • При нажатии на кнопку «Поделиться» открывается системное меню с опциями загрузки и отправки изображения.

4. Просмотр профиля пользователя

  • Экран профиля содержит:
    • Аватар пользователя.
    • Имя и username.
    • Информацию о пользователе.
    • Кнопку «Выйти» для логаута.
  • Алгоритмы и доступные действия:
    • Данные профиля загружаются из Unsplash API.
    • При отсутствии данных отображаются плейсхолдеры.
    • Кнопка выхода из профиля вызывает системный алерт для подтверждения выхода:
      • При подтверждении пользователь разлогинивается и возвращается на экран авторизации.
      • При отказе пользователь остается в профиле.
    • Навигация между лентой и профилем осуществляется через таб бар.

📱 Особенности

  • Реализация интерфейса через:
    • UIKit: UITableView, UIImageView, UIButton, UILabel, TabBarController, NavigationController.
  • Поддержка устройств с iOS 13 и выше.
  • Только портретный режим.
  • Работа с изображениями через URLSession с поддержкой лоадеров и плейсхолдеров.

About

Приложение для просмотра изображений через Unsplash API

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published