Тип работы:
Предмет:
Язык работы:


ПРОГРАММНАЯ БИБЛИОТЕКА ДЛЯ ОТЛАДКИ ПОЛЬЗОВАТЕЛЬСКИХ ИНТЕРФЕЙСОВ iOS-ПРИЛОЖЕНИЙ

Работа №54066

Тип работы

Дипломные работы, ВКР

Предмет

информатика

Объем работы67
Год сдачи2017
Стоимость4220 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
64
Не подходит работа?

Узнай цену на написание


ВВЕДЕНИЕ 4
1. КОНЦЕПЦИЯ РЕШЕНИЯ 6
1.1. Инструмент инспектирования 6
1.2. Редактирование UI объектов 7
2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО РЕШЕНИЯ 9
2.1. Инструменты разработки 9
2.2. Шаблон проектирования 10
2.3. Иерархия представления 12
2.4. Обработка касаний 13
3. АНАЛИЗ СРЕДСТВ ИНТРОСПЕКЦИИ 14
3.1. Компилируемые аннотации 14
3.2. Рефлексия Swift 15
3.3. Устройство объектной модели Swift и её совместимость 16
3.4. Objective-C Runtime 17
3.5. Различия Swift и Objective-C 20
4. РЕАЛИЗАЦИЯ 22
4.1. Главный контроллер представления 22
4.2. Перехват и маршрутизация касаний 24
4.3. Работа с координатами
4.4. Обход ограничений в иерархии представлений 26
5. ИСПОЛЬЗОВАНИЕ ПРОГРАММНОЙ БИБЛИОТЕКИ 29
5.1. Меню быстрого доступа 29
5.2. Расширенный редактор 30
5.3. Модификация полей 31
ЗАКЛЮЧЕНИЕ 33
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 34
ПРИЛОЖЕНИЕ 36


Процесс разработки приложений для операционной системы iOS, как и любых других компилируемых платформозависимых продуктов, обладает одним существенным недостатком по сравнению с интерпретируемыми решениями широко применяемыми в веб-разработке. Этим недостатком является потребность пересборки и перезапуска проекта целиком при любом малейшем внесении изменений в коде. Во многих ситуациях, это порождает ощутимые временные затраты на ожидание, например, при отладке внешнего вида графического интерфейса для соответствия дизайну. Ведь нередко даже при наличии так называемого "pixel-perfect" дизайна, что означает "пиксель в пиксель", разработка интерфейсной части мобильного приложения для iOS требует дополнительного времени для подбора параметров.
Временные задержки на перекомпиляцию и перезапуск растут вместе с ростом объемов проекта даже при нормальной работе инкрементальной сборки проекта, то есть, когда только измененные с последней компиляции части кода компилируются и подключаются к остальному, ранее уже скомпилированному.
В качестве решения изложенной выше проблемы в данной дипломной работе предлагается библиотека для модификации свойств графических элементов интерфейса во время выполнения приложения.
Таким образом, целью работы является реализация iOS-библиотеки для инспектирования свойств элементов графического интерфейса, а также модификации этих свойств во время исполнения приложения.
Задачи, выполнение которых необходимо для достижения поставленной цели:
• Определить методы и инструменты для решения поставленной задачи, разработать концепцию программной библиотеки.
• Спроектировать архитектуру для перехвата и самостоятельной маршрутизации событий касания без изменений в работе самого приложения.
• Реализовать iOS-библиотеку для инспектирования свойств элементов пользовательского интерфейса, а также модификации этих свойств во время исполнения приложения.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В результате выполнения данной дипломной работы была достигнута поставленная цель: разработана программная библиотека для отладки пользовательских интерфейсов iOS-приложений. Для успешного достижения данной цели были решены следующие задачи:
• Разработана концепция программного продукта, определены подходы к решению поставленной задачи и инструменты реализации.
• Спроектирована архитектура для перехвата и самостоятельной маршрутизации событий касания без изменений в работе самого приложения.
• Путем обратной разработки были получены имена приватных функций, необходимых для выполнения целей, намеченных на предыдущем этапе.
• Реализована iOS-библиотека для инспектирования свойств элементов пользовательского интерфейса, а также модификации этих свойств во время исполнения приложения.
В текущем виде реализованная библиотека предоставляет функционал интроспекции свойств объектов исключительно через механизмы среды исполнения Objective-C, что отражается в отсутствии доступа к типам данным, добавленным в языке Swift.
В дальнейшем планируется разделение функционала на:
• считывание свойств средствами рефлексии Swift
• модификацию средствами Objective-C Runtime



1. Устройство Cocoa Touch [Электронный ресурс] http://class.ece.iastate.edu/cpre388/Fall2011/lecture/CocoaFundamentals.pdf
2. UIKit [Электронный ресурс]
https://developer.apple .сот/documentation/uikit
3. Шаблон проектирования MVC [Электронный ресурс] https://blog.codinghorror.com/understanding-model-view-controller/
4. Интроспектирование Swift [Электронный ресурс] https: / / speakerdeck.com/jpsim/intro specting-swift
5. Разбор Swift Reflection API - [Электронный ресурс]
https://appventure.me/2015/10/24/swift-reflection-api-what-you-can-do/ -
6. Исследование внутренностей Swift [Электронный ресурс] - http://www.eswick.com/2014/06/08/Inside-Swift/
7. Прояснение чистого Swift ABI, который пока находиться в
разработке [Электронный ресурс]
http s: //github. сот/apple/swift/blob/master/docs/Runtime .md
8. Objective C runtime [Электронный ресурс]
https://developer.apple.com/library/content/documentation/Cocoa/Conceptu al/Obj CRuntimeGuide/Articles/ocrtProperty Introspection. html#//apple_ref/d oc/uid/TP40008048-CH101-SWl
9. Objective C runtime [Электронный ресурс]
https://developer.apple.com/reference/objectivec/1657527-objective_c_runti me
10. Кодирование типов в Objective-C [Электронный ресурс] https://developer.apple.com/library/content/documentation/Cocoa/Conceptu al/Obj CRuntimeGuide/Articles/ocrtTypeEncodings .html
11. Использование рантайма Objective С в Swift [Электронный ресурс] - http://nshipster.com/swift-objc-mntime/
12. Различия в диспетчирезации Swift от Objc [Электронный ресурс] - https://www.raizlabs.com/dev/2016/12/swift-method-dispatch/
13. Описание окон UlWindow [Электронный ресурс] https://developer.apple.com/documentation/uikit/uiwindow
14. Исследование недокументированного API в iOS SDK [Электронный ресурс] - https://habrahabr.rU/post/149849/#Signature
15. Заголовки приватных пакетов iOS SDK [Электронный ресурс] - http s: //github. com/nst/iOS-Runtime-Headers


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