-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
9550bc2
commit e877811
Showing
1 changed file
with
70 additions
and
63 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>"The Met" is an app that provides access to more than 470.000 artworks from <a href="https://www.metmuseum.org">"The Metropolitan Museum of Art"</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> |