Мария Широкова › MariiaSh1990
iOS Developer | Swift & SwiftUI | QA & UX
Рейтинг
213
№ 6 025 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Опыт работы
11 лет
На сайте с
2026 года
Юридический статус
Самозанятый

Art & Culture News — iOS App

Используемые навыки API Apple Xcode Mobile Development Swift Разработка iOS

Описание

Задача: разработать современное iOS-приложение для поиска новостей и историй из мира искусства, дизайна, скульптуры, выставок, живописи и современной культуры.

Требования:
• Просмотр актуальных новостей искусства и культуры
• Увлекательные истории о дизайне, скульптуре, выставках и живописи
• Бесконечная прокрутка с пагинацией
• Чтение в режиме Offline-first с локальным кэшированием новостей
• Сохранение статей и управление списком избранного
• Шаринг публикаций через нативное системное меню iOS (Share Sheet)
• Открытие оригинальных статей во встроенном браузере Safari
• Обновление контента потянув экран вниз (Pull-to-refresh)
• Обработка ошибок и экраны работы без интернета
• Адаптивный интерфейс на SwiftUI
• UX-ориентированный дизайн и четкая визуальная иерархия

Решение

Мной была предложена многоуровневая архитектура. Она необходима для разделения функциональности и упрощения тестирования и расширения кода.

Основные шаблоны и принципы, которые я использовала:
• MVVM — разделяет пользовательский интерфейс и логику представления
• Шаблон репозитория — абстрагирует источники данных от ViewModel
• Внедрение зависимостей — зависимости предоставляются извне, а не создаются внутри бизнес-логики
• Протоколоориентированный дизайн — упрощает создание моков и тестирование компонентов
• Подход «сначала офлайн» — ранее загруженный контент остается доступным без подключения к интернету

Результат

В результате получилось MVP проекта, которое будет дорабатываться и усовершенствоваться по мере расширения функциональности.

Был использован следующий стэк технологий:
• Swift
• SwiftUI
• Swift Concurrency (async/await)
• UIKit
• REST API
• MVVM
• Repository Pattern
• Dependency Injection
• UserDefaults
• JSON local storage
• URLSession

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT MyOffice Documents — iOS App
MyOffice Documents — iOS App
35
Веб-разработка и IT EKF Connect Home — iOS App
EKF Connect Home — iOS App
26