32
TECHNICAL SCIENCE / «ШЦУШШУМ-ЛШШаИ» #24ИМ), 2021
Экран с информацией об элементе маршрута выполнен в стиле «выдвигающейся шторки», чтобы часть информации всегда находилась на экране с картой.
После осуществления прогулки по выбранному маршруту, в приложении имеется возможность оценки маршрута по пяти-бальной шкале, возможность поделиться пройденным маршрутом с друзьями, а также просмотреть список рекомендованных маршрутов и перехода к ним.
Помимо вышеописанных функций, в приложение предусмотрен следующий функционал, сгруппированного по разделам:
1) общий раздел:
- прохождение краткого опросника для формирования рекомендаций;
2) прогулка:
- покупка маршрута;
- голосовая навигация при прохождении маршрута;
- просмотр уже пройденных маршрутов;
3) календарь:
- просмотр списка исторических событий;
- просмотр подробной информации об историческом событии;
- маршрут до точки, связанной с историческим событием с помощью приложения «Карты»;
4) уведомления:
- получение уведомлении о местах, которые пользователь недавно посещал;
- получение уведомлении, содержащих рекомендации к посещению того или иного маршрута;
5) профиль пользователя:
- просмотр информации о пользователе;
- редактирование информации о пользователе, а именно e-mail и пароль;
- смена темы со светлоИ на темную.
Реализованное приложение направлено на помощь людям как в выборе маршрута в незнакомом городе по наиболее интереснои им тематике, так и в получении полной, достоверной и качественной информации о самом маршруте и достопримечательностях, расположенных на нем.
Список литературы
1. About Swift [Электронный ресурс]. - Режим доступа: https://swift.org/about/, свободный (дата обращения: 15.08.2021).
2. MapKit Documentation [Электронный ресурс]. - Режим доступа: https://developer.ap-ple.com/documentation/mapkit/, свободный (дата обращения: 16.08.2021).
3. CoreLocation Documentation [Электронный ресурс]. - Режим доступа: https://developer.ap-ple.com/documentation/corelocation/, свободный (дата обращения: 17.08.2021).
- получение уведомлений, связанных с историческим событием, произошедшим в этот день; УДК: 004.42
Калюжный Евгений Романович, Красноусов Виктор Михайлович, Букреев Леонид Вячеславович, Зариковская Наталья Вячеславовна
Томский государственный университет систем управления и радиоэлектроники
ООО «АльдераСофт»
ТЕХНОЛОГИИ НАТИВНОИ РАЗРАБОТКИ МОБИЛЬНЫЙ ПРИЛОЖЕНИИ ДЛЯ ОПЕРАЦИОННОЙ СИСТЕМЫ IOS
Kalyuzhny Evgeny Romanovich, Krasnousov Viktor Mikhailovich, Bukreev Leonid Vyacheslavovich, Zarikovskaya Natalia Vyacheslavovna
Tomsk State University of Control Systems and Radioelectronics
LLC «AlderaSoft»
NATIVE DEVELOPMENT TECHNOLOGIES FOR IOS MOBILE APPLICATIONS
Аннотация.
В данной статье рассмотрены технологии для разработки мобильных приложений для операционных iOS, а именно языки программирования Swift и Objective-C, и архитектура MVVM, а также актуальность вышеописанных языков программирования.
Abstract.
This article discusses technologies for developing mobile applications for operating iOS, namely the Swift and Objective-C programming languages, and the MVVM architecture, as well as the relevance of the above programming languages.
Ключевые слова: iOS, AppStore, Apple, MVVM, Swift, Objective-C, мобильные приложения. Keywords: iOS, AppStore, Apple, MVVM, Swift, Objective-C, mobile applications.
«етушшшм-лшшау» #24ш, 2021 / technical science
33
В настоящее время, практического у каждого человека есть свое мобильное устройство, такое как смартфон, планшет, часы и т.д. Из этого следует, что практически каждый человек нуждается в надежных, качественных и безопасных мобильных приложениях для своих устройств. На сегодняшний день на рынке мобильных устройств преобладают две операционные системы iOS и Android, у который есть свои собственные магазины для приложений и правила по их оформлению. Так, например, в магазине приложений AppStore находятся приложения для операционных систем iOS, iPadOS, macOS и watchOS. Рассмотрим технологии для реализации мобильных приложений для операционной системы iOS.
Для реализации мобильных приложений для платформы iOS необходимо определиться с языком программирования, архитектурой и минимально-поддерживаемой версией операционной системы, т.к. от нее зависят некоторые фреймоворки, которые не доступны для использования на более низких версиях операционной системы.
На сегодняшний день существует для натив-ной разработки два языка программирований для операционных систем iOS, iPadOS, masOS и watchOS: Objective-C и Swift.
Objective-C - это язык программирования, который используется при написании программного обеспечения для iOS, iPadOS, masOS и watchOS. Это надмножество языка программирования C, обеспечивающее объектно-ориентированные возможности и динамическую среду выполнения. Ob-jective-C наследует синтаксис, примитивные типы и операторы управления потоком C и добавляет синтаксис для определения классов и методов. Он также добавляет поддержку на уровне языка для управления графом объектов и объектных литералов, обеспечивая динамическую типизацию и привязку, откладывая многие обязанности до времени выполнения [1]. Но Objective-C имеет и ряд минусов:
• Objective-C не имеет опциональные типы, как в Swift, что усложняет контролем контроль за переменными, которые могут принимать null значение;
• Objective-C имеет своеобразный синтаксис, что в свою очередь повышает порог вхождения в iOS разработку;
• Objective-C имеет runtime библиотека, которая позволяет динамически выполнять действия над кодом прямо во время выполнения программы, что приводит к неожиданным результатам, если не знать ее особенности, что в свою очередь тоже приводит к повышению порога вхождения в iOS разработку.
Objective-C появился в 1983 году, из чего можно сделать вывод, что данный язык программирования устаревает, т.к. Apple не занимается его развитием и продвижением. На смену языка Objec-tive-C пришел язык Swift, который был создан в 2014 году и позиционировался, как замена своему предшественнику - Objective-C.
Swift - это надёжный и интуитивно понятный язык программирования от компании Apple, при помощи которого можно создавать приложения для iOS, Mac, Apple TV и Apple Watch. Он предоставляет разработчикам небывалую свободу творчества. Благодаря этому простому и удобному языку с открытым кодом достаточно просто интересной идеи, чтобы создать нечто невероятное, как заявляет Apple [2]. Язык программирования также добавлен в учебную программу некоторых американских вузов, таких как Калифорнийский университет в Санта-Круз или Политехнический университет штата Калифорния.
Swift в сравнении с Objective-C имеет современный синтаксис, что в свою очередь уменьшает порог вхождения в iOS разработку. Также, Swift имеет открытый репозиторий с исходных кодом, что позволяет разработчикам со всего мира влиять на его развитие, предлагая новые функции и оптимизацию самой компании Apple. Исходя из вышеописанного, можно сделать вывод, что компания Apple активно развивает данный язык программирования и делает его основным языком для создания приложения для всех устройств от Apple. В создании новых приложений, предпочтение всегда отдаётся языку Swift.
Для создание большого, поддерживаемого и масштабируемого приложения, необходимо выстроить архитектуру для будущего приложения.
На сегодняшний день существует множество архитектурных решений для реализации мобильных приложений, такие как: MVC, MVP, MVI, MVVM и т.д. Рассмотрим самую популярную и широко используемую архитектур - MVVM.
MVVM (Model-View-ViewModel) - это архитектурный шаблон проектирования, который направлен на разделение бизнес логики приложения, отображения и взаимодействия с данными. MVVM архитектура состоит из трех компонентов:
1. Model - компонент, который отвечает за хранений, запрос и получение данных;
2. View - компонент, который отвечает за отображение пользовательского интерфейса и данных на нем;
3. ViewModel - компонент, который отвечает за бизнес логику приложения, а именно верхне-уровневое взаимодействие с Model и View.
Ниже на рисунке 1 представлена схема взаимодействия компонентов в архитектуре MVVM.
данных данных
View команды ViewModel обновление модели Model
Рисунок 1 - Схема взаимодействия компонентов в архитектуре MVVM
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, занимают доминирующее положение на рынке мобильный устройств, данный факт означает то, что разработка приложений для этой платформы является особенно актуальной в современном мире. С каждым годом требования пользователей к мобильным приложениям растут все сильнее, также появляются все больше категорий и подкатегорий приложений для решений различных задач от повседневных до специфических.
Исходя из вышеописанного, можно сделать вывод, что для реализации стабильного и удобного приложения необходимо использовать проверенные и рекомендуемые инструменты разработки, а также существующие шаблоны архитектуры. Помимо приложения также немаловажным фактом является качество реализованной серверной части мобильного приложения, которая выполняет следующие функции: