Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Создание программного обеспечения для нательных компьютерных сетей и носимых систем. Учебное пособие.pdf
X
- •ЧАСТНОЕ УЧРЕЖДЕНИЕ
- •Медицинский университет «РЕАВИЗ»
- •ВВЕДЕНИЕ
- •1.2. Исторический обзор развития носимых систем
- •ГЛАВА 2. ТЕХНОЛОГИЧЕСКИЕ АСПЕКТЫ РАЗРАБОТКИ
- •2.1. Выбор технологического стека для носимых систем
- •2.2. Архитектурные решения при разработке программного обеспечения
- •2.3. Управление энергопотреблением и оптимизация производительности
- •2.5. Интеграция с облачными сервисами в носимых приложениях
- •2.4. Работа с датчиками и взаимодействие с окружающей средой
- •2.6. Аспекты безопасности в технологическом контексте
- •3.1. Языки программирования и их роль в разработке для носимых систем
- •3.2. Принципы объектно-ориентированного программирования в контексте носимых технологий
- •3.3. Обзор паттернов проектирования для эффективной разработки приложений
- •3.4. Многозадачность и управление потоками в носимых приложениях
- •3.5. Оптимизация алгоритмов под ограниченные ресурсы носимых устройств
- •3.6. Работа с сенсорами и вводом данных в носимых приложениях
- •3.7. Адаптация пользовательского интерфейса к маленьким экранам и управлению сенсорами
- •4.1. Особенности дизайна интерфейса для различных типов носимых устройств (часы, очки, фитнес-трекеры)
- •4.2. Адаптация пользовательского опыта к ограниченным размерам экрана
- •4.3. Взаимодействие с пользователем через жесты и голосовые команды
- •4.4. Работа с уведомлениями и многозадачность в носимых приложениях
- •4.5. Применение принципов доступности в дизайне интерфейса
- •ГЛАВА 5. РАЗРАБОТКА КЛИЕНТ-СЕРВИСНОЙ ОРГАНИЗАЦИИ НАТЕЛЬНОЙ КОМПЬЮТЕРНОЙ СЕТИ (НА ПРИМЕРЕ watchOS)
- •5.3. Работа с данными и обеспечение их конфиденциальности
- •5.4. Разработка клиентских приложений
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРИЛОЖЕНИЕ А
- •ПРИЛОЖЕНИЕ Б
- •ПРИЛОЖЕНИЕ В

32. Пуртова, А. П. Разработка мобильного приложения, обеспечивающего
доступ к датчикам носимых устройств в режиме реального времени
/ А. П. Пуртова, О. Б. Малков // Информационные технологии и автоматизация
управления : Материалы XI Всероссийской научно-практической конференции
студентов, аспирантов, работников образования и промышленности, Омск,
29–30 мая 2020 года. – Омск: Омский государственный технический университет, 2020. – С. 164–173.
33. Богданова, Д. А. Информационно-коммуникационные технологии для
образования: о некоторых инновационных разработках и возникающих тенденциях / Д. А. Богданова // Дистанционное и виртуальное обучение. – 2015. –
№ 7(97). – С. 100–110.
34. Агафонова, В. В. Теория интерфейсов бизнес-систем : специальность
08.00.13 «Математические и инструментальные методы экономики» : автореферат диссертации на соискание ученой степени доктора экономических наук /
Агафонова Валентина Васильевна. – Москва, 2003. – 35 с.
35. Муха, Ю. П. Теория и практика синтеза системного интерфейса сложных систем / Ю. П. Муха, О. А. Авдеюк, В. М. Антонович // Биомедицинские
технологии и радиоэлектроника. – 2005. – № 3. – С. 39–48.
36. Серов, В. В. Модель естественноязыкового интерфейса экспертной
системы на основе нечеткой логики / В. В. Серов // Современные информационные технологии в образовании, науке и промышленности : XII Международная конференция и X Международный конкурс научных и научнометодических работ, Москва, 15–16 февраля 2019 года. – М.: ООО «Издательство «Спутник+», 2019. – С. 53–56.
37. Абарникова, Е. Б. Применение фреймовых моделей при разработке
масштабируемых веб-приложений / Е. Б. Абарникова, Е. Э. Шаповалов //
Наука, инновации и технологии: от идей к внедрению : материалы II Международной научно-практической конференции молодых ученых, Комсомольск-наАмуре, 14–18 ноября 2022 года / Редколлегия: А.В. Космынин (отв. ред.) [и др.].
Том 1. – Комсомольск-на-Амуре: Комсомольский-на-Амуре государственный
университет, 2022. – С. 19–23.
38. Кенин, С. Л. Модели и алгоритмы интеграции информационной среды
специализированных систем поддержки управленческих решений : специальность 05.13.01 «Системный анализ, управление и обработка информации (по
отраслям)» : диссертация на соискание ученой степени кандидата технических
наук / Кенин Сергей Леонидович. – Воронеж, 2013. – 153 с.
131

