Skip to content

eldarovsky/The-Met

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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")
  • Реализовать ручную пагинацию для экрана поиска
  • Добавить возможность голосового набора в поле поиска
  • Добавить возможность сохранения изображений в избранное
  • Добавить возможность выбора одной из двух цветовых схем приложения
  • Добавить возможность включения-отключения звуковых и тактильных эффектов
  • Добавить обработку сценария отсутствия интернет-соединения
  • Использование векторных изображений в интерфейсе
  • Задокументировать код
  • Добавить тесты
  • Рефакторинг кода