Публикации Разработка современных мобильных приложений для ОС Android

Всероссийский сборник статей и публикаций института развития образования, повышения квалификации и переподготовки.


Скачать публикацию
Язык издания: русский
Периодичность: ежедневно
Вид издания: сборник
Версия издания: электронное сетевое
Публикация: Разработка современных мобильных приложений для ОС Android
Автор: Забавина Анна Александровна

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИФедеральное государственное автономноеобразовательное учреждение высшего образования«ЮЖНЫЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»Инженерно-технологическая академияЛ. В. ПИРСКАЯРАЗРАБОТКА СОВРЕМЕННЫХ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ДЛЯ ОС ANDROIDУчебное пособиеРостов-на-Дону – Таганрог Издательство Южного федерального университета2020УДК 004.451.9(075.8) ББК 32.973-018.2я73П337Печатается по решению кафедры математического обеспечения и применения ЭВМ Института компьютерных технологийи информационной безопасности Южного федерального университета (протокол № 5 от 11 февраля 2020 г.)Рецензенты:генеральный директор ООО «Оджетто веб» С. А. Друпповгенеральный директор ООО «Иностудио Солюшинс» М. В. БолотовПирская, Л. В.П337 Разработка современных мобильных приложений для ОС Android : учебное пособие / Л. В. Пирская ; Южный федеральный универси- тет. Ростов-на-Дону ; Таганрог : Издательство Южного федерального университета, 2020. – 116 с.ISBN 978-5-9275-3700-6Учебное пособие «Разработка современных мобильных приложений для ОС Android» представляет актуальный материал для продвинутого уров- ня разработки под Android, сопровождающийся примерами на двух языках программирования Kotlin и Java. Пособие охватывает базовые понятия о раз- работке на языке Kotlin, работу с сетью и базой данных с использованием современных библиотек, создание правильной архитектуры приложения, те- стирование приложения и API.Пособие предназначено для студентов направлений подготовки бака- лавриата 09.03.04 «Программная инженерия», 02.03.03 «Математическое обеспечение и администрирование информационных систем и магистрату- ры» 09.04.04 «Программная инженерия» Института компьютерных техноло- гий и информационной безопасности. Также учебное пособие может быть полезно для студентов технических направлений подготовки, связанных с разработкой программного обеспечения для мобильных устройств.УДК 004.451.9(075.8) ББК 32.973-018.2я73ISBN 978-5-9275-3700-6© Южный федеральный университет, 2020© Пирская Л. В., 2020© Оформление. Макет. Издательство Южного федерального университета, 2020СОДЕРЖАНИЕ
  • РАЗРАБОТКА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ
  • KOTLIN В ANDROID ………………………………………………..9
  • ВВЕДЕНИЕВ настоящее время область разработки мобильных приложений для ОС Android находится на пике актуальности и популярности. Сегодня мобильные разработчики востребованы в разных областях текущих реа- лий жизни: корпоративные приложения имеют мобильные версии, СМИ имеют мобильные приложения, бизнес активно переводит свои програм- мы лояльности в приложения и т.д. Поэтому мобильные разработчики нужны абсолютно в разных сферах: мобильные игры и развлекательные приложения, развлекательно-образовательные приложения, банковские приложения, приложения электронной коммерции и т.д.Стек технологий мобильной разработки активно меняется. Основные мобильные платформы постоянно обновляют стек и развивают его. Поэто- му обновлять учебные материалы в данной области требуется постоянно.Данное учебное пособие является продолжением и дополнением изданного ранее учебного пособия «Разработка мобильных приложений в среде Android Studio» [1], в котором были рассмотрены базовые темы для начала разработки на Android: работа в среде разработки AndroidStudio, разработка интерфейса мобильного приложения, работа с ресурсами при- ложения, организация данных в виде списка, сетевое взаимодействие, ра- бота с JSON-файлами, реализация базы данных в системе Android, осо- бенности организации современного интерфейса мобильного приложения. В текущем учебном пособии представлены абсолютно новые и не пересекающиеся темы с имеющимися в описанном выше пособии [1], а именно, создание мобильных приложений на языке Kotlin, работа с сетью и базой данных с использованием современных библиотек Retrofit и Room, создание правильной архитектуры приложения, тестирование при- ложения и API (начало работы с Postman), создание уведомлений (ноти- фикаций). Представленные материалы сопровождаются примерами на двух языках с описанием их реализации: сначала представлен пример наKotlin, следом за ним пример на Java.Данное учебное пособие разрабатывалось для студентов направле- ний подготовки бакалавриата 09.03.04 «Программная инженерия», изуча- ющих дисциплину «Разработка мобильных приложений», а также маги- стратуры 09.04.04 «Программная инженерия», изучающих дисциплину«Программирование для мобильных платформ». Материалы, представ- ленные в учебном пособии, помогут облегчить разработку с помощью использования специализированных библиотек и создать надежные, те- стируемые и легкие в поддержке приложения за счет выстраивания гра- мотной архитектуры. Разработанное учебное пособие будет полезно для подготовки студентов к участию в чемпионате WorldSkills по компетен- ции «Разработка мобильных приложений».
  • РАЗРАБОТКА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ KOTLIN В ANDROID
  • О Kotlin
  • Kotlin – это новый кроссплатформенный язык программирования, разработанный компанией JetBrains, преимущественно в санкт-петербург- ском офисе компании, и вышедший в релиз в 2016 г.Kotlin [1] – лаконичный, безопасный и прагматичный язык, совме- стимый преимущественно с Java, а также имеющий совместимость с JavaScript и возможность нативной компиляции. Используется практически везде, где применяется Java: серверные приложения, Android-приложения, десктопные приложения на базе популярнейших Java-библиотек и многое другое. Работает с наследием Java в виде огромного количества фреймвор- ков и библиотек, не уступая в производительности.Kotlin был представлен как основной язык для Android-разра- ботки на конференции «Google I/O» в 2019 г., так как обладает рядом преимуществ:
  • краткость. В Kotlin значительно уменьшено количество шаб- лонного кода. Например, так будет выглядеть класс, который в Java мож- но было бы представить как POJO:
  • data class Student(val status: String, var name: String = "Android")Так в рамках виртуальной машины Java (JVM) у представленного выше класса будут переопределены все геттеры и сеттеры, а также неко- торые шаблонные методы, такие как hashCode(), toString() и equals().
  • читаемость. Благодаря своей лаконичности и идиоматично- сти, Kotlin легко читается даже без особых знаний о языке, образуя чело- векочитаемые языковые конструкции: «When this is string, do something with string» (в дословном переводе с английского языка – «когда это стро- ка, сделай что-нибудь со строкой»):
  • element.apply { when (this) {is Int -> doSomethingWithInt()is String -> doSomethigWithString() else -> doSomethingElse()}}
  • поддержка Kotlin в современных библиотеках, в том числе в Android Jetpack. Многие преимущества Kotlin, например, корутины функ- ции расширения, лямбда-выражения, поддерживаются в современных библиотеках для Android.
  • взаимная совместимость с Java. Kotlin можно использовать вместе с Java в одном проекте без необходимости переводить весь код про- граммы на Kotlin. Например, если в проекте много старых POJO-классов, то имеется доступ к ним из Kotlin, причем с Kotlin-синтаксисом, т.е. можно использовать синтаксис доступа к полям вместо сеттеров и геттеров.
  • intent.action = "ACTION" intent.setAction("ACTION")
  • мультиплатформенность. Kotlin можно использовать не только для разработки под Android, но также для iOS, бэкенда и веб- приложений. Отделяя логику от представления, можно использовать оди- наковый код в разных проектах.
  • безопасность кода. Kotlin позволяет избавиться от популяр- нейшей ошибки NullPointerException, известной как «Ошибка на милли- ард долларов».
  • var string: Stringstring = null // Ошибка компиляции var string: String?string = null // Всё ок
  • Основы Kotlin
  • Синтаксис Kotlin схож с языками программирования, ориентиро- ванными на ООП. По своей структуре он подобен Java, модифицирован- ный исходя из потребностей современного разработчика.Разберем базовый синтаксис на примере определения простого класса:class Learning {val str: String = "Hello"var i: Int = 0fun hello() { print("$str World")}fun sum(x: Int, y: Int): Int { return x + y}fun maxOf(a: Float, b: Float) = if (a > b) a else b}Определение класса выглядит следующим образом:class LearningС определением атрибута уже немного сложнее:val str: String = "Hello"Здесь появляется ключевое слово «val» (value, то есть «значение»), что означает «неизменяемое» [2]. При попытке записать значение в пере- менную str, компилятор выдаст ошибку. За ним идёт имя переменной, а после двоеточия – тип. В данном примере писать «String» необязательно, поскольку компилятор сам определит тип переменной после того, как пе- редадите туда строку. Таким образом представленную выше строку мож- но сократить доval str = "Hello"В примере в строчке ниже «var i: Int = 0» записывается целочис- ленное значение и данную переменную уже можно перезаписать. Ключе- вое слово «var» определяется как «variable», т.е. изменяемое. Это выраже- ние также можно сократить. Передавая в переменную «0», вы сообщаете компилятору о том, что эта переменная целочисленная (Int).Функции в Kotlin декларируются ключевым словом «fun».fun hello() { print("$str World")}Функция hello() ничего не возвращает, в ней только вызывается си- стемная функция print() (ближайший аналог System.out.print() в Java), ко-торая выводит в консоль фразу «Hello World» с помощью интерполяции строк [3]. Не обязательно указывать компилятору, что функция ничего не возвращает. Если для разработчика всё-таки имеется необходимость, то можно написать, что она возвращает тип Unit [4] (аналог void в Java и не- которых других языках программирования):fun hello(): Unit { print("$str World")}Функция sum, возвращает простое сложение двух входных пара- метров. Параметры передаются в формате имя: Тип, ключевые слова var или val здесь не требуются, поскольку параметры всегда передаются в виде неизменяемых значений (обратите внимание, что если не можете изменить значение переменной, это не означает, что не можете модифи- цировать объект).fun sum(x: Int, y: Int): Int { return x + y}Функция maxOf демонстрирует сразу две синтаксических специфи- ки языка – «модифицированные» тернарные операторы и простое возвра- щаемое значение. Не обязательно открывать блок функции, если её логика умещается в одну строку. Например, представленную в примере функцию sum можно было бы написать иначе:fun sum(x: Int, y: Int) = x + yТакже и в функции maxOf не обязательно указывать тип возвраща- емого значения, поскольку компилятор сам понимает, какое значение он должен вернуть.Отсутствие тернарного оператора считают большой проблемой синтаксиса Kotlin, но на это есть свои причины. Наверное, уже обратили внимание, что знак двоеточия используется в Kotlin только в случаях с указанием типа. Это относится не только к функциям и переменным, но и к классам. Если бы класс Learning требовалось унаследовать, например, от класса Start, то было бы написано следующее:class Learning : Start()Даже если выделяется память под объект, реализующий интер- фейс (что часто приходится делать в Java на Android, там таким образом часто реализуются callback-операции), фактически пишется, что требу- ется объект, реализующий определенный интерфейс. Ниже представлен пример того, как бы выглядела функция установки слушателя на нажа- тие кнопки:val btn = findViewById