Новости

Android приложение для показа новостей из RSS

Android приложение для показа новостей из RSS

Доброго времени суток! В данной и следующих статьях я покажу Вам как можно создать простое Android приложение для отображения новостей из RSS канала.

RSS является популярным форматом представления новостных данных, который, по сути, представляет из себя XML-файл определенной структуры. Поэтому для нас не составит большого труда разобрать этот файл и представить его в виде, удобном для отображения в интерфейсе пользователя.

Итак, для начала Вам необходима установленная и настроенная бесплатная среда разработки Android Studio. Она доступна для свободного скачивания на официальном сайте. Если же среда у Вас уже установлена, то создайте в ней пустой проект, выбрав в качестве языка проекта — Kotlin, который, если у Вас уже есть опыт работы с Java/PHP/JavaScript/C#, не покажется Вам незнакомым. Язык Kotlin — официально принятый компанией Google, наряду с Java и С++, язык платформы Android. Также впишите основной пакет приложения в окне создания проекта — ru.myrusakov.rssapp.

Далее буду показывать примеры кода с комментариями. Весь основной код с которым мы будем работать расположен в папках app и app/src/main. В качестве системы сборки, аналог webpack для фронтеда, используется Gradle, в частности файл app/build.gradle, в котором описываются опции сборки и зависимости проекта.

Итак, начнем с файла сборки app/build.gradle. В проекте мы будем использовать две библиотеки:

  1. Glide — для загрузки изображений в интерфейс пользователя
  2. Retrofit2 — библиотека для работы с сетью и разбора XML-разметки.


plugins {
    id 'com.android.application'
    id 'org.jetbrains.kotlin.android'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "ru.myrusakov.rssapp"
        minSdk 23
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    kotlinOptions {
        jvmTarget = '1.8'
    }
}

dependencies {

    implementation 'androidx.core:core-ktx:1.7.0'
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

    // glide
    implementation 'com.github.bumptech.glide:glide:4.13.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.13.0'

    // retrofit2
    implementation 'com.squareup.retrofit2:retrofit:2.1.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.1.0'
}

Теперь рассмотрим манифест (AndroidManifest.xml) — основной файл любого Android приложения, в котором описываются все окна (активити в терминологии Android) приложения, доступы к необходимым службам, например, к сети Интернет и много чего еще:


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.myrusakov.rssapp">

    <!-- доступ к сети Интернет -->
    <uses-permission android:name="android.permission.INTERNET" />

    <!-- 
        android:usesCleartextTraffic="true" - аттрибут, который позволяет открывать Интернет-соединение
        без SSL-шифрования (небезопасно, но для упращения нашего примера подойдет)
    -->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:usesCleartextTraffic="true"
        android:theme="@style/Theme.RssAppDemo">
        <!-- 
             окно, которое будет отображать html страницу во встроенном браузере
             ru.myrusakov.rssapp.FeedContentWebViewActivity
        -->
        <activity
            android:name=".FeedContentWebViewActivity"
            android:exported="false" />

        <!-- основное окно приложения определяется значениями аттрибутов в теге intent-filter -->
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Таким образом в данной статье мы рассмотрели с Вами базовые компоненты создаваемого Android приложения для чтения RSS. В следующих рассмотрим основной код приложений.

Источник

Статьи по теме

Добавить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Back to top button