МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РТ ГАПОУ «АРСКИЙ ПЕДАГОГИЧЕСКИЙ КОЛЛЕДЖ им. Г. ТУКАЯ» Зам. директора по УР ГАПОУ «Арский педагогический колледж им. Г. Тукая» ____________________ (МусинаЛ.Н.) (подпись) «____» ____________________2024г. КУРСОВАЯ РАБОТА НАТИВНАЯ И КРОССПЛАТФОРМЕННАЯ МОБИЛЬНАЯРАЗРАБОТКА ПМ.05. Проектирование и разработка информационных систем. Выполнил студент: Руководитель: Габдрахманов Нияз Радикович 3 курса 351 группы ____________ (Марданова.Л.И) Специальность09.02.07 Информационные системы и программирование Оценка____________________ Арск, 2024 год 2 СОДЕРЖАНИЕ ВВЕДЕНИЕ .................................................................................................................. 3 ГЛАВА I. НАТИВНАЯ И КРОССПЛАТФОРМЕННАЯ МОБИЛЬНАЯ РАЗРАБОТКА.............................................................................................................. 5 1.1. Основные понятия нативной и кроссплатформенной разработки ............ 5 1.2. Нативная разработка, преимущества и недостатки .................................... 6 1.3. Примеры популярных нативных платформ ................................................. 9 1.4. Кроссплатформенная разработка, преимущества и недостатки .............. 14 1.5. Примеры популярных кроссплатформенных фреймворков .................... 17 1.6. Отличия нативной и кроссплатформенной разработки............................ 29 ЗАКЛЮЧЕНИЕ ......................................................................................................... 33 СПИСОК ЛИТЕРАТУРЫ......................................................................................... 35 3 ВВЕДЕНИЕ Актуальность. Мобильная разработка является одним из самых динамично развивающихся сегментов информационных появлением смартфонов планшетов мобильные и технологий. приложения С стали неотъемлемой частью нашей повседневной жизни. Благодаря им, мы можем общаться, работать, развлекаться и получать доступ к информации в любое время и в любом месте. Одним из ключевых вопросов, с которым сталкиваются разработчики мобильных приложений, является выбор между нативной и кроссплатформенной разработкой. Нативная разработка предполагает создание приложений, специфичных для определенной платформы, такой как iOS или Android, с использованием языков программирования и инструментов, разработчиками платформы. Кроссплатформенная разработка, в свою очередь, позволяет создавать приложения, которые могут работать на разных платформах с помощью одного и того же кода. Сегодня все больше людей предпочитают использовать мобильные устройства для доступа к информации и выполнения различных задач. Это создает огромный потенциал для разработчиков мобильных приложений. Однако, перед ними стоит вопрос выбора подхода к разработке – нативный или кроссплатформенный. Цель: выявить возможности и достижения нативной и кроссплатформенной мобильной разработки. Задачи: 1. Раскрыть основные принципы нативной мобильной разработки. Рассмотреть особенности разработки приложений для различных платформ, таких как iOS и Android. 2. Освоить основные принципы кроссплатформенной мобильной разработки. Рассмотреть различные фреймворки и инструменты, которые 4 позволяют создавать приложения, работающие на нескольких платформах. 3. Сравнить преимущества и недостатки нативной и кроссплатформенной разработки. Оценить их эффективность, производительность, доступность и возможности интеграции с другими системами. 4. Проанализировать достижения в области мобильной разработки. Рассмотреть успешные проекты и инновационные решения, которые были реализованы с использованием нативной или кроссплатформенной разработки. Объектом является нативная и кроссплатформенная мобильная разработка Предмет: процесс разработки мобильных приложений Практическая значимость: выбор между нативной и кроссплатформенной мобильной разработкой предстанет перед студентами на дисциплинах «Разработка кода информационных систем» и «Проектирование и разработка веб-приложений» в процессе создания мобильных приложений. Нативная разработка обеспечивает улучшенное качество, высокую производительность и лучшее взаимодействие с функциями операционной системы, что может быть критически важно для разработки высокотехнологичных приложений. Однако она обычно требует больше времени и ресурсов для создания и поддержки приложений для каждой платформы (iOS, Android). С другой стороны, кроссплатформенная разработка позволяет сократить время и затраты благодаря возможности создавать приложения, которые могут работать на различных платформах. Однако она может столкнуться с ограничениями в производительности, стабильности и требовать дополнительных усилий для адаптации к уникальным особенностям каждой платформы. Структура работы: работа состоит из введения, одной главы, шесть параграфов, заключения, списка литературы. 5 ГЛАВА I. НАТИВНАЯ И КРОССПЛАТФОРМЕННАЯ МОБИЛЬНАЯ РАЗРАБОТКА 1.1. Основные понятия нативной и кроссплатформенной разработки Нативная разработка мобильных приложений – это процесс создания приложений, которые разрабатываются специально для определенной операционной системы (iOS, Android, Windows Phone). В данном случае, разработчики используют нативные языки программирования и инструменты разработки, предоставляемые операционной системой. Нативные приложения имеют полный доступ ко всем функциям устройства и могут обеспечить наилучшую производительность и оптимизацию для конкретной платформы. Кроссплатформенная разработка мобильных приложений – это процесс создания приложений, которые могут работать на разных операционных системах, используя общий код. Разработчики используют кроссплатформенные фреймворки и инструменты, которые позволяют им создавать приложения, которые могут быть запущены на разных платформах, таких как iOS, Android и Windows Phone. Кроссплатформенные приложения обычно разрабатываются на языках программирования, таких как JavaScript, HTML и CSS, и используют фреймворки, такие как ReactNative, Xamarin или Flutter. Оба подхода имеют свои преимущества и недостатки, и выбор между нативной и кроссплатформенной разработкой зависит от различных факторов, таких как требования проекта, бюджет, сроки и опыт разработчиков. Основные отличия между нативной и кроссплатформенной разработкой: 1. Языки программирования и инструменты: Нативная разработка требует знания языков программирования, таких как Swift или Objective-C для iOS и 6 Java или Kotlin для Android. Кроссплатформенная разработка, с другой стороны, позволяет использовать общие языки программирования, такие как JavaScript или C#, и фреймворки, которые позволяют переиспользовать код на разных платформах. 2. Производительность и оптимизация: Нативные приложения обычно имеют лучшую производительность и оптимизацию, так как они полностью адаптированы к конкретной платформе. Кроссплатформенные приложения могут иметь небольшие задержки или ограничения производительности из-за абстракции между кодом и платформой. 3. Доступ к функциональности устройства: Нативные приложения имеют полный доступ ко всем функциям и возможностям устройства, таким как камера, геолокация, датчики и т.д. Кроссплатформенные приложения могут иметь ограниченный доступ к некоторым функциям, и требуется дополнительная настройка для работы с ними. 4. Скорость разработки и обслуживания: Кроссплатформенная разработка обычно позволяет ускорить процесс разработки, так как код может быть переиспользован на разных платформах. Однако, нативная разработка может быть более эффективной в долгосрочной перспективе, так как она позволяет более глубокую интеграцию с платформой и более быстрое обслуживание и обновление приложения. В итоге, выбор между нативной и кроссплатформенной разработкой зависит от конкретных потребностей проекта, бюджета, сроков и опыта разработчиков. Оба подхода имеют свои преимущества и недостатки, и правильный выбор должен быть основан на анализе этих факторов. 1.2. Нативная разработка, преимущества и недостатки Нативная разработка – это процесс создания приложений, которые 7 разрабатываются специально для определенной операционной системы или платформы. В данном случае, речь идет о мобильной разработке, где нативные приложения создаются для конкретных мобильных платформ, таких как iOS или Android, с использованием нативных языков программирования и инструментов разработки, предоставляемых производителями операционных систем. Основным преимуществом нативной разработки является полный доступ к функциональным возможностям и инструментам, предоставляемым операционной системой. Разработчики имеют полный контроль над внешним видом и поведением приложения, а также могут использовать все доступные возможности устройства, такие как камера, геолокация, сенсоры и многое другое. Благодаря этому, нативные приложения обеспечивают высокую производительность и оптимальное использование ресурсов устройства. Однако, нативная разработка имеет и некоторые ограничения. Во-первых, для каждой платформы необходимо создавать отдельное приложение, что требует дополнительных затрат времени и ресурсов. Во-вторых, разработка нативных приложений требует знания различных языков программирования и инструментов, что может быть сложным для некоторых разработчиков. Тем не менее, нативная разработка остается наиболее предпочтительным подходом, особенно когда требуется максимальная производительность, доступ к аппаратным возможностям устройства и наилучшее взаимодействие с операционной системой. Преимущества нативной разработки: 1. Высокая производительность: Приложения, разработанные нативно,работают непосредственно на операционной системе устройства, что обеспечивает оптимальную производительность и быстродействие. 2. Полный доступ к функциональности устройства: Разработчики имеют полный контроль над возможностями устройства, такими как камера, геолокация, контакты и другие, что позволяет создавать более функциональные 8 приложения. 3. Более лучшая интеграция с операционной системой: Нативные приложения лучше интегрируются с интерфейсом и функциями операционной системы, что создает более гармоничный пользовательский опыт. 4. Большая поддержка инструментов разработки: Для нативной разработки существует широкий выбор инструментов и сред разработки, таких как Xcode для iOS и AndroidStudio для Android, что облегчает создание и отладку приложений. Недостатки нативной разработки: 1. Большие затраты времени и ресурсов: Разработка нативных приложений требует отдельного кодирования для каждой платформы (iOS и Android), что увеличивает время и затраты на разработку. 2. Ограниченная переносимость: Приложения, разработанные нативно, не могут быть просто перенесены на другую платформу, что ограничивает их аудиторию и требует дополнительных усилий для поддержки нескольких платформ. 3. Сложность поддержки и обновлений: В случае изменений в операционной системе или появления новых устройств, требуется обновление приложения для каждой платформы отдельно, что может быть трудоемким и затратным. 4. Ограниченные возможности мультиплатформенной разработки: При использовании нативной разработки, нельзя полностью использовать преимущества мультиплатформенных инструментов и фреймворков. В итоге, нативная разработка мобильных приложений обеспечивает высокую производительность, полный доступ к функциональности устройства и лучшую интеграцию с операционной системой. Однако, она требует больших затрат времени и ресурсов, ограничена переносимостью и может быть сложной в поддержке и обновлении. Решение о выборе нативной разработки зависит от конкретных требований проекта и 9 бюджета. 1.3. Примеры популярных нативных платформ iOS (iPhoneOperatingSystem) – это мобильная операционная система, разработанная и выпускаемая компанией Apple Inc. Она была впервые представлена в 2007 году с выпуском первого iPhone. iOS является эксклюзивной операционной системой для устройств Apple, таких как iPhone, iPad и iPodTouch. Преимущества: 1. Высокая производительность:Нативные приложения для iOS обычно работают более быстро и плавно, чем кроссплатформенные или вебприложения. 2. Полный доступ к функциональности устройства: Разработчики могут использовать все возможности и API, предоставляемые iOS, для создания более мощных и функциональных приложений. 3. Лучшая интеграция с экосистемой Apple: Нативные приложения лучше интегрируются с другими устройствами и сервисами Apple, такими как iCloud, AppleWatch и Apple Pay. 4. Более безопасные и надежные: Apple строго контролирует процесс размещения приложений в AppStore, что обеспечивает более высокий уровень безопасности для пользователей. Недостатки: 1. Большие затраты на разработку: Разработка нативных приложений для iOS может быть более затратной и времязатратной, чем создание кроссплатформенных приложений. 2. Ограниченность аудитории: Приложения, разработанные только для iOS, ограничены аудиторией пользователей устройств Apple. 10 3. Строгие правила и ограничения: Apple имеет строгие правила и ограничения для размещения приложений в AppStore, что может быть ограничивающим для разработчиков. iOS предлагает разработчикам широкий спектр инструментов и технологий для создания инновационных и удобных приложений для пользователей устройств Apple. Нативная разработка под iOS позволяет создавать приложения, которые максимально адаптированы к устройствам и операционной системе Apple, обеспечивая высокую производительность, безопасность и удобство использования. В целом, нативная разработка под iOS остается популярным выбором для многих разработчиков, стремящихся создать качественные и инновационные мобильные приложения для пользователей устройств Apple. Android(Google): Нативная разработка для Android выполняется с использованием языка программирования Java или Kotlin и инструментов разработки, таких как Android Studio. Результатом являются приложения, которые могут быть запущены только на устройствах под управлением Android. Данная разработка была создана в 2003 году Энди Рубином, Ричардом Майнером, Ник Сирсом и Крисом Уайтсоном. В 2005 году Google купила компанию Android Inc. и начала развивать мобильную платформу Преимущества Android: 1. Полноценный доступ к API: Разработчики могут использовать все возможности операционной системы и устройства. 2. Лучшая производительность: Нативные приложения обычно работают быстрее и более эффективно. 3. Более глубокая интеграция: Возможность взаимодействовать с системой и другими приложениями. 4. Большее количество инструментов: Google предоставляет различные инструменты и ресурсы для разработчиков. Недостатки: 11 1. Больше затрат: Необходимо создавать отдельные версии приложений для разных платформ. 2. Сложнее поддерживать: Требуется больше усилий и времени на разработку и обслуживание приложения для каждой платформы. 3. Ограниченная аудитория: Платформа Android имеет большое разнообразие устройств с различными характеристиками, что может усложнить разработку приложения. Особенности нативной разработки под Android: - Использование языков программирования Java и Kotlin для создания приложений. - Возможность доступа к разнообразным библиотекам и инструментам для разработки. - Прямой доступ к сервисам Google и устройственным функциям. Цель использования нативной разработки под Android: Нативная разработка обеспечивает более высокую производительность и глубокую интеграцию с устройством и операционной системой Android. Она наиболее подходит для создания приложений, которые требуют максимальной производительности, доступа к сложным системным функциям и лучшей оптимизации под конкретное устройство. Windows Phone (Microsoft): Нативная разработка для Windows Phone осуществляется с использованием языка программирования C# и инструментов разработки, таких как Visual Studio.Данная разработка была представлена в 2010 году. Результатом являются приложения, которые могут быть запущены только на устройствах под управлением Windows Phone. Нативная разработка: - Для разработки приложений под Windows Phone использовалась среда разработки Microsoft Visual Studio и языки программирования C или Visual Basic. - Windows Phone SDK предоставлял разработчикам все необходимые 12 инструменты для создания качественных приложений, включая симулятор устройства, отладчик и множество API для взаимодействия с системой. Преимущества: 1. Интеграция с Windows: Благодаря тесной интеграции с операционной системой Windows, Windows Phone обладал хорошей совместимостью с ПК и другими устройствами Microsoft. 2. Безопасность и надежность: Windows Phone славился своей безопасностью и защитой данных благодаря использованию технологий Microsoft. 3. Живые плитки и удобный интерфейс: Интерфейс Windows Phone с живыми плитками был удобен и интуитивно понятен. 4. Низкое потребление ресурсов: Windows Phone был оптимизирован для работы на различных устройствах с невысокими техническими характеристиками. Недостатки: 1. Ограниченный выбор приложений: Одним из основных недостатков был относительно небольшой выбор приложений по сравнению с Android и iOS. 2. Поддержка и обновления: Microsoft прекратила поддержку Windows Phone в 2017 году, что означало отсутствие новых функций и обновлений. 3. Низкая доля рынка: Windows Phone так и не смог получить значительную долю рынка из-за сильной конкуренции с другими операционными системами. Для чего нужен Windows Phone: Windows Phone предназначен для использования на мобильных устройствах, таких как смартфоны и планшеты, и обеспечивает пользователям доступ к приложениям, интернету, электронной почте и другим функциям. Windows Phone, хоть и больше не разрабатывается, и поддерживается Microsoft, оставил след в истории мобильных операционных систем как 13 попытка внести свою уникальность на рынок смартфонов, хотя его популярность оказалась недолгой. BlackBerry– это бренд мобильных устройств и операционных систем, разработанных компанией BlackBerry Limited. Данная разработка выполняется с использованием языка программирования Java или C++ и инструментов разработки, таких как BlackBerry SDK. BlackBerry начал свою деятельность в 1999 году и стал известен своими устройствами с физической клавиатурой и высоким уровнем безопасности. Наиболее известной операционной системой BlackBerry была BlackBerry OS. Особенности: - Для создания приложений для устройств BlackBerry была доступна нативная разработка с использованием специальных инструментов разработки, таких как BlackBerry Java Development Environment (JDE) и BlackBerry 10 SDK. - Разработчики могли использовать языки программирования, такие как Java, C++ и HTML5, для создания приложений под платформу BlackBerry. Преимущества BlackBerry: 1. Безопасность: BlackBerry славился своими высокими стандартами безопасности, особенно популярен среди предприятий и правительственных организаций. 2. Физическая клавиатура: Устройства BlackBerry были известны своими удобными физическими клавиатурами, что делало их популярными среди пользователей, предпочитающих ввод текста с помощью клавиш. 3. Удобство в использовании: BlackBerry предлагал удобный интерфейс, подходящий для делового использования, с возможностью организации рабочих процессов. Недостатки BlackBerry: 1. Ограниченный выбор приложений: Одним из основных недостатков был ограниченный выбор приложений по сравнению операционными системами, такими как Android и iOS. с другими 14 2. Снижение популярности: С появлением конкурентов и переходом на Android, популярность устройств BlackBerry начала снижаться. 3. Технические характеристики: Некоторые модели BlackBerry отставали по техническим характеристикам от конкурентов. Для чего нужен BlackBerry: -BlackBerry был широко использован в корпоративной среде благодаря своей высокой безопасности, возможностям управления устройствами и удобству в деловом общении. -BlackBerry также были популярны среди пользователей, которым требовался надежный и безопасный смартфон для делового использования. Хотя популярность устройств BlackBerry снизилась в последние годы изза конкуренции с другими операционными системами, их влияние на мобильную индустрию и акцент на безопасность и деловые потребности остаются важными в истории мобильных устройств. Каждая из этих платформ имеет свои особенности и требует знания специфических инструментов и языков программирования. Разработчики, выбирающие нативную разработку, должны учитывать целевую аудиторию и требования проекта, чтобы выбрать наиболее подходящую платформу для своего приложения. 1.4. Кроссплатформенная разработка, преимущества и недостатки Кроссплатформенная разработка –это подход к созданию программного обеспечения, который позволяет разрабатывать приложения, которые могут работать на разных операционных системах и платформах без необходимости написания отдельного кода для каждой из них. Основная идея кроссплатформенной разработки заключается в том, чтобы максимально использовать общий код и ресурсы, чтобы приложения могли быть запущены 15 на различных устройствах и платформах. В кроссплатформенной разработке разработчик использует фреймворки и инструменты, которые позволяют создавать приложения, которые могут быть скомпилированы и запущены на разных платформах, таких как iOS, Android, Windows и другие. Это позволяет сэкономить время и ресурсы, которые обычно требуются для разработки отдельных приложений для каждой платформы. Одним из основных преимуществ кроссплатформенной разработки является повышение эффективности разработки. Разработчики могут использовать общий код и инструменты для создания приложений для разных платформ, что сокращает время и усилия, необходимые для разработки и поддержки приложений на разных платформах. Это также позволяет легко вносить изменения и обновления в приложения, так как они применяются автоматически на всех платформах. Кроссплатформенная разработка также обеспечивает более широкую аудиторию для приложений. Поскольку приложения могут быть запущены на разных платформах, они доступны для большего числа пользователей. Это позволяет разработчикам достичь большей охват аудитории и увеличить потенциальное количество загрузок и пользователей. Преимущества кроссплатформенной разработки: 1. Повышенная эффективность разработки: Кроссплатформенные фреймворки и инструменты позволяют разработчикам создавать приложения для нескольких платформ, используя общий код. Это сокращает время и усилия, необходимые для разработки и поддержки приложений на разных платформах. 2. Снижение затрат: Кроссплатформенная разработка позволяет сократить затраты на разработку, так как не требуется создание и поддержка отдельного кода для каждой платформы. Это особенно полезно для небольших и средних компаний с ограниченным бюджетом. 3. Унифицированный пользовательский интерфейс: Кроссплатформенные 16 фреймворки обеспечивают пользовательского возможность интерфейса на разных создания платформах. единообразного Это позволяет обеспечить согласованность внешнего вида и поведения приложения на всех устройствах. 4. Широкая аудитория: Кроссплатформенные приложения могут быть запущены на различных операционных системах, таких как Android, iOS, Windows и других. Это позволяет достичь широкой аудитории пользователей и увеличить популярность приложения. Недостатки кроссплатформенной разработки: 1. Ограниченные возможности: Кроссплатформенные фреймворки могут иметь ограниченные возможности по сравнению с нативной разработкой. Некоторые функции и возможности платформы могут быть недоступны или ограничены в кроссплатформенной среде. 2. Производительность: Использование кроссплатформенных фреймворков может привести к некоторому снижению производительности приложения по сравнению с нативным приложением, особенно при работе с графикой или вычислительно интенсивными задачами. 3. Зависимость разработка часто от требует сторонних фреймворков: использования Кроссплатформенная сторонних фреймворков и инструментов. Это может привести к зависимости от их обновлений и поддержки, что может быть проблематично в долгосрочной перспективе. 4. Сложность отладки и тестирования: Кроссплатформенные приложения могут быть сложнее отлаживать и тестировать, так как проблемы могут возникать на разных платформах и требовать отдельного подхода к исправлению. Однако кроссплатформенная разработка предлагает множество преимуществ, таких как повышенная эффективность и снижение затрат, но также имеет свои ограничения и недостатки, которые необходимо учитывать при выборе подхода к разработке мобильных приложений. 17 1.5. Примеры популярных кроссплатформенных фреймворков ReactNative: Это фреймворк, разработанный компанией Facebook. Он позволяет создавать мобильные приложения, используя JavaScript и React, популярную библиотеку для создания пользовательских интерфейсов. ReactNative позволяет разработчикам создавать приложения, работающие на iOS и Android, используя общий код. ReactNative разработан на основе React.js, но это не новая версия React, а отдельный продукт со своими целями. Классический React нужен для веб-разработки, ReactNative – для мобильной. Особенности ReactNative Структура интерфейса из React. React JS, на основе которого создан ReactNative, используется для создания пользовательских интерфейсов. Поэтому разрабатывать на ReactNative интерфейс приложения довольно удобно – у него логичная структура компонентов и понятный код. Библиотеки и модули. У ReactNative большой набор библиотек и модулей под разные задачи для iOS, и для Android. Некоторые части кода даже написаны на нативных языках этих ОС. А при необходимости можно создать собственный модуль. CodePush. Интересная фишка ReactNative– возможность быстрого обновления приложения. Разработчик может изменить код программы у пользователей напрямую и не загружать его в магазин приложений заново. Flux-архитектура. Flux – это подход к построению архитектуры, который основан на однонаправленных потоках. Для него существуют наборы модулей, которые помогают эту архитектуру реализовать. Одноименный программный модуль Flux – решение от Facebook, разработчики которого и придумали ReactNative. Также используют Redux – еще одну реализацию архитектуры, которую 18 создало сообщество энтузиастов. Преимущества фреймворка Кроссплатформенность и повторное использование кода. Главный плюс ReactNative – благодаря нему можно не писать код одного и того же приложения с нуля. Переиспользуемость кода в отдельных проектах может составлять до 90%: это значит, что 90% кода из Android-проекта можно без особых изменений перенести в iOS-версию приложения. Скорость и простота разработки. Благодаря тому, что код можно использовать повторно, создать приложение с помощью ReactNative можно довольно быстро. А еще можно легко перенести его на другую мобильную ОС. Быстрое обновление. Благодаря функции CodePush приложения можно обновлять без промежуточного этапа в виде загрузки обновлений в магазин. Пользователь устанавливает приложение на свой смартфон, а когда выходит обновление, приложение качает и устанавливает его само–ему для этого не нужно связываться с Google Play или AppStore. Для разработчика это означает меньше сложностей с загрузкой обновлений в маркеты и быструю доставку их до пользователя. Экономическая эффективность. Разрабатывать приложения с помощью ReactNative дешевле для бизнеса. За то же время и тот же бюджет компания фактически получает две версии приложения для разных систем. А при нативной разработке – только одну, а чтобы создать вторую, придется переписывать всё с нуля. Больший охват. Можно одновременно охватить аудиторию iOS и Android, то есть разные сегменты. А если приложение увидит больше людей, соответственно, у его владельца будет больше клиентов. Низкий порог входа. 19 JavaScript, на котором пишутся проекты ReactNative, считается довольно простым в изучении языком по сравнению с тем же Java или Swift. Он подходит для начинающих разработчиков. Понадобится изучить его и фреймворки React и ReactNative, и всё. В отличие от других кроссплатформенных решений, основанных на веб-технологиях, тут не нужны будут даже знания HTML и CSS. Недостатки ReactNative Больший размер и меньшая производительность. Если сравнить приложение на ReactNative с полностью нативным, первое будет больше весить. Так происходит потому, что для работы приложения нужна «прослойка», которая будет соединять JS-код с системными потоками. Быстродействие у ReactNative-приложений тоже ниже, чем у нативных. Отсутствие внешнего единообразия. ReactNative использует нативные компоненты интерфейса: значки, слайдеры, кнопки и шрифты, которые применяются в самой системе. Но эти элементы разные для каждой ОС. Поэтому без кастомных стилей приложение может выглядеть абсолютно по-разному в iOS и Android. Приходится прилагать дополнительные усилия, чтобы графический интерфейс в разных версиях был похожим. Меньшая безопасность. В ReactNative приложение «собирается» по ходу выполнения – это называют JIT-компиляцией. Других режимов нет. Этот подход считается менее безопасным, чем AOT-компиляция–когда всё приложение «собирается» разом. Из-за JIT-компиляции в теории возможна ситуация, когда пользователь получает несанкционированный доступ к исходному коду приложения. Возможная потребность в нативном разработчике. Иногда бывает нужно включить в кодовую базу ReactNative код на других языках – в частности, нативных для какой-то системы. Например, в проекте вполне может быть Java-модуль, хотя само приложение написано на JS. Для таких случаев нужно или самому знать другие языки, или иметь 20 возможность привлечь к проекту еще одного разработчика. Flutter–это открытый фреймворк разработки мобильных приложений, который был создан компанией Google. Он был анонсирован в 2015 году и первоначально выпущен в 2017. Основан на языке программирования Dart, который также разработан Google. Преимущества Flutter: 1. Гораздо более удобная документация по сравнению с Android и особенно iOS, разработчики Flutter также выпускают еженедельные видео с объяснениями деталей технологии на своём официальном канале. 2. Общий код для разных платформ. Flutter позволяет разработчикам использовать один и тот же код для создания приложений для разных платформ, снижая время и стоимость разработки. 3. HotReload. Эта функция позволяет мгновенно видеть результаты изменений в коде, ускоряя процесс разработки. 4. Фреймворки внутри фреймворка. Команда Flutter развивает направление мобильных игр и предлагает воспользоваться CasualGamesToolkit, в котором есть необходимые инструменты для написания собственных игр на 2D движке Flame. Также есть готовый набор решений для написания новостных приложений FlutterNewsToolkit. В нем содержатся наиболее популярные компоненты для создания newsapp: онбординг, создание учетной записи, лента контента и страницы контента, настройки монетизации, поиск и т.д. 5. Экосистема библиотек. Это наличие единого сервиса, на котором хостятся сторонние библиотеки. Они используются далеко не только для работы с нативным кодом платформ, но и для сложных анимаций, облегченной работы с сетью, навигации и полезными инструментами. Любой желающий может создать свой пакет и разметить его на pub.dev. 6. Высокая производительность: Благодаря использованию собственного графического движка Skia, приложения на Flutter работают плавно и быстро. 21 7. Красивый интерфейс: Flutter предоставляет обширные возможности для создания красивого и анимированного пользовательского интерфейса. Недостатки Flutter: 1. Приложения Flutter могут иметь больший размер файла по сравнению с нативными приложениями. Можно использовать стандартные средства для сжатия ресурсов и ассетов. 2. Ограниченный возможность обращения доступ к к нативным нативным функциям: функциям Несмотря платформ, на некоторые продвинутые функции могут требовать дополнительных настроек. 3. Использование Dart: Хотя Dart – мощный язык программирования, некоторым разработчикам может потребоваться время для его изучения. 4. Иногда в iOS или Android может появиться новая функциональность и приходится ждать, пока её завезут во Flutter. 5. Невозможность разработки мобильных игр. Flutter не оптимизирован для 3D игр, но есть возможность создавать 2D игры, используя движок Flame 6. Ограниченная поддержка некоторых функций устройств. Некоторые встроенные функции устройств могут быть недоступны или требуют дополнительной работы для интеграции. Из-за того, что Flutter не использует активно API платформы, а просто отрисовывает самостоятельно нужные элементы, могут возникнуть проблемы с доступом к функциям устройства, таким как камера, уведомления, микрофон, GPS, шифрованная память и т.д. Особенности Flutter: 1. Виджеты: В Flutter почти все является виджетом, что обеспечивает гибкость в создании пользовательского интерфейса. 2. Горячая перезагрузка: Позволяет мгновенно видеть изменения в коде на устройстве или симуляторе без перезапуска приложения. 3. Material Design и Cupertino: Flutter предоставляет набор виджетов для создания приложений в стиле Material Design или в стиле iOS. Но одной из особенностей ключевых Flutter является декларативный 22 стиль описания UI элементов: - Декларативное программирование. Основное внимание уделяется вопросу “что” в коде. Вы описываете то, что хотите получить, а система (фреймворк или библиотека) занимается деталями того, как это реализовать. Этот стиль абстрагирует процесс управления UI, и разработчику не нужно описывать шаги для достижения конечного результата. - Императивное программирование. Концентрируется на “как”. Процесс состоит из написания кода, описывающего шаги для достижения цели. Разработчик должен описать каждый шаг, который должна выполнить программа, что дает ему больше возможностей для контроля, но также увеличивает сложность Xamarin– это кроссплатформенный фреймворк для разработки мобильных приложений, который позволяет создавать приложения под Android, iOS и Windows, используя язык программирования C#. Xamarin был основан в 2011 году независимой компанией Xamarin Inc., которая впоследствии была приобретена Microsoft в 2016 году. Фреймворк состоит из нескольких основных частей: - Xamarin. IOS – библиотека классов для C#, предоставляющая разработчику доступ к iOS SDK; - Xamarin. Android – библиотека классов для C#, предоставляющая разработчику доступ к Android SDK; - Компиляторы для iOS и Android; -IDE Xamarin Studio; - Плагиндля Visual Studio. Xamarin сочетает в себе возможности собственных платформ с добавлением возможностей, к которым относятся: 1. Полная привязка для базовых пакетов SDK. Xamarin содержит привязки практически для всех базовых пакетов SDK в iOS и Android. Кроме того, эти привязки являются строго типизированными, что означает, что они 23 удобны в навигации и использовании, а также позволяют осуществлять качественную проверку типов во время компиляции и разработки. Строго типизированные привязки, позволяющие сократить количество ошибок времени выполнения и повысить качество приложений. 2. Взаимодействие Objective-C, Java, C и C++ . Xamarin позволяет напрямую вызывать библиотеки Objective-C, Java, C и C++ для более эффективного использования разнообразного стороннего кода. Эта возможность позволяет использовать существующие библиотеки iOS и Android, написанные на Objective-C, Java или C/C++. Кроме того, Xamarin предлагает проекты привязки для привязки собственных библиотек Objective-C и Java с помощью декларативного синтаксиса. 3. на Современные конструкции языка. Приложения Xamarin написаны современном языке C#, который характеризуется значительными улучшениями по сравнению с Objective-C и Java. Сюда входят динамические функции языка, функциональные конструкции, например, лямбда-выражения, LINQ, функции параллельного программирования, универсальные шаблоны и т. д. 4. используют Надежная библиотека базовых классов (BCL). Приложения Xamarin библиотеку BCL .NET, большую коллекцию классов со всеобъемлющими и упрощенными возможностями, включая поддержку XML, баз данных, сериализации, операций ввода-вывода, строк, сетевых функций и т. д. Существующий код C# можно скомпилировать для использования в приложениях, обеспечивая доступ к тысячам библиотек, которые содержат дополнительные функции, выходящие за рамки BCL. 5. Современная интегрированная среда разработки (IDE) Xamarin использует современную среду Visual Studio, в которой реализованы такие возможности, как автозавершение кода, более совершенная система управления проектами и решениями, исчерпывающая библиотека шаблонов проектов, интегрированная система управления версиями и многое другое. 24 6. Поддержка кроссплатформенных мобильных приложений. Xamarin предлагает усовершенствованную кроссплатформенную поддержку для трех основных платформ – iOS, Android и Windows. Объем общего кода в созданных приложениях может достигать 90 %, а библиотека Xamarin. Essentials предлагает универсальный API-интерфейс для доступа к общим ресурсам на всех трех платформах. Это позволяет значительно сократить затраты на разработку и время выпуска продуктов на рынок для разработчиков, создающих мобильные приложения. Преимущества Xamarin: 1.Кроссплатформенность: Xamarin позволяет разрабатывать приложения для разных платформ, используя общий код на C#, что упрощает и ускоряет процесс разработки. 2. Интеграция с Visual Studio: Xamarin интегрируется с популярной средой разработки Visual Studio, что облегчает работу разработчиков. 3.Нативные возможности: Xamarin предоставляет доступ к нативным API платформ, что позволяет создавать приложения с высокой производительностью и функциональностью. 4. Общий код: Xamarin позволяет использовать до 90% общего кода для разработки приложений под разные платформы, что уменьшает время и затраты на разработку. Недостатки Xamarin: 1. Сложность изучения: Для работы с Xamarin необходимо знание языка программирования C#, что может быть сложно для начинающих разработчиков. 2. Ограниченность функционала: Несмотря на доступ к нативным API, некоторые функции могут быть ограничены или требовать дополнительной настройки. Xamarin используется для создания кроссплатформенных мобильных приложений, что позволяет компаниям и разработчикам создавать приложения 25 под разные платформы с минимальными затратами времени и ресурсов. Xamarin также позволяет использовать уже существующий код на C# для разработки мобильных приложений, что упрощает процесс разработки и поддержки приложений. Ionic – то популярный фреймворк для разработки гибридных мобильных приложений. Ionic был создан в 2013 году Максом Линчем и Адамом Брадли из компании DriftyCo. Фреймворк использует веб-технологии, такие как HTML, CSS и JavaScript, для создания приложений, которые могут быть запущены на различных платформах. Ionic предоставляет множество готовых компонентов и инструментов для создания кроссплатформенных приложений.Концепциябыла разработана для упрощения создания красивых и высокопроизводительных мобильных приложений с использованием веб-технологий Особенности Ionic: 1. Кроссплатформенность: Ionic позволяет создавать приложения, которые работают как на iOS, так и на Android. Он использует веб-технологии, такие как HTML, CSS и JavaScript, что делает его удобным для разработчиков, знакомых с этими языками. 2. Компоненты пользовательского интерфейса: Ionic предоставляет большое количество готовых компонентов пользовательского интерфейса, таких как кнопки, формы, меню и т. д. Это упрощает создание красивого и функционального дизайна приложения. 3. Поддержка Cordova и Capacitor: Ionic интегрируется с Cordova и Capacitor, что позволяет использовать устройственные API и создавать нативные функции для мобильных устройств. 4. его Использование Angular: Ionic включает в себя Angular, что делает мощным инструментом для разработки мобильных приложений, основанных на этом фреймворке. 5. Открытый исходный код: Ionic является open-source проектом, что позволяет разработчикам вносить свой вклад в улучшение фреймворка и 26 создавать собственные расширения. 6. С вёрсткой интерфейса приложения справится практически любой квалифицированный веб-мастер, поскольку он состоит из обычного HTML. 7. Разработка происходит быстрее благодаря функции LiveReload, позволяющей специалисту видеть результаты своих трудов практически мгновенно. Преимущества Ionic: 1. Кроссплатформенность: Основное преимущество Ionic– возможность создавать приложения, которые могут работать на разных платформах без необходимости писать отдельный код для каждой из них. 2. Использование веб-технологий: Разработчики могут использовать знания HTML, CSS и JavaScript для создания мобильных приложений. 3. Открытый исходный код: Ionic является open-source проектом с активным сообществом разработчиков. 4. Компоненты и UI: В Ionic представлены множество готовых компонентов и стилей для быстрой и красивой разработки пользовательского интерфейса. 5. Легкий и простой в использовании: Фреймворк прост в освоении даже для новичков. Недостатки Ionic: 1. Производительность: Использование веб-технологий может привести к некоторым ограничениям в производительности по сравнению с нативными приложениями. 2. Ограничения доступа к API: Некоторые возможности устройства могут быть сложнее достичь при использовании Ionic из-за ограничений доступа к нативным API. 3. Зависимость от сторонних инструментов: Для полноценной разработки мобильных приложений на Ionic может дополнительных инструментов и плагинов. потребоваться использование 27 PhoneGap (ApacheCordova) – это фреймворк с открытым исходным кодом для разработки кроссплатформенных мобильных приложений, фреймворк был создан в 2009 году компанией Nitobi и был приобретен AdobeSystems в 2011 году. Он позволяет разработчикам создавать приложения, используя вебтехнологии, такие как HTML, CSS и JavaScript, и запускать их на различных мобильных платформах, включая iOS, Android, Windows Phone и другие. Преимущества Cordova: 1. Кроссплатформенность: Cordova позволяет разработчикам создавать мобильные приложения, которые могут работать на различных платформах без необходимости писать отдельный код для каждой из них. 2. Использование веб-технологий: Разработчики могут использовать знания HTML, CSS и JavaScript для создания мобильных приложений, что упрощает разработку и снижает порог входа для новичков. 3. Открытый исходный код: Cordova является проектом с открытым исходным кодом, что позволяет разработчикам вносить свои правки и улучшения. 4. Поддержка плагинов: Cordova обладает обширной библиотекой плагинов, которые позволяют расширять функциональность приложений и взаимодействовать с нативными API устройств. 5. Сообщество и документация: Существует активное сообщество разработчиков Cordova, а также обширная документация, что облегчает процесс разработки. НедостаткиCordova: 1. Производительность: Использование веб-технологий может привести к некоторым ограничениям в производительности приложений по сравнению с нативными приложениями. 2. Ограничения доступа к API: Некоторые возможности устройства могут быть сложнее достичь при использовании Cordova из-за ограничений доступа к нативным API. 28 3. Зависимость от плагинов: Для реализации определенных функций приложения может потребоваться использование сторонних плагинов, что может усложнить процесс разработки. Особенности фреймворка: 1. Использование веб-технологий: Cordova позволяет использовать знакомые веб-технологии, такие как HTML, CSS и JavaScript, для создания мобильных приложений. Это упрощает процесс разработки и позволяет разработчикам быстро создавать приложения без необходимости изучения новых языков программирования. 2. Доступ к нативным API: С помощью Cordova разработчики имеют доступ к нативным функциям устройства через плагины. Это позволяет взаимодействовать с камерой, геолокацией, контактами и другими функциями устройства, делая приложения более функциональными. 3. Поддержка плагинов: Cordova обладает широким спектром плагинов, которые позволяют расширять функциональность приложения. Разработчики могут использовать готовые плагины или создавать свои собственные для реализации дополнительных возможностей. 4. Открытый исходный код: Cordova является проектом с открытым исходным кодом, что позволяет сообществу разработчиков вносить свои вклады, улучшать фреймворк и создавать новые плагины для обогащения функциональности. 5. Удобство тестирования: Поскольку приложения Cordova разрабатываются с использованием веб-технологий, их легче тестировать на различных устройствах и платформах, что способствует более быстрой и эффективной отладке. 6. Сообщество и поддержка: Cordova имеет активное сообщество разработчиков, которые обмениваются опытом, создают полезные ресурсы и обеспечивают поддержку друг другу. Это делает процесс разработки более продуктивным и помогает разработчикам преодолевать проблемы. 29 В целом, ApacheCordova предоставляет разработчикам мощный инструмент для создания кроссплатформенных мобильных приложений, сочетая в себе удобство веб-разработки с доступом к нативным функциям устройств. Это некоторые примеры популярных кроссплатформенных фреймворков, которые широко используются в индустрии разработки мобильных приложений. Каждый из них имеет свои особенности и преимущества, и выбор конкретного фреймворка зависит от требований проекта и предпочтений разработчика. 1.6. Отличия нативной и кроссплатформенной разработки С технической стороны нативная разработка позволяет полностью использовать все функциональные возможности и API, предоставляемые операционной системой конкретного устройства. Это означает, что разработчики могут создавать приложения с высокой производительностью и глубокой интеграцией с операционной системой. Кроссплатформенная разработка же обеспечивает возможность создания приложений, которые могут работать на разных платформах (например, iOS и Android) с использованием одного кодовой базы. Однако, кроссплатформенные фреймворки могут иметь ограничения в доступе к некоторым функциям и возможностям операционной системы. Доступ к функциональности: - Нативная разработка дает полный доступ к функциональности и API, предоставляемым операционной системой. Это позволяет разработчикам использовать все возможности устройства, такие как камера, геолокация, управление жестами и т. д. - Кроссплатформенная разработка: может иметь ограничения в доступе к 30 некоторым функциям и возможностям операционной системы. Однако, современные кроссплатформенные фреймворки обычно предоставляют API и инструменты для работы с основными функциями устройства. Скорость разработки: - Нативная разработка: требует создания отдельного кода для каждой платформы, что может занимать больше времени и ресурсов. Разработчики должны быть знакомы с языками программирования и инструментами, специфичными для каждой платформы. - Кроссплатформенная разработка: позволяет использовать одну кодовую базу для разработки приложений на разных платформах. Это может значительно сократить время разработки и упростить поддержку и обновление приложений. Сообщество и экосистема: - Нативная разработка: имеет богатую экосистему инструментов, библиотек и сообщества разработчиков для каждой платформы. Это обеспечивает доступ к обширным ресурсам и поддержке со стороны разработчиков операционных систем. - Кроссплатформенная разработка: также имеет активное сообщество и экосистему, но может быть немного меньше по сравнению с нативной разработкой. Однако, существует множество популярных кроссплатформенных фреймворков и инструментов, которые предоставляют широкий набор возможностей и поддержку. Различия разработок в производительности и пользовательском опыте Производительность: - Нативная разработка: Приложения, разработанные с использованием нативных инструментов и языков программирования (например, Swift для iOS, Java/Kotlin для Android), обычно имеют более высокую производительность. Они могут более эффективно использовать аппаратные ресурсы устройства и имеют прямой доступ к нативным API. 31 -Кроссплатформенная использованием разработка: кроссплатформенных Приложения, разработанные фреймворков и с языков программирования (например, ReactNative, Flutter), могут иметь некоторое снижение производительности по сравнению с нативными приложениями. Это связано с дополнительным уровнем абстракции и переводом кода на нативный язык во время выполнения. Пользовательский опыт: - Нативная разработка: Нативные приложения обычно обеспечивают более плавный и естественный пользовательский опыт, так как они полностью интегрированы в операционную систему и следуют ее дизайну и принципам. Они могут использовать все возможности устройства, такие как камера, геолокация и датчики. - Кроссплатформенная разработка: Кроссплатформенные приложения стремятся достичь единообразия в пользовательском опыте на разных платформах. Они могут использовать общий код и ресурсы, что упрощает разработку и поддержку приложений для нескольких платформ. Однако, некоторые элементы пользовательского интерфейса и функциональности могут быть ограничены или не полностью соответствовать стандартам платформы. Различия в стоимости и времени разработок Стоимость разработки: - Нативная разработка: Разработка приложений для каждой платформы (например, iOS и Android) требует отдельного набора навыков и инструментов. Это может привести к увеличению затрат на разработку, так как требуется больше ресурсов и времени для создания и поддержки двух отдельных кодовых баз. - Кроссплатформенная разработка: Кроссплатформенные фреймворки позволяют разработчикам создавать приложения, которые могут работать на нескольких платформах с использованием одной и той же кодовой базы. Это может существенно снизить стоимость разработки, так как требуется меньше 32 ресурсов и времени для создания и поддержки единого кода. Время разработки: - Нативная разработка: Разработка нативных приложений для каждой платформы требует дополнительного времени на изучение и использование специфических инструментов и языков программирования. Каждая платформа имеет свои особенности и требует отдельного подхода, что может увеличить время разработки. - Кроссплатформенная разработка: Кроссплатформенные фреймворки позволяют разработчикам использовать единый код для создания приложений для разных платформ. Это может значительно сократить время разработки, так как не требуется писать и поддерживать отдельный код для каждой платформы. 33 ЗАКЛЮЧЕНИЕ В ходе исследования нативной и кроссплатформенной мобильной разработки были проанализированы два основных подхода к созданию мобильных приложений. Нативная разработка фокусируется на создании приложений для определенной платформы, такой как Android или iOS, с использованием инструментов и языков программирования, специфичных для данной платформы. С другой стороны, кроссплатформенная разработка позволяет создавать приложения, которые могут работать на различных платформах с использованием общего кода. Были рассмотрены преимущества и недостатки обоих подходов. Нативная разработка обеспечивает лучшую производительность, удобство использования и доступ к полному спектру функций устройства, однако требует разработки и поддержки нескольких версий приложения для разных платформ. Кроссплатформенная разработка позволяет экономить время и ресурсы за счет повторного использования кода, однако можно столкнуться с ограничениями в доступе к некоторым функциям платформы и производительности. Практическая значимость нативной разработки включает: 1. Лучшую производительность: Нативные приложения обычно обеспечивают лучшую производительность и оптимизацию, так как они полностью адаптированы к спецификациям каждой платформы. 2. Доступ к полным возможностям устройства: Нативная разработка обеспечивает более прямой доступ к возможностям устройства, таким как камера, геолокация, датчики и другие. 3. Лучшее качество пользовательского интерфейса: Нативные приложения обычно имеют лучшее качество пользовательского интерфейса, так как они созданы с учетом дизайн-стандартов каждой платформы. Практическая значимость кроссплатформенной разработки включает: 34 1. Экономию времени и ресурсов: Разработка для нескольких платформ одновременно позволяет экономить время и ресурсы, так как можно использовать общий код. 2. Удобство поддержки: Поддержка одного кодовой базы для нескольких платформ облегчает обновления и исправления ошибок. 3. Быстрый запуск на рынок: Кроссплатформенная разработка может сократить время выхода на рынок, поскольку разработчики могут одновременно создавать приложения для разных платформ. Выбор между нативной и кроссплатформенной разработкой зависит от конкретных потребностей проекта, бюджета, сроков и других факторов Выводы исследования показали, что выбор между нативной и кроссплатформенной разработкой зависит от конкретных потребностей проекта, сроков, бюджета и требований к функциональности приложения. Каждый из этих подходов имеет свои преимущества и ограничения, и оптимальное решение должно быть принято на основе комплексного анализа и с учетом конкретных целей разработки. Таким образом, при выборе между нативной и кроссплатформенной разработкой необходимо учитывать все вышеперечисленные факторы, чтобы создать эффективное и качественное мобильное приложение, соответствующее ожиданиям пользователей и целям бизнеса. 35 СПИСОК ЛИТЕРАТУРЫ 1. Адам Д. Скотт JavaScript Everywhere: создание кроссплатформенных приложений с помощью GraphQL, React, React Native и Electron. O'Reilly Media, 2020. – 344 с. 2. Беннетт Дж. Xamarin в действии: создание нативных кроссплатформенных мобильных приложений. Мэннинг Публикация 3. Дэвид Данчук, Джек Ньюфилд: Разработка приложений под iOS 10 на языке Swift, Издательство: ДМК Пресс 2017. – 344 с. 4. Льюис С. Нативная мобильная разработка: перекрестная ссылка для iOS и Android. O'Reilly Media, 2019. – 394 с. 5. Мерхед [Электронный ресурс] Плюсы и минусы кроссплатформенной и нативной разработки приложений. Автор: Юрий Мусиенко URL: https://merehead.com/ru/blog/pros-and-cons-cross-platform-native-mobile-appdevelopment/(дата обращения: 04.03.2024). 6. Ольга Петрова, Андрей Сидоров. Сравнительный анализ производительности нативных и кроссплатформенных приложений для iOS/ Ольга Петрова, Андрей Сидоров// Информационные технологии в развитии общества. – 2018. – №3. – С.112-125. 7. Статьи [Электронный ресурс] Основные преимущества Android перед iOS URL: https://dzen.ru/a/ZVHrICMgVgBO6oUl(дата обращения: 04.03.2024). 8. Хиндрайкс Д. Xamarin. Проекты Forms: Создание мультиплатформенных мобильных приложений и игры с нуля с использованием C# и Visual Studio 2019. – 2-е издание, издательство Packt, 2020. – 504 с. 9. Эбботт Д., Джирде Х., А. Аккомаццо Fullstack React Native: Создавайте красивые мобильные приложения с помощью JavaScript и React Native. Опубликовано независимо, 2019. – 688 с. 10. ТенЧат [Электронный ресурс] Сколько стоит разработка мобильного приложения? URL: https://tenchat.ru/media/2098163-skolko-stoit-razrabotka- 36 mobilnogo-prilozheniya(дата обращения: 17.02.2024). 11. Флуттер [Электронный ресурс] Преимущества и недостатки Flutter URL:https://flutter.dev/(дата обращения: 10.03.2024). 12. Скиллфактори Медиа [Электронный ресурс] ReactNative URL: https://blog.skillfactory.ru/glossary/react-native/(дата обращения: 10.03.2024). 13. Хабр примеры [Электронный ресурс] проектов URL: Xamarin: преимущества, недостатки, https://habr.com/ru/articles/188130/(дата обращения:10.03.2024). 14. Сикрет [Электронный ресурс] Кроссплатформенные языки программирования URL: https://secreate.io/blog/blog/krossplatformennye-yazykiprogrammirovaniya-/(дата обращения: 21.10.2023). 15. Скиллбокс Медиа [Электронный ресурс] Что означает «нативный»? URL: https://skillbox.ru/media/design/native-prostymi-slovami/(дата обращения: 21.10.2023). 16. Хабр [Электронный ресурс] Нативная разработка vs кроссплатформенная – нужно ли выбирать? Автор: DeFactoURL: https://habr.com/ru/articles/505482/ (дата обращения: 07.01.2024). 17. что Андромо [Электронный ресурс] Разработка нативных приложений: все, вам нужно знать о создании приложений URL: https://www.andromo.com/ru/blog/native-app-development-all-you-need-toknow/(дата обращения: 07.01.2024). 18. Оптимал груп [Электронный ресурс] Кроссплатформенная или нативная разработка URL: https://optimalgroup.ru/blog/krossplatformennaya-ili-nativnayarazrabotka/(дата обращения: 07.01.2024). 19. Ку-Диджитал [Электронный ресурс] Что такое нативное приложение и нужно ли оно вам. URL: https://q-digital.org/news/nativnye-prilozheniya/(дата обращения: 07.01.2024). 20. Аппфокс [Электронный ресурс] Нативная разработка приложений URL: https://appfox.ru/blog/nativnaya-razrabotka/ Автор: Редакция AppFox(дата 37 обращения: 10.01.2024). Сертоп 21. [Электронный ресурс] Разработка нативных и кроссплатформенных приложений – что выбрать? Автор: Александр Блюмгарт URL: https://serptop.ru/blog/razrabotka-nativnykh-i-krossplatformennykh- prilozhenii-chto-vybrat/(дата обращения: 30.01.2024). Миненков 22. Г.А. [Электронный ресурс] Сравнение нативной и кроссплатформенной разработки мобильных приложений, БГУ информатики и радиоэлектроники г. Минск, Республика Беларусь – URL: https://libeldoc.bsuir.by/bitstream/123456789/39227/1/Minenkov_Sravneniye.pdf(да та обращения: 30.01.2024). 23. Хабр [Электронный ресурс] Нативная разработка, ReactNative и Flutter: критерии выбора Автор: SimbirSoft https://habr.com/ru/companies/simbirsoft/articles/460030/(дата URL: обращения: 23.03.2024). 24. Майкрософт Лёрн [Электронный ресурс] Что такое Xamarin URL: https://learn.microsoft.com/ru-ru/xamarin/get-started/what-is-xamarin(дата обращения: 30.03.2024). 25. URL: Ахбт [Электронный ресурс] Обзор операционной системы BlackBerry 10 https://www.ixbt.com/mobile/blackberry-10.shtml(дата 26.01.2024). обращения: