AppNews

Простое приложение для загрузки новостей из интернета с возможностью добавления их в закладки и обновлением списка новостей.

Стек: UIKit, MVC, TableView, CollectionView, UserDefaults, NSCache, SafariServices.

=======================================================================================

Подробное описание

  1. Проект написан на UIKit;
  2. Использована архитектура MVC;
  3. Использованы TabBarController, NavigationController;
  4. Использованы TableView с кастомными ячейками;
  5. Использованы CollectionView c кастомными ячейками и кастомным Layout (за основу реализации была взята статья-гайд из raywenderlich.com;
  6. Реализована постраничная загрузка новостей (1 страница = 20 новостей);
  7. Реализован жест pull to refresh (UIRefreshControl);
  8. Загрузка из интернета по API (newsapi.org) картинки, тайтла, краткого описания, автора, времени публикации и URL источника новости;
  9. Сохранение загруженных из сети картинок в кэш;
  10. Возможность просмотра оригинального источника новостей через браузер Safari;
  11. Реализован ScrollView для айфонов с маленьким экраном при открытии новости;
  12. Реализовано сохранение новостей в закладки с помощью UserDafaults;
  13. Реализовано удаление новостей из закладок через свайп;
  14. Кастомный AlertViewController с обработками различных ошибок;
  15. Приложение проверено на утечки памяти;
  16. Добавлена иконка приложения.

Что еще планируется реализовать/исправить

  1. Добавить счетчик просмотров для каждой новости;
  2. Внедрить MVP архитектуру;
  3. Реализовать DI для каждого модуля и слоев;
  4. Реализовать Coordinator;
  5. Реализовать категории выбора новостей;
  6. Написать Unit/UI-тесты.

GitHub

View Github