39. Хрулева, Н. Д. Экономические аспекты конвертирования кода мобильных приложений Java-Swift с использованием транс-компиляторов
/ Н. Д. Хрулева // Экономика: вчера, сегодня, завтра. – 2021. – Т. 11, № 9-1. –
С. 342–346.
40. Артемов, А. А. Анализ современных сред разработки мобильных приложений / А. А. Артемов, Р. Р. Акжигитов, Э. Н. Гаджимурадов // Инновации.
Наука. Образование. – 2021. – № 30. – С. 857–868.
41. Конопелько, Г. К. Аппаратно-программная платформа для разработки
мобильных приложений / Г. К. Конопелько, А. В. Глущенко, А. С. Золотарев //
Информационные технологии XXI века : сборник научный трудов / отв. ред.
В.В. Воронин. – Хабаровск : Тихоокеанский государственный университет,
2018. – С. 466–470.
42. Григорян, Д. А. Анализ производительности акторных механизмов и
GCD в IOS с использованием языка программирования Swift / Д. А. Григорян //
Научный журнал. – 2022. – № 2 (64). – С. 16–21.
43. Родыгина, И. В. Многопоточность и GCD (Grand central dispatch) в
приложениях для платформы IOS с использованием языка программирования
swift / И. В. Родыгина, Е. Д. Орешкина // Вестник государственного морского
университета имени адмирала Ф.Ф. Ушакова. – 2021. – № 4 (37). – С. 14–17.
44. Мошкин, Н. В. Dependency Injection при разработке программного
обеспечения на языке Swift / Н. В. Мошкин // Цифровизация как новая парадигма развития: вызовы, возможности и перспективы : сборник статей Международной научно-практической конференции, Петрозаводск, 31 мая 2021 года. –
Петрозаводск: Международный центр научного партнерства «Новая Наука»,
2021. – С. 42–46.
45. Ткаченко, К. С. Разработка программ на языках Swift и Rust для решения классической задачи о построении расписания обслуживания для двух
устройств / К. С. Ткаченко // Системный администратор. – 2023. – № 11(252). –
С. 93–95.
46. Борисова, М. К. Сравнение платформ и технологий C# Xamarin и Swift
используемых для создания мобильного приложения совместимого с IOS системой / М. К. Борисова, Е. В. Вершинин // Электронный журнал: наука, техника и образование. – 2020. – № 4 (31). – С. 34–38.
47. Макаров, В. И. Особенности разработки пользовательского интерфейса для Android-приложений в среде разработки android studio / В. И. Макаров //
Теория и практика современной науки. – 2018. – № 7 (37). – С. 222–224.
132

48. Цхошвили, Д. З. Использование java-библиотек в Android Studio для
извлечения информации с веб-ресурсов / Д. З. Цхошвили, Н. А. Иванова
// Актуальные вопросы в науке и практике : Сборник статей по материалам II
международной научно-практической конференции, Уфа, 10 октября 2017 года.
Том 1(2). – Уфа: Общество с ограниченной ответственностью Дендра, 2017. –
С. 136–142.
49. Андриенко, И. С. Использование базы данных SQLite в Android Studio
/ И. С. Андриенко // Постулат. – 2022. – № 2 (76).
50. Новикова, Т. Б. Практикум по разработке мобильных приложений :
Практикум для студентов направления подготовки 09.03.03 «Прикладная информатика», 38.03.05 «Бизнес-информатика» / Т. Б. Новикова, И. В. Гаврилова,
Л. В. Курзаева. – Магнитогорск : Магнитогорский государственный технический университет им. Г.И. Носова, 2023. – 224 с.
51. Yumashev A., Koneva E., Borodina M., Lipson D., Nedosugova A. Electronic apps in assessing risk and monitoring of patients with arterial hypertension //
La Prensa Medica Argentina. – 2019. – Vol. 105 (4). – P. 235–245.
52. Chirkov M.A., Abdryashitova A.I., Chistyakov M.S. Crime counter action
in the digital environment as a factor of the development of high technology
// Advances in Economics , Busines s and Manage ment Resear ch. – 2019. – Vol. 81. –
P. 437–440.
53. Nikolenko D.A., Munister V.D., Zolkin A.L., Khvatov I.L., Karapetyan
A.A. Analysis of modern computer diagnostic and measurement methods in medicine // Journal of Physics: Conference Series. II International Scientific Confer-ence
on Metrological Support of Innovative Technologies (ICMSIT II-2021). – Krasnoyarsk, 2021. – P. 52005.
54. Золкин, А.Л. Основы алгоритмизации, мировые информационные ресурсы, медико-биологическая статистика: учебное пособие. Часть 1
/ А.Л. Золкин. – Самара: Медицинский университет «Реавиз», 2022. – 165 с.
133

