Разработка мобильных приложений

Разработка программы с использованием библиотеки okhttp3. Подключение библиотеки в gradle. Прописание разрешения на работу с интернетом API (программный интерфейс) в "AndroidManifest.xml", разметки в "activity_main.xml", кода - в "MainActivity.kt".

Рубрика Программирование, компьютеры и кибернетика
Вид практическая работа
Язык русский
Дата добавления 09.02.2021
Размер файла 235,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Министерство науки и высшего образования Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Российский экономический университет имени Г.В. Плеханова»

МОСКОВСКИЙ ПРИБОРОСТРОИТЕЛЬНЫЙ ТЕХНИКУМ

Специальность: 09.02.07 Информационные системы и программирование

Квалификация: Программист

Практическая работа по

«Разработке мобильных приложений»

Выполнил студент

Группы П50-4-18

Довиденко Кирилл

Москва 2020

Цель работы: Написать программу с использованием библиотеки okhttp3.

1. Подключим библиотеку okhttp3 в gradle.

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {

compileSdkVersion 29

buildToolsVersion "29.0.3"

defaultConfig {

applicationId "com.example.api"

minSdkVersion 19

targetSdkVersion 29

versionCode 1

versionName "1.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

}

}

}

dependencies {

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

implementation 'androidx.appcompat:appcompat:1.1.0'

implementation 'androidx.core:core-ktx:1.3.0'

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

implementation 'com.squareup.okhttp3:okhttp:3.12.0'

testImplementation 'junit:junit:4.12'

androidTestImplementation 'androidx.test.ext:junit:1.1.1'

androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

2. В «AndroidManifest.xml» пропишем разрешение на работу с интернетом API.

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.api">

<uses-permission android:name="android.permission.INTERNET"/>

<application

android:allowBackup="true"

android:icon="@mipmap/ic_launcher"

android:label="@string/app_name"

android:roundIcon="@mipmap/ic_launcher_round"

android:supportsRtl="true"

android:theme="@style/AppTheme">

<activity android:name=".MainActivity">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

</application>

</manifest>

3. В «activity_main.xml» пропишем разметку.

<?xml version="1.0" encoding="utf-8"?>

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#ffffff"

tools:context=".MainActivity">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:gravity="center_horizontal"

android:text="Факт о Чаке Норрисе"

android:id="@+id/jock"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"

android:textSize="20sp"/>

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/nextBtn"

android:layout_marginStart="8dp"

android:layout_marginLeft="8dp"

android:layout_marginEnd="8dp"

android:layout_marginRight="8dp"

android:layout_marginBottom="32dp"

android:text="Следующая шутка"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"/>

<RadioButton

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/progressBar"

style="?android:attr/progressBarStyle"

android:layout_marginStart="8dp"

android:layout_marginLeft="8dp"

android:layout_marginTop="8dp"

android:layout_marginEnd="8dp"

android:layout_marginRight="8dp"

android:layout_marginBottom="8dp"

android:visibility="gone"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>

библиотека интернет разметка код

4. В «MainActivity.kt» пропишем код.

package com.example.api

import androidx.appcompat.app.AppCompatActivity

import android.os.Bundle

import android.util.Log

import android.view.View

import kotlinx.android.synthetic.main.activity_main.*

import okhttp3.*

import org.json.JSONObject

import java.io.IOException

class MainActivity : AppCompatActivity() {

val URL = "https://api.icndb.com/jokes/random"

var okHttpClient: OkHttpClient = OkHttpClient()

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

nextBtn.setOnClickListener {

runOnUiThread {

progressBar.visibility=View.GONE

}

val request:Request = Request.Builder().url(URL).build()

okHttpClient.newCall(request).enqueue(object : Callback{

override fun onFailure(call: Call, e: IOException?) {

Log.e("Error", e.toString())

}

override fun onResponse(call: Call, response: Response) {

val joke = (JSONObject(response!!.body()!!

.string()).getJSONObject("value").get("joke")).toString()

runOnUiThread {

progressBar.visibility = View.GONE

jock.text = joke

}

}

})

}

}

}

Вывод: Мной была написана программа с использованием библиотеки okhttp3.

Результат работы:

Рисунок 1 - Главная страница

Рисунок 2 - Следующая шутка, при нажатии на кнопку «Следующая шутка».

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.