Добавил:
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. Разработка клиентских приложений
- •ЗАКЛЮЧЕНИЕ
- •БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- •ПРИЛОЖЕНИЕ А
- •ПРИЛОЖЕНИЕ Б
- •ПРИЛОЖЕНИЕ В

if let username = UserDefaults.standard.string(forKey: «username») {
print(«Username: \(username)»)
}
```
#### Keychain:
Keychain предоставляет более безопасное место для хранения конфиденциальных данных, таких как пароли или токены.
```swift
import Security
// Сохранение пароля в Keychain
let password = «securePassword»
let query: [String: Any] = [
kSecClass as String: kSecClassGenericPassw ord,
kSecAttrAccount as String: «userAccount»,
kSecValueData as String: password.data(using: .utf8)!,
]
let status = SecItemAdd(query as CFDicti onary, nil)
// Получение пароля из Keychain
let queryForRead: [String: Any] = [
kSecClass as String: kSecClassGenericPassw ord,
kSecAttrAccount as String: «userAccount»,
kSecReturnData as String: kCFBooleanTrue!,
kSecMatchLimit as String: kSecMatchLimitOne,
]
var item: CFTypeRef?
let statusRead = SecItemCopyMatching(queryForRead as CFDictionary,
&item)
if let passwordData = item as? Data,
let passwordString = String(data: passwordData, encoding: .utf8) {
121

print(«Password: \(passwordString)»)
}
```
### Обеспечение конфиденциальности:
#### Secure Enclave (Touch ID / Face ID):
Для биометрической аутентификации можно использовать Secure
Enclave.
```swift
import LocalAuthentication
let context = LAContext()
var error: NSError?
if context.canEvaluatePolicy(.de vi ceOwnerAuthentication, error: &error) {
context.evaluatePolicy(.deviceOwnerAuthentication, localizedReason:
«Аутентификация пользователя») { success, error in
if success {
// Успешная аутентификация
} else {
// Ошибка аутентификации
}
}
} else {
// Устройство не поддерживает аутентификацию
}
```
#### Шифрование данных:
Шифрование данных перед их сохранением обеспечивает дополнительный уровень безопасности.
```swift
import CryptoKit
122

let dataToEncrypt = «SensitiveData».data(using: .ut f8)!
let key = SymmetricKey(size: .bits256)
// Шифрование данных
let encryptedData = try! ChaChaPoly.seal(dataToEncrypt, using:
key).combined
// Дешифрование данных
let decryptedData = try! ChaChaPoly.open(ChaChaPoly.SealedBox(combined:
encryptedData), using: key).data
let decryptedString = String(data: decryptedData, encoding: .utf8)!
print(«Decrypted Data: \(decryptedString)»)
```
Эти примеры показывают базовые шаги по сохранению и обеспечению
конфиденциальности данных в приложении на Swift. Важно адаптировать эти
примеры в зависимости от конкретных потребностей и характера вашего приложения.
5.4. Разработка клиентских приложений
В SwiftUI, пользовательский интерфейс часто описывается в одном файле
`ContentView`. Давайте создадим простой проект для WatchOS, где все содержимое будет в одном файле `ContentView.swift`.
### 1. Создание нового проекта:
1. Откройте Xcode и выберите «Create a new Xcode project».
2. Выберите шаблон «Watch App» и нажмите «Next».
3. Укажите имя проекта (например, «WatchOSHelloWorld»).
4. Убедитесь, что «User Interface» установлен в «SwiftUI».
5. Нажмите «Next» и укажите место для сохранения проекта.
6. Завершите создание проекта.
### 2. Редактирование `ContentView.swift`:
Откройте файл `ContentView.swift` и замените его содержимое на следующий код:
```swift
import SwiftUI
123

