Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
eldarovsky authored Mar 15, 2024
1 parent 9550bc2 commit e877811
Showing 1 changed file with 70 additions and 63 deletions.
133 changes: 70 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,66 +1,73 @@
# The Met
<h1 id="the-met">The Met</h1>

"The Met" is an app that provides access to more than 470.000 artworks from ["The Metropolitan Museum of Art"](https://www.metmuseum.org) that are in the [public domain (PD)](https://en.wikipedia.org/wiki/Public_domain).
<p>&quot;The Met&quot; is an app that provides access to more than 470.000 artworks from <a href="https://www.metmuseum.org">&quot;The Metropolitan Museum of Art&quot;</a> that are in the <a href="https://en.wikipedia.org/wiki/Public_domain">public domain (PD)</a>.</p>

#
**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)
<details>
<summary><strong>LIST OF DEPARTMENTS</strong></summary>
<li>American Decorative Arts</li>
<li>Ancient Near Eastern Art</li>
<li>Arms and Armor</li>
<li>Arts of Africa, Oceania, and the Americas</li>
<li>Asian Art</li>
<li>The Cloisters</li>
<li>The Costume Institute</li>
<li>Drawings and Prints</li>
<li>Egyptian Art</li>
<li>European Paintings</li>
<li>European Sculpture and Decorative Arts</li>
<li>Greek and Roman Art</li>
<li>Islamic Art</li>
<li>The Robert Lehman Collection</li>
<li>The Libraries</li>
<li>Medieval Art</li>
<li>Musical Instruments</li>
<li>Photographs</li>
<li>Modern Art (mostly not in PD)</li>
</details>

![](https://github.com/eldarovsky/The-Met/blob/main/images/Image_01.png)
![](https://github.com/eldarovsky/The-Met/blob/main/images/Image_02.png)
#
**ТЕХНОЛОГИИ:**
- Архитектура: MVP+C (C - в данном случае Router) и MVC (для одной сцены)
- Состав сцены: Assembler, ViewController, Presenter, Router
- Взаимодействие файлов сцены через протоколы
- Паттерны: singletone, delegate
- Целенаправленно использованы только нативные фреймворки: Foundation, UIKit
- Верстка интерфейса велась полностью кодом
- Хранение данных: UserDefaults для hashValue изображения
- Применены кастомные цвета для создания более привлекательного интерфейса
#
**ФУНКЦИОНАЛЬНОСТЬ:**
- Использованы индикатор загрузки и активности для лучшего UX
- Загрузка из сети и отображение изображений с подробной информаций
- Масштабирование (по двойному тапу до х2, вручную - до х4) и скроллинг открытого изображения
- Возможность сохранения изображений в фотоальбом устройства
- Асинхронная ограниченная временем загрузка данных с использованием GCD
- Отображение уведомлений при ошибке загрузки, сохранении изображения или повторной попытке
- Повторная загрузка по нажатию на кнопку "Retry" в уведомлении, в таблице - потянув ячейки вниз
- Предотвращено повторное сохранение изображения в текущей сессии
- Реализована тактильная обратная связь при нажатии на кнопку "Next"
- Используется анимация появления ячеек таблицы
- Цветовая схема приложения задана явно
#
**ПЛАН РАЗВИТИЯ:**
- Полный перевод приложения в архитектуру MVP
- Рассмотреть необходимость использования сторонних фреймворков
- Добавить поиск изображений по ключевым словам (реализовано в MVC на ветке "searchScene")
- Реализовать ручную пагинацию для экрана поиска
- Добавить возможность голосового набора в поле поиска
- Добавить возможность сохранения изображений в избранное
- Добавить возможность выбора одной из двух цветовых схем приложения
- Добавить возможность включения-отключения звуковых и тактильных эффектов
- Добавить обработку сценария отсутствия интернет-соединения
- Использование векторных изображений в интерфейсе
- Задокументировать код
- Добавить тесты
- Рефакторинг кода
<img src="https://github.com/eldarovsky/The-Met/blob/main/images/Image_01.png" alt="">
<img src="https://github.com/eldarovsky/The-Met/blob/main/images/Image_02.png" alt="">

<details>
<summary><strong>ТЕХНОЛОГИИ</strong></summary>
<li>Архитектура: MVP+C (C - в данном случае Router) и MVC (для одной сцены)</li>
<li>Состав сцены: Assembler, ViewController, Presenter, Router</li>
<li>Взаимодействие файлов сцены через протоколы</li>
<li>Паттерны: singletone, delegate</li>
<li>Целенаправленно использованы только нативные фреймворки: Foundation, UIKit</li>
<li>Верстка интерфейса велась полностью кодом</li>
<li>Хранение данных: UserDefaults для hashValue изображения</li>
<li>Применены кастомные цвета для создания более привлекательного интерфейса</li>
</details>

<details>
<summary><strong>ФУНКЦИОНАЛЬНОСТЬ</strong></summary>
<li>Использованы индикатор загрузки и активности для лучшего UX</li>
<li>Загрузка из сети и отображение изображений с подробной информаций</li>
<li>Масштабирование (по двойному тапу до х2, вручную - до х4) и скроллинг открытого изображения</li>
<li>Возможность сохранения изображений в фотоальбом устройства</li>
<li>Асинхронная ограниченная временем загрузка данных с использованием GCD</li>
<li>Отображение уведомлений при ошибке загрузки, сохранении изображения или повторной попытке</li>
<li>Повторная загрузка по нажатию на кнопку "Retry" в уведомлении, в таблице - потянув ячейки вниз</li>
<li>Предотвращено повторное сохранение изображения в текущей сессии</li>
<li>Реализована тактильная обратная связь при нажатии на кнопку "Next"</li>
<li>Используется анимация появления ячеек таблицы</li>
<li>Цветовая схема приложения задана явно</li>
</details>

<details>
<summary><strong>ПЛАН РАЗВИТИЯ</strong></summary>
<li>Полный перевод приложения в архитектуру MVP</li>
<li>Рассмотреть необходимость использования сторонних фреймворков</li>
<li>Добавить поиск изображений по ключевым словам (реализовано в MVC на ветке "searchScene")</li>
<li>Реализовать ручную пагинацию для экрана поиска</li>
<li>Добавить возможность голосового набора в поле поиска</li>
<li>Добавить возможность сохранения изображений в избранное</li>
<li>Добавить возможность выбора одной из двух цветовых схем приложения</li>
<li>Добавить возможность включения-отключения звуковых и тактильных эффектов</li>
<li>Добавить обработку сценария отсутствия интернет-соединения</li>
<li>Использование векторных изображений в интерфейсе</li>
<li>Задокументировать код</li>
<li>Добавить тесты</li>
<li>Рефакторинг кода</li>
</details>

0 comments on commit e877811

Please sign in to comment.