Skip to content

Latest commit

 

History

History
102 lines (84 loc) · 5.58 KB

README.md

File metadata and controls

102 lines (84 loc) · 5.58 KB

The Met

An app that provides access to more than 470.000 artworks from "The Metropolitan Museum of Art" that are in the public domain.

LIST OF DEPARTMENTS
  • American Decorative Arts
  • Ancient Near Eastern Art
  • Arms and Armor
  • Arts of Africa, Oceania, and the Americas
  • Asian Art
  • The Cloisters
  • The Costume Institute
  • Drawings and Prints
  • Egyptian Art
  • European Paintings
  • European Sculpture and Decorative Arts
  • Greek and Roman Art
  • Islamic Art
  • The Robert Lehman Collection
  • The Libraries
  • Medieval Art
  • Musical Instruments
  • Photographs
  • Modern Art (mostly not in PD)
  • INSTALLATION
    1. Clone this repository to your local machine:

      https://github.com/eldarovsky/The-Met.git
    2. Open the project in Xcode:

      • Launch Xcode.
      • Select "Open" from the File menu.
      • Navigate to the project folder and select the .xcodeproj file.
    3. Set the Active Scheme:

      • In Xcode's toolbar, select the target device or simulator you want to run the app on (preferred: iPhone 15 Pro, iOS 16.2).
    4. Build and Run the Project:

      • Click the "Run" button (▶) in Xcode's toolbar.
      • The app will build and launch in the selected simulator or device.

    ТЕХНОЛОГИИ
  • Архитектура: MVP+C (C - в данном случае Router) и MVC (для одной сцены)
  • Состав сцены: Assembler, ViewController, Presenter, Router
  • Взаимодействие файлов сцены через протоколы
  • Паттерны: singletone, delegate
  • Целенаправленно использованы только нативные фреймворки: Foundation, UIKit
  • Верстка интерфейса велась полностью кодом
  • Хранение данных: UserDefaults для hashValue изображения
  • Применены кастомные цвета для создания более привлекательного интерфейса
  • ФУНКЦИОНАЛЬНОСТЬ
  • Использованы индикатор загрузки и активности для лучшего UX
  • Загрузка из сети и отображение изображений с подробной информацией
  • Масштабирование (по двойному тапу до х2, вручную - до х4) и скроллинг увеличенного изображения
  • Возможность сохранения изображений в фотоальбом устройства
  • Асинхронная ограниченная временем загрузка данных с использованием GCD
  • Отображение уведомлений при ошибке загрузки, сохранении изображения или повторной попытке
  • Повторная загрузка по нажатию на кнопку "Retry" в уведомлении, в таблице - потянув ячейки вниз
  • Предотвращено повторное сохранение изображения в текущей сессии
  • Реализована тактильная обратная связь при нажатии на кнопку "Next"
  • Используется анимация появления ячеек таблицы
  • Цветовая схема приложения задана явно
  • ПЛАН РАЗВИТИЯ
  • Полный перевод приложения в архитектуру MVP
  • Рассмотреть необходимость использования сторонних фреймворков
  • Рассмотреть применение Crashlytics
  • Добавить поиск изображений по ключевым словам (реализовано в MVC на ветке "searchScene")
  • Реализовать ручную пагинацию для экрана поиска
  • Добавить возможность голосового набора в поле поиска
  • Добавить возможность сохранения изображений в избранное
  • Добавить возможность выбора одной из двух цветовых схем приложения
  • Добавить возможность включения-отключения звуковых и тактильных эффектов
  • Добавить обработку сценария отсутствия интернет-соединения
  • Использование векторных изображений в интерфейсе
  • Задокументировать код
  • Добавить тесты
  • Рефакторинг кода