struct ContentView: View {
@State private var stepCount = 0
var body: some View {
VStack {
Text(«Steps: \(stepCount)»)
.font(.title)
.padding()
Button(action: {
self.stepCount += 1
}) {
Text(«Add Step»)
.padding()
.background(Color.blue)
.foregroundColor(.white)
.cornerRadius(8)
}
}
}
struct ContentView_Previews: PreviewProvide r {
static var previews: some View {
ContentView()
}
}
```
### 3. Запуск приложения:
1. Выберите WatchOS цель (например, «My Watch») в Xcode.
2. Запустите приложение на эмуляторе WatchOS.
Теперь у вас есть простое приложение для WatchOS, которое отображает
количество шагов и позволяет добавлять их с помощью кнопки. Этот пример
демонстрирует, как весь пользовательский интерфейс может быть описан в од-
124

ном файле `ContentView.swift`. В реальных проектах, конечно, вы можете разделять код на несколько файлов для удобства [30].
Программа «WatchOSHelloWorld» представляет собой простое приложение для платформы WatchOS, созданное с использованием языка программирования Swift и фреймворка SwiftUI. Цель приложения – демонстрация основных
возможностей WatchOS и реализация функциональности, такой как отслеживание шагов, голосовой ввод и отправка уведомлений.
Одним из ключевых компонентов программы является файл
`ContentView.swift`, содержащий описание пользовательского интерфейса.
Здесь используются различные элементы SwiftUI, такие как текстовые метки и
кнопки, для отображения информации и взаимодействия с пользователем.
Для отслеживания шагов приложение использует фреймворк
`SFSpeechRecognizer`, который предоставляет возможность голосового ввода.
Это дополняется функциональностью отправки уведомлений, реализованной с
использованием `UserNotifications`.
125

ЗАКЛЮЧЕНИЕ
В пособии предоставлены подробные рекомендации по созданию удобных и адаптивных интерфейсов для различных типов носимых устройств,
включая часы, очки и фитнес-трекеры. Описаны особенности дизайна, адаптация пользовательского опыта и взаимодействие с жестами и голосовыми командами.
Подробно рассмотрены требования к архитектуре клиент-сервиса на примере WatchOS и Wear OS. Приведены примеры идентификации потребностей
пользователей, определения функциональности и проектирования пользовательского опыта.
В пособие включены практические примеры программирования на Swift
для WatchOS, начиная от создания простого «Hello World» приложения и заканчивая интеграцией различных функциональных возможностей, таких как
отслеживание шагов, голосовой ввод и уведомления.
В учебном пособии предоставлены реальные примеры кода и практические задания, позволяя обучающимся сразу применять полученные знания в
собственных проектах.
Пособие охватывает многие аспекты разработки для носимых устройств,
начиная от дизайна интерфейса и заканчивая разработкой клиент-сервисной архитектуры.
Сочетание теоретических основ, практических примеров и рекомендаций
для дальнейшего развития делает данное пособие полезным ресурсом для обучающихся, для самообучения и профессиональных разработчиков.
126

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Петухов, А.А. Выбор стандарта беспроводной связи для нательной си-
стемы захвата движения / А.А. Петухов // Распределенные компьютерные и телекоммуникационные сети: управление, вычисление, связь (DCCN-2017): материалы Двадцатой международной научной конференции, Москва, 25–29 сентября 2017 года ; под общ. ред. В.М. Вишневского. – М.: Рекламноиздательский центр «ТЕХНОСФЕРА», 2017. – С. 328–335.
2. Меркурьев, Р.О. Оценка безопасности нательной компьютерной сети /
Р.О. Меркурьев // Международный студенческий научный вестник. – 2018. –
№ 3-2. – С. 206–209.
3. Мясникова, О.В. Теоретико-концептуальные подходы к формирова-
нию производственно-логистической системы «умного» производства как социокиберфизической системы / О.В. Мясникова // Экономика. Управление. Инновации. – 2020. – № 1 (7). – С. 29–35.
4. Парфенов, С.Ю. Разработка адаптивной методической системы обучения программированию с помощью технических компонентов системы «умный
дом» / С.Ю. Парфенов, С.С. Останин // Вестник Шадринского государственного педагогического университета. – 2019. – № 2 (42). – С. 86–92.
5. Зенкова, А.А. Разработка интеллектуальной системы контроля микроклимата в системе умного дома / А.А. Зенкова // Кузбасс: образование, наука, инновации. Молодежный вклад в развитие научно-образовательного центра «Кузбасс» : материалы X Инновационного конвента, Кемерово, 30 января 2022 года. –
Кемерово: Кемеровский государственный университет, 2022. – С. 375–376.
6. Иванов, Д.А. Разработка системы управления умным домом с помощью
мобильного приложения и системы автоматизации Home Assistant / Д.А. Иванов,
А.В. Петров, Е.В. Каплан // Современные технологии в теории и практике программирования : сборник материалов научно-практической конференции, СанктПетербург, 22 апреля 2021 года. – СПб.: Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский
политехнический университет Петра Великого», 2021. – С. 29–30.
7. Фадеев, А.Ю. Система распознавания жестов для управления модулями
умного дома / А.Ю. Фадеев, В.О. Малышев // Интеллектуальные технологии:
гуманитарные, социально-правовые и цифровые аспекты : материалы всероссийской научно-практической конференции с международным участием, Миасс, 06 июня 2019 года. – Миасс: Челябинский государственный университет,
2019. – С. 74–79.
127

8. Создание мобильного приложения для исследования кинематического
портрета человека / И.А. Токарева, В.В. Алексеев, Д. Суров, О.А. Микус //
Международная конференция по мягким вычислениям и измерениям. – 2022. –
Т. 1. – С. 230–233.
9. Шевчук, М.В. Методика использования носимой электроники при обучении основам работы с мобильными платформами / М.В. Шевчук, В.Г. Шевченко, В.В. Лазовская // Вестник Московского государственного областного
университета. Серия: Педагогика. – 2020. – № 4. – С. 44–51.
10. Разработка кроссплатформенного электронного учебного пособия по
программированию на языке с++ с помощью Xamarin.Forms/C# / Л.С. Харитонов, И.П. Устюжанин, М.Д. Бочкарева, Т.Е. Эварт // XXV Всероссийская студенческая научно-практическая конференция Нижневартовского государственного университета : материалы конференции, Нижневартовск, 04–05 апреля
2023 года ; под общ. ред. Д.А. Погонышева. Том Часть 3. – Нижневартовск:
Нижневартовский государственный университет, 2023. – С. 184–189.
11. Горелова, Т.П. Высокотехнологичность и инновационность выпускаемой продукции как вектор стратегического развития компанийлидеров на
рынке мобильных носимых устройств (на примере компании A P P L E) /
Т.П. Горелова, Я.Д. Климанова, А.В. Козочкина // Вестник Академии. – 2020. –
№ 3. – С. 30–46.
12. Сверхширокополосные беспроводные нательные сенсорные сети
/ А.С. Дмитриев, В.А. Лазарев, М.И. Герасимов, А.И. Рыжов // Радиотехника и
электроника. – 2013. – Т. 58, № 12. – С. 1160.
13. Хромов, И.А. Обзор и анализ моделей беспроводных нательных сетей
/ И.А. Хромов // Межвузовская научно-техническая конференция студентов,
аспирантов и молодых специалистов им. Е.В. Арменского : материалы конференции, Москва, 17–29 февраля 2016 года / Московский институт электроники
и математики Национального исследовательского университета «Высшая школа экономики». – М.: Московский институт электроники и математики НИУ
ВШЭ, 2016. – С. 171–173.
14. Мониторинг физиологического состояния оператора сложных технических систем на основе персональной нательной сети / И.А. Иванова, В.В. Никонов, И.В. Терехин, О.К. Редькин // Промышленные АСУ и контроллеры. –
2014. – № 8. – С. 36–45.
15. Пономарчук, Ю.В. Об эффективности методов интерпретации мышечных сокращений для реализации жестового интерфейса / Ю.В. Пономарчук,
И.В. Кузнецов // Актуальные теоретико-методологические и прикладные про-
128

блемы виртуальной реальности и искусственного интеллекта : материалы Международной научной конференции, Хабаровск, 27–28 мая 2021 года / Дальневосточный государственный университет путей сообщения. – Хабаровск: Дальневосточный государственный университет путей сообщения, 2021. – С. 37–43.
16. Хромов, И.А. Выбор биометрического метода для носимой электроники / И.А. Хромов // Межвузовская научно-техническая конференция студентов, аспирантов и молодых специалистов им. Е.В. Арменского : материалы
конференции, Москва, 17–29 февраля 2016 года / Московский институт электроники и математики Национального исследовательского университета
«Высшая школа экономики». – М.: Московский институт электроники и математики НИУ ВШЭ, 2016. – С. 299–300.
17. Исследование движения человека в системах компьютерного зрения
на основе скелетной модели / С.А. Казакова, П.А. Леонтьева, М.И. Фролова
[и др.] // Научно-технический вестник информационных технологий, механики
и оптики. – 2021. – Т. 21, № 4. – С. 571–577.
18. Кулик, В. Методы исследования беспроводных каналов связи Интернета Вещей в условиях совместной работы / В. Кулик, Р.В. Киричек, А. Бондарев // Информационные технологии и телекоммуникации. – 2015. – Т. 3, № 1. –
С. 106–114.
19. Горячка, В.О. Особенности реализации сценариев мобильного здравоохранения на основе технологий межмашинного взаимодействия / В.О. Горячка, Н.И. Шевченко // Студенческая наука для развития информационного общества : сборник материалов IV Всероссийской научно-технической конференции: в 2-х томах, Ставрополь, 28–30 апреля 2016 года. Том 2. – Ставрополь:
Северо-Кавказский федеральный университет, 2016. – С. 56–58.
20. Пипия, Л.К. Регулирование использования технологии распознавания
лиц / Л.К. Пипия, В.С. Дорогокупец // Наука за рубежом. – 2023. – № 116. –
С. 1–55.
21. Самарин, А. Электроника, встроенная в одежду – технологии и перспективы (часть 2) / А. Самарин // Компоненты и технологии. – 2007. –
№ 5 (70). – С. 146–152.
22. Былевский, П.Г. Возможности и ограничения цифровой динамической
биометрической идентификации / П.Г. Былевский // Вопросы защиты информации. – 2023. – № 3 (142). – С. 12–17.
23. Молчанов, Д.А. Приложения беспроводных сенсорных сетей
/ Д.А. Молчанов, Е.А. Кучерявый // Электросвязь. – 2006. – № 6. – С. 20–23.
129

24. Зарипов, А.Р. Сравнительный анализ языков программирования
KOTLIN И JAVA / А.Р. Зарипов, Ф.Ф. Сафиуллина // Сборник трудов молодых
ученых УВО «Университет управления «ТИСБИ». – Казань : Университет
управления «ТИСБИ», 2019. – С. 134–138.
25. Ан, Е.В. Обзор сред разработки приложений для умных часов /
Е.В. Ан // Новые информационные технологии в автоматизированных системах. – 2015. – № 18. – С. 466–470.
26. Шевчук, М.В. Методика использования носимой электроники при
обучении основам работы с мобильными платформами / М.В. Шевчук,
В.Г. Шевченко, В.В. Лазовская // Вестник Московского государственного областного университета. Серия: Педагогика. – 2020. – № 4. – С. 44–51.
27. Разработка языка шаблонов кодогенерации для информационной системы автоматизации разработки мобильных приложений / А.Б. Кураков,
Р.С. Кульшин, Г.А. Волокитин, С. В. Коновалов // Электронные средства и системы управления. Материалы докладов Международной научно-практической
конференции. – 2022. – № 1-2. – С. 79–80.
28. Кроссплатформенная разработка мобильных приложений на основе
набора средств разработки Flutter / К.О. Атаджанов, Д.С. Шарапиев, Д.И. Акрамова, А.К. Овсянкин // Наука и бизнес: пути развития. – 2020. – № 3 (105). –
С. 30–32.
29. Троянов, А.А. Анализ функциональных возможностей систем биометрической аутентификации пользователя информационной системы / А.А. Троянов, Е.А. Некрасова // Студенческая наука для развития информационного общества : сборник материалов VI Всероссийской научно-технической конференции, Ставрополь, 22–26 мая 2017 года. Том Часть 1. – Ставрополь: СевероКавказский федеральный университет, 2017. – С. 171–173.
30. Барашко, Е.Н. Биометрические системы и системы идентификации.
Эффективность и результативность / Е.Н. Барашко, В.А. Заинчковский,
Д.А. Набойщиков // Приоритетные направления инновационной деятельности в
промышленности : сборник научных статей V международной научной конференции в 2-х частях, Казань, 30–31 мая 2021 года / НПП МЕДПРОМДЕТАЛЬ
ООО Газпром трансгаз Казань. Том Часть 2. – Казань: Общество с ограниченной ответственностью «КОНВЕРТ», 2021. – С. 29–32.
31. Тлембаев, А.А. Исследование программных средств разработчиков
мобильных приложений / А.А. Тлембаев, Г.Т. Даненова, М.М. Коккоз // Международный журнал прикладных и фундаментальных исследований. – 2018. –
№ 2. – С. 53–58.
130
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
