title: Ð Ð°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ° Ð½Ð¾Ð²Ð¾ÑÑÐ½Ð¾Ð³Ð¾ Ð°Ð½Ð´ÑÐ¾Ð¸Ð´-Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð½Ð° Ð¾ÑÐ½Ð¾Ð²Ðµ Ð¾ÑÐºÑÑÑÐ¾Ð³Ð¾ api
title: Ð²ÑÐ¿ÑÑÐºÐ½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð±Ð°ÐºÐ°Ð»Ð°Ð²ÑÐ°
titleType: Subtitle
title: Development of a news Android application based on the open API of newsapi.org
Creators: name: ÐÐ¾Ð³Ð´Ð°Ð½Ð¾Ð², ÐÐ°ÑÐ¸Ð»Ð¸Ð¹
Publisher: name: Ð¡Ð°Ð½ÐºÑ-ÐÐµÑÐµÑÐ±ÑÑÐ³ÑÐºÐ¸Ð¹ Ð¿Ð¾Ð»Ð¸ÑÐµÑÐ½Ð¸ÑÐµÑÐºÐ¸Ð¹ ÑÐ½Ð¸Ð²ÐµÑÑÐ¸ÑÐµÑ ÐÐµÑÑÐ° ÐÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾
Year: 2025
Subjects: android-Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ
newsapi.org
mvvm
clean architecture
kotlin
retrofit
coroutines
rxjava
Ð¼Ð½Ð¾Ð³Ð¾Ð¼Ð¾Ð´ÑÐ»ÑÐ½Ð°Ñ ÑÑÑÑÐºÑÑÑÐ°
ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ
Ð¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»ÑÑÐºÐ¸Ð¹ Ð¸Ð½ÑÐµÑÑÐµÐ¹Ñ
Ð°ÑÑ Ð¸ÑÐµÐºÑÑÑÐ½ÑÐµ Ð¿Ð°ÑÑÐµÑÐ½Ñ
Ð°ÑÐ¸Ð½Ñ ÑÐ¾Ð½Ð½ÑÐµ Ð¾Ð¿ÐµÑÐ°ÑÐ¸Ð¸
Ð·Ð°Ð²Ð¸ÑÐ¸Ð¼Ð¾ÑÑÑ
Ð¼Ð¾Ð´ÑÐ»ÑÐ½Ð¾Ðµ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ðµ
android application
dagger
modular structure
testing
user interface
architectural patterns
asynchronous operations
dependency injection
unit testing

