Исаев Д. В. ОСОБЕННОСТИ РАЗРАБОТКИ КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Друк

УДК: 004.057.5+004.053

 

ОСОБЕННОСТИ РАЗРАБОТКИ КРОССПЛАТФОРМЕННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ

Исаев Д. В.

Национальный технический университет Украины «Киевский политехнический институт», Киев, Украина

 

Разработка кроссплатформенных приложений предполагает однократное написание приложения и его развертывание на различных платформах. Разработчики приложений могут получать более высокую прибыль, применяя средства разработки, поддерживающие создание и разработку кроссплатформенных приложений. В связи с этим на рынке появляется все больше и больше решений для ускорения и упрощения разработки приложений с возможностью дальнейшего переноса конечного продукта на существующие платформы.

Ключевые слова: кроссплатформенность, разработка, приложение

 

Ісаєв Д. В. Особливості розробки кроссплатформенного програмного забезпечення / Національний технічний університет України «Київський політехнічний інститут», Київ, Україна

Розробка кроссплатформенних додатків передбачає одноразове написання програми та її розгортання на різних платформах. Розробники додатків можуть отримувати більш високий прибуток, застосовуючи засоби розробки, що підтримують створення і розробку кроссплатформенних додатків. У зв'язку з цим на ринку з'являється все більше і більше рішень для прискорення та спрощення розробки додатків з можливістю подальшого перенесення кінцевого продукту на існуючі платформи.

Ключові слова: кросплатформенність, розробка, додаток

 

Isaev D. V. Сross-platform software development / The National Technical University of Ukraine “Kyiv Polytechnic Institute”, Kyiv, Ukraine

Development of cross-platform applications involves writing a single application and deploying it on multiple platforms. Application developers can earn higher profits by using development tools that support the creation and development of cross-platform applications. In this regard, more and more solutions appear to accelerate and simplify the development of applications with the possibility of deploying on existing platforms.

Key words: cross-platform, development, application

 

Ранее до выхода на рынок мобильной индустрии, кроссплатформенность в первую очередь была связана с такими операционными системами как Windows, Linux, Mac OS, и вопрос создания кроссплатформенных приложений не стоял так остро, как сейчас, когда вдобавок к настольным приложениям добавилась необходимость разработки приложения для мобильных платформ. Усугубила ситуацию тенденция все большей интеграции информационных технологий в обыденную жизнь пользователя.

В наше время большинство поставщиков услуг, помимо интернет сайта, который позволяет быстро и доступно получить всю необходимую информацию о сервисе, а также воспользоваться ими, предпочитают создавать еще и мобильные приложения, которые находятся в свободном распространении и позволяют фирме буквально всегда находится рядом с клиентом. Мобильные приложения имеет очень большой круг компаний разного размера и сферы услуг, начиная от обычных ресторанов, приложения которых позволяют узнать последнее меню и сделать предварительный заказ, сократив время ожидания обеда, и новостных сайтов до крупных банков, которые предоставляют услуги интернет-банкинга.

При разработке мобильных приложений компания сталкивается со следующей проблемой: необходимо написать несколько почти идентичных приложений, которые могли бы охватить всю целевую аудиторию и успешно работать на существующих платформах, с возможностью дальнейшего сопровождения и усовершенствования конечного продукта. Раньше в таких ситуациях приходилось нанимать несколько команд разработчиков, которые бы разрабатывали приложения для каждой конкретной операционной системы, а также неким образом синхронизировать их работу, для получения однотипных конечных программ. С точки зрения экономической выгодности такое решение является достаточно затратным так, как стоимость специалистов в ИТ индустрии достаточно высока.

С появлением инструментария для кроссплатформенной разработки, появился более выгодный, быстрый и менее трудозатратный сценарий, который заключается в создании одной команды высококвалифицированных специалистов, которые могут решить весь спектр поставленных задач.

Одним из наиболее распространенных решений для кроссплатформенной разработки является Xamarin Platform – платформа для создания приложений для операционных систем iOS, Android, Windows написанных на высокоуровневом, объектно-ориентированном языке С#. Данная платформа позволяет разработчикам писать код на одном хорошо известном им языке C# с применением всех привычных для них языковых преимуществ: LINQ, лямбда-выражений, Generic`ов и async`ов. При этом программисты имеют полный доступ ко всем возможностям SDK платформы и родному механизму создания UI, получая на выходе приложение, которое ничем не отличается от родных и не уступает им в производительности.