ПРИЛОЖЕНИЕ А
Листинг типового клиент-серверного приложения
для нательной системы на Watch OS
import WatchConnectivity
import WatchKit
class InterfaceController: WKInterfa ceController, WCSessionDelegate {
@IBOutlet weak var label: WKInterfaceLabel!
override func awake(withContext context: Any? ) {
super.awake(withContext: context)
if WCSession.default.isReachable {
sendRequestToServer(parameter: «exampleParameter»)
} else {
label.setText(«Сервер недоступен»)
}
}
func sendRequestToServer(parameter: String) {
let session = WCSession.default
session.delegate = self
session.activate()
guard let url = URL(string: «http://yourserver.com/api/data») else {
label.setText(«Ошибка в URL сервера»)
return
}
var request = URLRequest(url: url)
request.httpMethod = «POST»
let parameters: [String: Any] = [«parameter»: parameter]
do {
// Преобразуем параметры в JSON
134

let jsonData = try JSONSerialization.data(withJSONObject: parameters)
request.httpBody = jsonData
} catch {
print(«Ошибка преобразования параметров в JSON:
\(error.localizedDescription)»)
return
}
let task = URLSession.shared.dataTask(with: request) { [weak self] data, response, error in
guard let self = self else { return }
if let error = error {
print(«Ошибка запроса: \(error.localizedDescription)»)
// Обработка ошибок сети
DispatchQueue.main.async {
self.label.setText(«Ошибка сети»)
}
return
}
if let data = data {
// Обработка данных от сервера
if let result = String(data: data, encoding: .utf8) {
DispatchQueue.main.async {
self.label.setText(result)
}
}
}
}
task.resume()
}
func session(_ session: WCSession, didReceiveMessage message: [String: Any]) {
// Обработка полученных данных от сервера
if let serverResponse = message[«serverResponse»] as? String {
135

DispatchQueue.main.async {
self.label.setText(serverResponse)
}
}
}
func sessionReachabilityDidChange(_ session: WCSession) {
if session.isReachable {
// Сессия стала доступной, отправим запрос на сервер
sendRequestToServer(parameter: «exampleParameter»)
} else {
label.setText(«Сервер стал недоступен»)
}
}
func sessionDidBecomeInactive(_ session: WCSession) {
// Сессия стала неактивной (например, из-за разрыва соединения)
}
func sessionDidDeactivate(_ session: WCSession) {
// Сессия была деактивирована, необходимо повторно активировать
session.activate()
}
}
136

Листинг типового клиент-серверного приложения
для нательной системы на Wear OS
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.wearable.activity.WearableActivity
import android.widget.TextView
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.http.GET
import java.io.IOException
ПРИЛОЖЕНИЕ Б
interface ApiService {
@GET(«api/data»)
suspend fun fetchData(): String
}
class MainActivity : WearableActivity() {
private lateinit var statusTextView: TextView
private val retrofit = Retrofit.Builder()
.baseUrl(«http://yourserver.com/»)
.addConverterFactory(GsonConverterFactory.create())
.build()
private val apiService = retrofit.create(ApiService::class.java)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
statusTextView = findViewById(R.id.statusTextView)
137

if (isConnectedToServer()) {
// Если соединение с сервером установлено, отправляем запрос
sendRequestToServer()
} else {
showSnackbar(getString(R.string.server_unavailable))
}
// Enables Always-on
setAmbientEnabled()
}
private fun isConnectedToServer(): Boolean {
// Ваш код для проверки доступности сервера
// Возвращаем true, если сервер доступен, иначе false
// Можно использовать различные методы, такие как проверка наличия ин-
тернет-соединения
return true
}
private fun sendRequestToServer() {
GlobalScope.launch(Dispatchers.IO) {
try {
val response = apiService.fetchData()
// Обработка успешного ответа от сервера
launch(Dispatchers.Main) {
statusTextView.text = response
}
} catch (e: IOException) {
// Обработка ошибок ввода/вывода (например, отсутствие интернет-
соединения)
showSnackbar(getString(R.string.server_unavailable))
} catch (e: Exception) {
// Обработка других ошибок
showSnackbar(getString(R.string.request_error, e.localizedMessage))
}
}
}
138

private fun showSnackbar(message: String) {
Snackbar.make(statusTextView, message, Snackbar.LENGTH_LONG).show()
}
}
import androidx.lifecycle.ViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
class MainViewModel : ViewModel() {
private val repository = Repository() // Создайте класс Repository для работы с
данными
suspend fun fetchData(): String {
return withContext(Dispatchers.IO) {
repository.fetchData()
}
}
}
139

Листинг организационной структуры типового json-сообщения
биометрической системы идентификации нательной системы
{
«biometricData»: {
«userId»: «123456»,
«biometricType»: «fingerprint»,
«biometricTemplate»: «base64_encoded_template»,
«timestamp»: «2023-01-01T12:00:00Z»,
«deviceLocation»: {
«latitude»: 37.7749,
ПРИЛОЖЕНИЕ В
«longitude»: -122.4194
},
«userActions»: {
«actionType»: «unlock»,
«actionTimestamp»: «2023-01-01T12:01:00Z»
}
},
«deviceInfo»: {
«deviceId»: «789012»,
«deviceType»: «wearable»,
«deviceOS»: «watchOS»,
«deviceModel»: «SmartWatch123»,
«deviceManufacturer»: «SmartTech»,
«deviceSerialNumber»: «SN123456»,
«deviceFirmwareVersion»: «v1.0.0»,
«deviceBatteryLevel»: 75,
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
