Главная страница
Навигация по странице:

  • CocoaPods

  • Магистерская диссертация тема работы Разработка мобильного приложения детектирования и распознавания текстов на изображениях для платформы ios


    Скачать 1.55 Mb.
    НазваниеМагистерская диссертация тема работы Разработка мобильного приложения детектирования и распознавания текстов на изображениях для платформы ios
    Дата27.01.2019
    Размер1.55 Mb.
    Формат файлаpdf
    Имя файлаTPU552789.pdf
    ТипДиссертация
    #65474
    страница16 из 23
    1   ...   12   13   14   15   16   17   18   19   ...   23

    Рисунок 11.– шаблон проектирования MVVM.
    MVVM является новейшим из MV(X) паттернов, так что можно ожидать, что он создан с учетом всех проблем, присущих MV(X).
    Очень похож на MVP:

    MVVM рассматривает View Controller как View;
    • в нем нет тесной связи между View и Model.
    Достоинства MVVM:

    распределение: в MVVM View имеет больше обязанностей, чем
    View из MVP. Потому что первая обновляет свое состояние с View
    Model за счет установки биндингов (соединением между пользовательским интерфейсом (User Interface) и бизнес-объектом либо другим провайдером данных), тогда как вторая направляет все события в Presenter и не обновляет себя (это делает Presenter);

    тестируемость: View Model не знает ничего о представлении, это позволяет нам с легкостью тестировать ее;

    простота использования: тот же объем кода, как и для MVP, но в реальном приложении, где вам придется направить все события из
    View в Presenter и обновлять View вручную, MVVM будет гораздо стройнее (если вы используете биндинги).
    4)
    VIPER
    VIPER – это паттерн для разработки приложений под iOS с «Чистой архитектурой». «Чистая архитектура» разделяет логическую структуру приложения на отдельные уровни ответственности. Это упрощает выделение зависимостей (например, вашей базы данных) и проверку взаимодействий на границах между слоями.

    Основными частями VIPER являются:

    View отображает то, что он сообщает Presenter, и возвращает пользовательский ввод обратно в Presenter.

    Interactor содержит бизнес-логику, связанную с данными
    (Entities): например, создание новых экземпляров сущностей или получение их с сервера. Для этих целей вы будете использовать некоторые Сервисы и Менеджеры, которые рассматриваются скорее как внешние зависимости, а не как часть модуля VIPER.

    Presenter содержит бизнес-логику, связанную c UI (но UIKit- независимую), вызывает методы в Interactor.

    Entities – простые объекты данных, не являются слоем доступа к данным, потому что это ответственность слоя Interactor.

    Router несет ответственность за переходы между VIPER- модулями.
    Рисунок 12.– шаблон проектирования VIPER.
    Если сравнить VIPER с паттернами MV(X)-вида, то можно увидеть несколько отличий в распределении обязанностей:
    • логика из Model (взаимодействие данных) смещается в Interactor, а также есть Entities — структуры данных, которые ничего не делают;
    • обязанности представления UI переехали в Presenter, но без возможности изменения данных;


    VIPER является первым шаблоном, который пробует решить проблему навигации, используется Router.
    Достоинства:

    Распределение. Несомненно, VIPER является лучшим в распределении обязанностей.

    Тестируемость. лучше распределение — лучше тестируемость.
    Недостатки:

    Простота использования.
    Очевидно, что первые два преимущества идут за счет стоимости сопровождения. Необходимо будет писать огромное количество интерфейсов для классов с незначительными обязанностями.
    Исходя из выше описанного VIPER является наилучшим вариантом для проектирования приложения под iOS, но есть один существенный недостаток: необходимость писать огромное количество кода. На данный момент у данной проблемы есть решение: использование кодогенератора.
    CocoaPods
    CocoaPods – это мощное и одновременно изящное средство управления зависимостями Cocoa-библиотек, которые разработчики используют в своих iOS и MacOS X проектах. iOS-разработчики часто используют наработки других разработчиков.
    И как правило, библиотеки поставляются с исходным кодом. Обычно добавляется исходный код библиотек в проект, однажды взяв его из репозитория. Однако у такого подхода есть несколько недостатков:
    1)
    Бывает сложно уследить за версиями библиотек и их связями между собой;
    2)
    Нет одного общего места, где можно просмотреть список всех доступных библиотек;
    3)
    Необходимо всегда помнить про то, что исходных код таких библиотек нужно обновлять;

    4)
    Когда скачиваете исходники и добавляете в свой проект часто возникает желание изменить код библиотеки локально, что в будущем создать головную боль при обновлении библиотеки;
    Средства управлением зависимостями CocoaPods поможет решить многие упомянутые проблемы. CocoaPods разберется с зависимостями между библиотеками, которые вы используете, скачает их, создаст и будет поддерживать структуру проекта в надлежащем виде.
    CocoaPods однозначно можно отнести к обязательным средствам в арсенале iOS-разработчика.
    В заключении хочется отметить, что этап выбора языка, среды разработки и архитектуры является очень важным. Так как он определяет, как в дальнейшем будет проходить разработка и с какими сложностями столкнется разработчик. Кроме того, очень важно использовать самые удобные и современные средства для разработки, которые позволят значительно упростить разработку. В следующей главе будет описаны те особенности языка и архитектуры, которые были выбраны для разработки приложения.
    1   ...   12   13   14   15   16   17   18   19   ...   23


    написать администратору сайта