Новости

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