Xamarin основан на open-source реализации платформы .NET - Mono. Эта реализация включает в себя собственный компилятор C#, среду выполнения, а так же основные .NET библиотеки. Цель проекта — позволить запускать программы, написанные на C#, на операционных системах, отличных от Windows — Unix-системах, Mac OS и других. Разработкой Xamarin занимаются те же люди, что и разработкой Mono. С точки зрения исполнения приложений между iOS и Android есть одно ключевое различие — способ их предварительной компиляции. Как известно, для выполнения приложений в Android используется виртуальная Java-машина Dalvik. Нативные приложения, которые пишутся на Java, компилируются в некий промежуточный байт-код, который интерпретируется Dalvik`ом в команды процессора в момент исполнения программы(т.е. аналогично тому, как работает CLR в .NET). Это так называемая Just-in-time компиляция (компиляция на лету). В iOS используется другая модель компиляции — Ahead-of-Time (компиляция перед исполнением). Xamarin учитывает это различие, предоставляя отдельные компиляторы для каждой из этих платформ, которые позволяют на выходе получать настоящие, нативные приложения, которые выполняются вне контекста браузера и могут использовать все аппаратные и программные ресурсы платформы. Для iOS ситуация простая — никакой виртуальной машины нет и программный код должен быть просто заранее скомпилирован в машинный. Для этой цели используется AOT компилятор Mono.

С Android ситуация обстоит по другому. При компиляции приложения происходит перевод кода на C# в промежуточный байт-код, понятный виртуальной машине Mono и сама эта виртуальная машина также добавляется в упакованное приложение. И Mono и Dalvik написаны на Си и работают поверх ядра Linux, на котором основана операционная система Android. При запуске приложения на Android обе виртуальные машины начинают работать параллельно и обмениваются данными через специальный механизм оболочек.

Для каждой платформы Xamarin предоставляет возможность использовать нативные средства разработки UI и нативные элементы пользовательского интерфейса. Для Android создание UI может происходить непосредственно в коде или же при помощи декларативного подхода с описанием интерфейса в XML. Для iOS это также либо код, либо использование нативных средств проектирования интерфейса — отдельные xib-файлы или же один большой Storyboard. Редактирование этих файлов происходит в привычной для iOS-разработчика среде XCode.

На текущий момент технология Xamarin является серьезным инструментом для решения сложных задач в области разработки мобильных приложений. Несмотря на это, команда разработчиков не останавливается и продолжает его активное развитие и улучшение. За последние два месяца заметны серьезные улучшения в общей стабильности продукта. У технологии большое будущее и с каждым днем число разработчиков, использующих ее в качестве основного фреймворка для разработки будет неуклонно расти. В связи относительно большой распространенностью языка C#, который является продуктом компании лидера в сфере программного обеспечения – Microsoft, количество специалистов, которые могут быстро переквалифицироваться с разработки настольных приложений на разработку кроссплатформенных приложений, достаточно большое. Однако высокая стоимость лицензии может стать препятствием для широкого использования еще не зарекомендовавшей себя платформы. Также низкий уровень поддержки разработчиков на платформе Xamarin в сочетании с пока еще не высокой стабильностью продукта заставляет потенциальных покупателей задуматься над рискованным капиталовложением.

 

Література:

1. Материал о Xamarin на сайте Википедия: [Электронный ресурс] – Режим доступа: http://ru.wikipedia.org/wiki/Xamarin

2. Официальный сайт платформы Xamarin: [Электронный ресурс] – Режим доступа: https://xamarin.com/

3. Описание платформы Xamarin в блоге сайта ХабраХабр: [Электронный ресурс] – Режим доступа: http://habrahabr.ru/post/188130/

4. Материал о кроссплатформенном программировании на сайте Википедия: [Электронный ресурс] – Режим доступа: http://en.wikipedia.org/wiki/Cross-platform

 

References:

1. Information about Xamarin on the Wikipedia Site: [Electronic resource] – Rezhim dostupa: http://ru.wikipedia.org/wiki/Xamarin

2. Official Xamarin site: [Electronic resource] – Rezhim dostupa: https://xamarin.com/

3. Xamarin platform description in HabrHabr blog: [Electronic resource] – Rezhim dostupa: http://habrahabr.ru/post/188130/ 4. Information about cross-platform programming on the Wikipedia Site: [Electronic resource] – Rezhim dostupa: http://en.wikipedia.org/wiki/Cross-platform

Tags: