34
TECHNICAL SCIENCE / «ШУУШШУМ-ЛШШаИ» #24»)), 2021
Взаимодействие View и ViewModel происходит с помощью средств «привязки» модели данных к пользовательскому интерфейсу. Данная привязка осуществляет с помощью фреймворков, например, RxSwift или Combine.
RxSwift - это фреймворк для взаимодействия с языком программирования Swift, который упрощает взаимодействие модели данных с пользовательским интерфейсом с помощью реактивных методов [3]. Например, если View подпишется на изменения определенной переменной, то при изменении этой переменной у View вызовется метод обработки новых данных.
Таким образом, были рассмотрены технологии для разработки мобильных приложений для операционной системы iOS, а именно языки программирования Swift и Objective-C, и архитектура MVVM.
Список литературы
1. About Objective-C [Электронный ресурс]. -Режим доступа: https://developer.apple.com/li-brary/archive/documentation/Cocoa/Conceptual/Pro-grammingWithObjectiveC/Introduction/Introduc-tion.html, свободный (дата обращения: 15.08.2021).
2. About Swift [Электронный ресурс]. - Режим доступа: https://swift.org/about/, свободный (дата обращения: 15.08.2021).
3. RxSwift [Электронный ресурс]. - Режим доступа: https://developer.apple.com/documenta-tion/mapkit/, свободный (дата обращения: 16.08.2021).
УДК: 004.42
Калюжный Евгений Романович, Красноусов Виктор Михайлович, Букреев Леонид Вячеславович, Зариковская Наталья Вячеславовна
Томский государственный университет систем управления и радиоэлектроники
ООО «АльдераСофт»
ТЕХНОЛОГИИ, ИСПОЛЬЗУЕМЫЕ ПРИ РЕАЛИЗАЦИИ ФУНКЦИОНАЛА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ ДЛЯ ПЛАТФОРМЫ ANDROID
Kalyuzhny Evgeny Romanovich Krasnousov Viktor Mikhailovich Bukreev Leonid Vyacheslavovich Zarikovskaya Natalia Vyacheslavovna
Tomsk State University of Control Systems and Radioelectronics
LLC «AlderaSoft»
TECHNOLOGIES USED IN IMPLEMENTING THE FUNCTIONAL OF MOBILE APPLICATIONS
FOR THE ANDROID PLATFORM
Аннотация.
Рассмотрены технологии для реализации мобильного приложения для платформы Android, на языке программирования Kotlin и архитектуры MVVM, а также реализации серверной части на языке программирования Python и базы данных PostgreSQL.
Abstract.
Technologies for the implementation of a mobile application for the Android platform in the Kotlin programming language and MVVM architecture, as well as the implementation of the server side in the Python programming language and PostgreSQL database are considered.
Ключевые слова: мобильное приложение, технологии, мобильная платформа, архитектура, реализация, сервер, база данных.
Keywords: mobile application, technology, mobile platform, architecture, implementation, server, database.
Мобильные устройства под управлением операционной системой Android, занимают доминирующее положение на рынке мобильный устройств, данный факт означает то, что разработка приложений для этой платформы является особенно актуальной в современном мире. С каждым годом требования пользователей к мобильным приложениям растут все сильнее, также появляются все больше категорий и подкатегорий приложений для решений различных задач от повседневных до специфических.
Исходя из вышеописанного, можно сделать вывод, что для реализации стабильного и удобного приложения необходимо использовать проверенные и рекомендуемые инструменты разработки, а также существующие шаблоны архитектуры. Помимо приложения также немаловажным фактом является качество реализованной серверной части мобильного приложения, которая выполняет следующие функции:
«етушшшм-лшшау» #24мт, 2021 / technical science
35
1. взаимодействие приложения с базой данных через Системы Управления Базами Данных (СУБД);
2. реализации бизнес-логики предметной области;
3. взаимодействие с другими сервисами и приложениями (отправка email, авторизация через сторонние сервисы);
4. взаимодействие с операционной системой сервера;
5. построение API для взаимодействия сервера и мобильного приложения.
В данной статье рассмотрим язык разработки Kotlin и архитектуру MVVM для реализации мобильных приложений, а также язык программирования Python и базу данных PostgreSQL для реализации серверной части.
Язык программирования Kotlin - это крос-сплатформенный, статически типизированный, универсальный язык программировании. Kotlin разработан для полного взаимодействия с Java, а версия стандартной библиотеки Kotlin для JVM зависит от библиотеки классов Java, но вывод типов позволяет сделать его синтаксис более лаконичным. Kotlin в основном нацелен на JVM, но также компилируется в JavaScript (например, для интерфейсных веб-приложений, использующих React) или собственный код (через LLVM); например, для нативных приложений iOS, разделяющих бизнес-логику с приложениями Android [1].
Также следует выделить следующие положительные стороны данного языка для разработки под Android:
1. Зрелый язык и среда. Данный язык полностью интегрирован в среду для разработки приложений под Android.
2. Возможность использования языка Kotlin вместе с языком программирования Java.
3. Хорошая читаемость и небольшое количество кода для реализации определенного функционала приводят к меньшему количеству ошибок.
В качестве архитектуры мобильного приложения используется MVVM. MVVM(Model-View-ViewModel) - это шаблон проектирования архитектуры приложения, который используется для разделения модели и ее представления, для независимого обновления этих сущностей. Эти сущности взаимодействуют между собой только за счет механизма связывания данных. При этом изменение данных во ViewModel автоматически меняет данные, отображаемые во View. Аналогично, любое событие или изменение данных во View изменяет данные во ViewModel. Это позволяет не хранить явные ссылки на View во ViewModel.
Шаблон MVVM делиться на 3 части:
1. Модель представляет собой логику работы с данными и описание фундаментальных данных, необходимых для работы приложения.
2. Представление - графический интерфейс. Выступает подписчиком на событие изменения значений свойств или команд, предоставляемых Моделью Представления.
3. Модель Представления - с одной стороны, абстракция Представления, а с другой - обёртка данных из Модели, подлежащих связыванию. То есть, она содержит Модель, преобразованную к Представлению, а также команды, которыми может пользоваться Представление, чтобы влиять на Модель.
Пример архитектурного шаблона MVVM представлен на рисунке 1.
SQLite
Рисунок 1 - Пример архитектурного шаблона MVVM
36
TECHNICAL SCIENCE / «ШУУШШУМ-ЛШШаИ» #24ИМ), 2021
Учитывая то, что мобильное приложение является клиентской частью, любая клиентская часть реализует пользовательский интерфейс, формирует запросы к серверу и обрабатывает ответы от него.
Серверная часть получает запрос от клиента, выполняет обработку данных и формирует данные для мобильного приложения и отправляет их клиенту по сети с использованием протокола HTTP.
В качестве языка программирования для реализации серверной части мобильных приложений в подавляющем большинстве используется Python -высокоуровневый объектно-ориентированный язык [2]. Причина этому следующие положительные стороны данного языка программирования:
1. Python позволяет разработчикам выполнять работу с меньшим количеством строк кода, чем аналогичные объектно-ориентированные языки;
2. Код написанный на Python удобен в обслуживании из-за своей простоты и читаемости;
3. Язык Python предлагает огромную коллекцию официальных библиотек для решения большого спектра задач, связанных с серверной разработкой.
В качестве базы данных для серверной части мобильного приложения используется PostgreSQL. PostgreSQL имеет множество функций, призванных защищать целостность данных и создавать отказоустойчивые среды [3].
Для взаимодействия с базой данных используется технология ORM. Для манипуляции с описанными моделями выделим промежуточный слой
Create-Read-Update-Delete (CRUD), описывающий манипуляции с моделями. Вынесение CRUD операций на отдельный уровень позволяет изолироваться в других частях веб-приложения от работы с моделями напрямую и написанию ORM запросов. Для обеспечения целостности базы данных, в системе управления базами данных (СУБД) PostgreSQL существует механизм транзакций. Суть транзакции в том, что она объединяет последовательность действий в одну операцию «всё или ничего». Промежуточные состояния внутри последовательности не видны другим транзакциям, и, если что-то помешает успешно завершить транзакцию, ни один из результатов этих действий не сохранится в базе данных [4].
Список литературы
1. Kotlin - официальный сайт [Электронный ресурс] - Режим доступа: https://kotlin-lang.org/docs/home.html, свободный (дата обращения: 08.08.2021).
2. Python - официальный сайт [Электронный ресурс] - Режим доступа: https://www.py-thon.org/about/, свободный (дата обращения: 08.08.2021).
3. PostgreSQL - официальный сайт [Электронный ресурс] - Режим доступа: https://www.postgresql.org/about/, свободный (дата обращения: 08.08.2021).
4. PostgresPRO: транзакции [Электронный ресурс]. - Режим доступа: https://post-grespro. ru/docs/postgrespro/10/tutorial-transactions (дата обращения: 08.08.2021).
Шумилин Сергей Сергеевич
Программист-разработчик Кипр, Лимассол
НЕДОСТАТКИ МЕДИАХРАНИЛИЩ, СОЗДАННЫХ НА PHP
Shumilin Sergey Sergeevich
Programmer-developer Cyprus, Limassol
DISADVANTAGES OF MEDIA REPOSITORIES CREATED IN PHP
Аннотация.
В настоящее время деятельность любой компании так или иначе связана с получением и передачей информации, которая является стратегически важным товаром. При этом потеря информационных ресурсов в медиахранилищах, что особенно касается организаций финансовой отрасли, или завладение секретной информацией конкурентами, как правило, наносят компаниям серьезный ущерб. Нередко это приводит не только к значительным денежным потерям, но и к банкротству.
Abstract.
Currently, the activity of any company is somehow connected with the receipt and transmission of information, which is a strategically important commodity. At the same time, the loss of information resources in media storages, which is especially true for financial industry organizations, or the acquisition of secret information by competitors, as a rule, cause serious damage to companies. This often leads not only to significant monetary losses, but also to bankruptcy.
Ключевые слова: медиахранилища, PHP, образование, криптографические методы.
Keywords: media storages, PHP, education, cryptographic methods.