description: Ð¦ÐµÐ»ÑÑ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ ÑÐ²Ð»ÑÐµÑÑÑ Ð¿ÑÐµÐ´Ð¾ÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ðµ Ð¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»ÑÐ¼ ÑÐ´Ð¾Ð±Ð½Ð¾Ð³Ð¾ Ð´Ð¾ÑÑÑÐ¿Ð° Ðº Ð°ÐºÑÑÐ°Ð»ÑÐ½ÑÐ¼ Ð½Ð¾Ð²Ð¾ÑÑÑÐ¼ Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑÑ ÑÐ¸Ð»ÑÑÑÐ°ÑÐ¸Ð¸ Ð¿Ð¾ ÐºÐ°ÑÐµÐ³Ð¾ÑÐ¸ÑÐ¼ Ð¸ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÐ°ÑÐµÐ¹ Ð² Ð¸Ð·Ð±ÑÐ°Ð½Ð½Ð¾Ðµ. Ð ÑÐ°Ð±Ð¾ÑÐµ ÑÐ°ÑÑÐ¼Ð°ÑÑÐ¸Ð²Ð°ÑÑÑÑ ÑÐ¾Ð²ÑÐµÐ¼ÐµÐ½Ð½ÑÐµ Ð°ÑÑÐ¸ÑÐµÐºÑÑÑÐ½ÑÐµ Ð¿Ð°ÑÑÐµÑÐ½Ñ Ð´Ð»Ñ Android-Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ð¹, Ð² ÑÐ°ÑÑÐ½Ð¾ÑÑÐ¸ MVP (Model-View-Presenter) Ð¸ MVVM (Model-View-ViewModel), Ð° ÑÐ°ÐºÐ¶Ðµ Ð¿Ð¾Ð´ÑÐ¾Ð´ Clean Architecture, ÑÑÐ¾ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¾Ð±ÐµÑÐ¿ÐµÑÐ¸ÑÑ ÑÐ´Ð¾Ð±ÑÑÐ²Ð¾ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÐ¸, Ð¼Ð°ÑÑÑÐ°Ð±Ð¸ÑÑÐµÐ¼Ð¾ÑÑÐ¸ Ð¸ ÑÐµÑÑÐ¸ÑÑÐµÐ¼Ð¾ÑÑÐ¸ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ. ÐÑÐ¾ÑÐµÑÑ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ¸ Ð²ÐºÐ»ÑÑÐ°ÐµÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ Ð¾ÐºÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸ Ð·Ð°Ð²Ð¸ÑÐ¸Ð¼Ð¾ÑÑÐµÐ¹ Ñ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ Gradle, Ð¸Ð½ÑÐµÐ³ÑÐ°ÑÐ¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾ÑÐµÐºÐ¸ Retrofit Ð´Ð»Ñ ÑÐ°Ð±Ð¾ÑÑ Ñ API newsapi.org, ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ðµ Ð»Ð¾ÐºÐ°Ð»ÑÐ½Ð¾Ð¹ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ORM Room Ð¸ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ðµ Kotlin Coroutines Ð¸ RxJava Ð´Ð»Ñ Ð°ÑÐ¸Ð½ÑÑÐ¾Ð½Ð½ÑÑ Ð¾Ð¿ÐµÑÐ°ÑÐ¸Ð¹. ÐÐ¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»ÑÑÐºÐ¸Ð¹ Ð¸Ð½ÑÐµÑÑÐµÐ¹Ñ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½ Ñ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ XML-Ð¼Ð°ÐºÐµÑÐ¾Ð², ÑÑÐ¾ Ð¾Ð±ÐµÑÐ¿ÐµÑÐ¸Ð²Ð°ÐµÑ Ð¸Ð½ÑÑÐ¸ÑÐ¸Ð²Ð½Ð¾ Ð¿Ð¾Ð½ÑÑÐ½Ð¾Ðµ Ð¸ Ð¾ÑÐ·ÑÐ²ÑÐ¸Ð²Ð¾Ðµ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ðµ. Ð¢Ð°ÐºÐ¶Ðµ Ð² ÑÐ°Ð±Ð¾ÑÐµ ÑÐ´ÐµÐ»ÐµÐ½Ð¾ Ð²Ð½Ð¸Ð¼Ð°Ð½Ð¸Ðµ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ, Ð´Ð»Ñ ÐºÐ¾ÑÐ¾ÑÐ¾Ð³Ð¾ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð»Ð¸ÑÑ ÑÑÐµÐ¹Ð¼Ð²Ð¾ÑÐº JUnit. Ð Ð¿Ð»Ð°Ð½Ðµ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÐ¸ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ Ð±ÑÐ»Ð¾ Ð¾Ð¿ÑÐ¸Ð¼Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð¾ Ð´Ð»Ñ Ð±ÑÑÑÑÐ¾Ð³Ð¾ Ð²ÑÐµÐ¼ÐµÐ½Ð¸ Ð·Ð°Ð³ÑÑÐ·ÐºÐ¸ Ð¸ Ð¿Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ Ð²Ð·Ð°Ð¸Ð¼Ð¾Ð´ÐµÐ¹ÑÑÐ²Ð¸Ñ Ñ Ð¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°ÑÐµÐ»ÑÑÐºÐ¸Ð¼ Ð¸Ð½ÑÐµÑÑÐµÐ¹ÑÐ¾Ð¼, ÑÑÐ¾ Ð´Ð°Ð»Ð¾ ÑÐ´Ð¾Ð²Ð»ÐµÑÐ²Ð¾ÑÐ¸ÑÐµÐ»ÑÐ½ÑÐµ ÑÐµÐ·ÑÐ»ÑÑÐ°ÑÑ Ð¿ÑÐ¸ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ð¸ Ð½Ð° ÑÐ°Ð·Ð»Ð¸ÑÐ½ÑÑ ÑÑÑÑÐ¾Ð¹ÑÑÐ²Ð°Ñ Ð¸ Ð²ÐµÑÑÐ¸ÑÑ Android. Ð ÐµÐ·ÑÐ»ÑÑÐ°ÑÑ ÑÐ°Ð±Ð¾ÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÑÑ, ÑÑÐ¾ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐ°Ð½Ð½Ð¾Ðµ Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ðµ ÑÐ¾Ð¾ÑÐ²ÐµÑÑÑÐ²ÑÐµÑ ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸ÑÐ¼, Ð¿ÑÐµÐ´Ð¾ÑÑÐ°Ð²Ð»ÑÑ ÑÑÐ°Ð±Ð¸Ð»ÑÐ½ÑÑ, ÑÑÐ½ÐºÑÐ¸Ð¾Ð½Ð°Ð»ÑÐ½ÑÑ Ð¸ ÑÐ´Ð¾Ð±Ð½ÑÑ Ð¿Ð»Ð°ÑÑÐ¾ÑÐ¼Ñ Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾ÑÑÐµÐ¹. Ð ÑÐ°Ð±Ð¾ÑÐµ ÑÐ°ÐºÐ¶Ðµ Ð¿ÑÐµÐ´Ð»Ð¾Ð¶ÐµÐ½Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÐµ ÑÐ»ÑÑÑÐµÐ½Ð¸Ñ, ÑÐ°ÐºÐ¸Ðµ ÐºÐ°Ðº ÑÐ»ÑÑÑÐµÐ½Ð¸ÐµÂ  Ð¾Ð±ÑÐ°Ð±Ð¾ÑÐºÐ¸ Ð¾ÑÐ¸Ð±Ð¾Ðº, ÑÐ°ÑÑÐ¸ÑÐµÐ½Ð¸Ðµ ÑÐµÑÑÐ¾Ð²Ð¾Ð³Ð¾ Ð¿Ð¾ÐºÑÑÑÐ¸Ñ Ð¸ ÑÐ»ÑÑÑÐµÐ½Ð¸Ðµ Ð²Ð¸Ð·ÑÐ°Ð»ÑÐ½ÑÑ ÑÐ»ÐµÐ¼ÐµÐ½ÑÐ¾Ð² Ð¸Ð½ÑÐµÑÑÐµÐ¹ÑÐ°. ÐÐµÑÑÐ¿ÐµÐºÑÐ¸Ð²Ñ Ð´Ð°Ð»ÑÐ½ÐµÐ¹ÑÐµÐ³Ð¾ ÑÐ°Ð·Ð²Ð¸ÑÐ¸Ñ Ð²ÐºÐ»ÑÑÐ°ÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ðµ Ð½Ð¾Ð²ÑÑ ÑÑÐ½ÐºÑÐ¸Ð¹, ÑÐ°ÐºÐ¸Ñ ÐºÐ°Ðº Ð¿ÐµÑÑÐ¾Ð½Ð°Ð»Ð¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑÐµ ÑÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°ÑÐ¸Ð¸ Ð½Ð¾Ð²Ð¾ÑÑÐµÐ¹, Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÐ° Ð½ÐµÑÐºÐ¾Ð»ÑÐºÐ¸Ñ ÑÐ·ÑÐºÐ¾Ð² Ð¸ Ð¸Ð½ÑÐµÐ³ÑÐ°ÑÐ¸Ñ Ñ Ð´ÑÑÐ³Ð¸Ð¼Ð¸ Ð½Ð¾Ð²Ð¾ÑÑÐ½ÑÐ¼Ð¸ API. Ð Ð°Ð±Ð¾ÑÐ° Ð¸Ð»Ð»ÑÑÑÑÐ¸ÑÑÐµÑ ÑÑÐ¿ÐµÑÐ½Ð¾Ðµ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ ÑÐ¾Ð²ÑÐµÐ¼ÐµÐ½Ð½ÑÑ Ð¿ÑÐ¸Ð½ÑÐ¸Ð¿Ð¾Ð² ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ¸ Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð½Ð¾Ð³Ð¾ Ð¾Ð±ÐµÑÐ¿ÐµÑÐµÐ½Ð¸Ñ Ð¸ Ð¸Ð½ÑÑÑÑÐ¼ÐµÐ½ÑÐ¾Ð² Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑÑÐ½ÐºÑÐ¸Ð¾Ð½Ð°Ð»ÑÐ½Ð¾Ð³Ð¾ Android-Ð¿ÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ.
description: The application aims to provide users with easy access to the latest news, featuring advanced filtering options, such as category selection and the ability to save articles to a favorites list. The work explores modern architectural patterns for Android applications, particularly MVP (Model-View-Presenter), MVVM (Model-View-ViewModel), and the Clean Architecture approach, to ensure the applicationâs maintainability, scalability, and testability. The development process includes setting up the environment and dependencies using Gradle, integrating the Retrofit library for interacting with the newsapi.org API, and using Kotlin Coroutines to handle asynchronous tasks. The user interface is designed with XML layouts, ensuring an intuitive and responsive experience. The thesis also highlights the importance of testing, with various testing frame-works like JUnit used for unit testing. In terms of performance, the app was optimized for fast loading times and smooth UI interactions, achieving satisfactory results during testing on different devices and Android versions. The results demonstrate that the developed application meets the requirements, providing a stable, functional, and user-friendly news platform. The thesis also suggests possible improvements, such as better error handling, extended test coverage, and enhanced UI features. Future development could include additional functionalities like personalized news recommendations, multi-language support, and integration with other news APIs. This work illustrates the successful application of modern software development principles and tools in the creation of a fully functional Android application.