Современные технологии для разработки сайтов и мобильных приложений реферат

Обновлено: 04.07.2024

get_editable_roles ();($roles as $key => $value)

$role = get_role ($key);(isset ($input ['moderator_roles_'. $key]) &&! isset ($this->options ['moderator_roles_'. $key]))

> else if (! isset ($input ['moderator_roles_'. $key]) && isset ($this->options ['moderator_roles_'. $key]))

>(! is_numeric ($input ['timeout_refresh_users']) || $input ['timeout_refresh_users'] 'quick_chat_timeout_refresh_users',

'title' => __ ('Interval for refreshing list of online users (seconds): ','quick-chat'),

'message' => __ ('Must be positive integer. ','quick-chat'));

$input ['timeout_refresh_users'] = floor ($input ['timeout_refresh_users']);

>(! is_numeric ($input ['timeout_refresh_messages']) || $input ['timeout_refresh_messages'] 'quick_chat_timeout_refresh_messages',

'title' => __ ('Interval for refreshing list of messages (seconds): ','quick-chat'),

'message' => __ ('Must be positive integer. ','quick-chat'));

$input ['timeout_refresh_messages'] = floor ($input ['timeout_refresh_messages']);

$input ['badwords_list'] = wp_filter_nohtml_kses (trim ($input ['badwords_list']));

$input ['ip_blocklist'] = wp_filter_nohtml_kses (trim ($input ['ip_blocklist']));

$input ['disallow_usernames_list'] = wp_filter_nohtml_kses (trim ($input ['disallow_usernames_list']));(! is_numeric ($input ['guest_num_digits']) || $input ['guest_num_digits'] 10)

$input ['guest_num_digits'] = self:: default_guest_num_digits;

$validation_errors [] =('setting' => 'quick_chat_guest_num_digits',

'title' => __ ('Maximum number of digits for random guests chat user name suffix: ','quick-chat'),

'message' => sprintf (__ ('Must be positive integer less than %d. ','quick-chat'),

>(! is_numeric ($input ['manual_gmt_offset']) || $input ['manual_gmt_offset'] 12)

$input ['manual_gmt_offset'] = self:: default_manual_gmt_offset;

$validation_errors [] =('setting' => 'quick_chat_manual_gmt_offset',

'title' => __ ('Manual timestamp offset when displaying messages (+/ - hours): ','quick-chat'),

'message' => sprintf (__ ('Must be integer with value between %d and %d. ','quick-chat'), - 12,12));

$input ['manual_gmt_offset'] = floor ($input ['manual_gmt_offset']);

>(! is_numeric ($input ['message_maximum_number_chars']) || $input ['message_maximum_number_chars'] 'quick_chat_message_maximum_number_chars',

'title' => __ ('Maximum number of characters for each message: ','quick-chat'),

'message' => sprintf (__ ('Must be positive integer with value %d or greater. ','quick-chat'), 50));

$input ['message_maximum_number_chars'] = floor ($input ['message_maximum_number_chars']);

>(! is_numeric ($input ['avatar_size']) || $input ['avatar_size'] 512)

$input ['avatar_size'] = self:: default_avatar_size;

$validation_errors [] =('setting' => 'quick_chat_avatar_size',

'title' => __ ('User avatar size (pixels): ','quick-chat'),

'message' => sprintf (__ ('Must be integer with value between %d and %d. ','quick-chat'), 16, 512));

$input ['avatar_size'] = floor ($input ['avatar_size']);

>(! is_numeric ($input ['clean_target']) || $input ['clean_target'] 'quick_chat_clean_target',

'title' => __ ('Clean button will delete messages older than following number of messages per chat room: ','quick-chat'),

'message' => __ ('Must be positive integer. ','quick-chat'));

$input ['clean_target'] = floor ($input ['clean_target']);

>(! is_numeric ($input ['inactivity_timeout']) || $input ['inactivity_timeout'] 'quick_chat_inactivity_timeout',

'title' => __ ('Timeout for disabling updates to inactive user (seconds): ','quick-chat'),

'message' => sprintf (__ ('Must be positive integer with value %d or greater. ','quick-chat'), 2 * $input ['timeout_refresh_users']));

$input ['inactivity_timeout'] = floor ($input ['inactivity_timeout']);

';__ ('If you find Quick Chat useful you can donate to help it\'s development. Also you can get help with Quick Chat: ','quick-chat');'

';__ ('Here you can control all general options: ','quick-chat');'

';__ ('Here you can control all private chat options: ','quick-chat');'

';__ ('Here you can control Quick Chat message and chat user names filter: ','quick-chat');'

';__ ('In this section you can control security options: ','quick-chat');'

';__ ('Here are the Quick Chat appearance options: ','quick-chat');'

$wp_roles = new WP_Roles ();

$editable_roles = apply_filters ('editable_roles', $all_roles);_shift ($editable_roles);$editable_roles;

>function quick_flag_version_notice () <$current_screen;($this->quick_flag_capable () == false &&_user_can ('manage_options') &&

$user_id = $current_user->ID;(! get_user_meta ($user_id, 'quick_chat_quick_flag_notice_dismiss'))

'Quick Flag'. quick_flag_version_minimum,

$user_id = $current_user->ID;(isset ($_GET ['quick_chat_quick_flag_notice_dismiss']) && '0' == $_GET ['quick_chat_quick_flag_notice_dismiss'])

>function dashboard_widget () quick_chat (400, 'admin_room_'. substr (md5 (AUTH_SALT),0,5), 1, 'left', 0, 0, 1, 1, 1);

>function add_dashboard_widgets () <($this->user_status == 0)_add_dashboard_widget ('quick_chat_dashboard_widget', __ ('Quick Chat Admin\'s Lounge','quick-chat'), array ($this, 'dashboard_widget'));

>function quick_chat ($height = 400, $room = 'default', $userlist = 1, $userlist_position = 'left', $smilies = 1, $send_button = 0, $loggedin_visible = 1, $guests_visible = 1, $avatars = 1, $counter = 1)

$content = ob_get_contents ();_end_clean ();$content;

>function shortcode ($atts, $content=null, $code="") <(shortcode_atts (array ('height' =>400,'room' => 'default',

'userlist' => 1,'userlist_position' => 'left',

'avatars' => 1,'smilies' => 1,'send_button' => 0,'loggedin_visible' => 1,'guests_visible' => 1,'counter' => 1),

$this->embedded_rooms [$room] = 1;$this->quick_chat ($height, $room, $userlist, $userlist_position, $smilies, $send_button, $loggedin_visible, $guests_visible, $avatars, $counter);

$quick_chat_messages_table_name = $wpdb->prefix. 'quick_chat_messages';

$quick_chat_users_table_name = $wpdb->prefix. 'quick_chat_users';($this->db_version prefix. 'quick_chat';

$this->options = get_option ('quick_chat_options');

$query = $wpdb->query ('DROP TABLE IF EXISTS '. $quick_chat_messages_uninstall_table_name. '; ');

>($this->db_version query ('DROP TABLE IF EXISTS '. $quick_chat_users_table_name. '; ');

$messages_table_exists = ($wpdb->get_var ('SHOW TABLES LIKE \''. $quick_chat_messages_table_name. '\'; ') == $quick_chat_messages_table_name)? 1: 0;

$users_table_exists = ($wpdb->get_var ('SHOW TABLES LIKE \''. $quick_chat_users_table_name. '\'; ') == $quick_chat_users_table_name)? 1: 0;($messages_table_exists == 0)

$sql_messages = 'CREATE TABLE '. $quick_chat_messages_table_name. ' (BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,BIGINT (20) UNSIGNED NOT NULL DEFAULT "0",VARCHAR (50) NOT NULL DEFAULT "default",TIMESTAMP NOT NULL,VARCHAR (100) NOT NULL DEFAULT "",TINYINT (1) NOT NULL DEFAULT 2,ip VARCHAR (39) NOT NULL,TEXT NOT NULL,(timestamp ASC),(room ASC)) ENGINE=MyISAM DEFAULT CHARACTER SET utf8, COLLATE utf8_general_ci; ';_once (ABSPATH. 'wp-admin/includes/upgrade. php');($sql_messages);

> else<($this->db_version query ('ALTER TABLE '. $quick_chat_messages_table_name. ' ADD COLUMN md5email CHAR (32) NOT NULL DEFAULT "" AFTER alias; ');

>($this->db_version query ('ALTER TABLE '. $quick_chat_messages_table_name. ' CHANGE COLUMN alias alias VARCHAR (255) NOT NULL DEFAULT ""; ');

>($this->db_version query ('ALTER TABLE '. $quick_chat_messages_table_name. ' ADD COLUMN wpid BIGINT (20) UNSIGNED NOT NULL DEFAULT "0" AFTER id; ');

$query = $wpdb->query ('ALTER TABLE '. $quick_chat_messages_table_name. ' DROP md5email; ');

$sql_users = 'CREATE TABLE '. $quick_chat_users_table_name. ' (BIGINT (20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,TINYINT (1) NOT NULL DEFAULT 2,room VARCHAR (50) NOT NULL DEFAULT "default",_polled TIMESTAMP NOT NULL,_joined TIMESTAMP NOT NULL,VARCHAR (255) NOT NULL default "",VARCHAR (39) NOT NULL DEFAULT "",CHAR (2) NULL,VARCHAR (150) NULL,(timestamp_polled ASC, timestamp_joined ASC),KEY roomalias (room, alias)) ENGINE=MyISAM DEFAULT CHARACTER SET utf8, COLLATE utf8_general_ci; ';_once (ABSPATH. 'wp-admin/includes/upgrade. php');($sql_users);

> else<($this->db_version query ('ALTER TABLE '. $quick_chat_users_table_name. ' ADD COLUMN ccode CHAR (2) NULL AFTER ip; ');

$wpdb->query ('ALTER TABLE '. $quick_chat_users_table_name. ' ADD COLUMN cname VARCHAR (150) NULL AFTER ccode; ');

>($this->db_version db_version options ['adsense_content']))

$this->options ['adsense_content'] = self:: default_adsense_content;

>($this->db_version db_version options ['timeout_refresh_messages']))

$this->options ['timeout_refresh_messages'] = self:: default_timeout_refresh_messages;

>(isset ($this->options ['timeout_consider_offline'])) <($this->options ['timeout_consider_offline']);

>($this->db_version db_version options ['manual_gmt_offset']))

$this->options ['manual_gmt_offset'] = self:: default_manual_gmt_offset;

// Remove few options to simplify code (server performance)(isset ($this->options ['keep_first_last'])) <($this->options ['keep_first_last']);

>(isset ($this->options ['allow_guests_choice'])) <($this->options ['allow_guests_choice']);

>(isset ($this->options ['allow_logged_in_choice'])) <($this->options ['allow_logged_in_choice']);

// Increase users and messages refresh times (server performance)(isset ($this->options ['timeout_refresh_users']))

$this->options ['timeout_refresh_users'] = self:: default_timeout_refresh_users;

>(isset ($this->options ['timeout_refresh_messages']))

$this->options ['timeout_refresh_messages'] = self:: default_timeout_refresh_messages;

>(! isset ($this->options ['message_maximum_number_chars']))

$this->options ['message_maximum_number_chars'] = self:: default_message_maximum_number_chars;

>(! isset ($this->options ['avatar_size']))

$this->options ['avatar_size'] = self:: default_avatar_size;

$widget_options = get_option ('widget_quick-chat-widget');(isset ($widget_options) && is_array ($widget_options)) <($widget_options as &$option) <(is_array ($option) &&! empty ($option)) <

$option ['height'] = $option ['widgetheight'];

>_option ('widget_quick-chat-widget', $widget_options);

>($this->db_version db_version options ['clean_target']))

$this->options ['clean_target'] = self:: default_clean_target;

>(! isset ($this->options ['allow_change_username']))

$this->options ['allow_change_username'] = 1;

>($this->db_version options ['inactivity_timeout']))

$this->options ['inactivity_timeout'] = self:: default_inactivity_timeout;

>($this->db_version db_version options ['clean_target_auto']))

$this->options ['clean_target_auto'] = '1';

>(! isset ($this->options ['clean_private_auto']))

$this->options ['clean_private_auto'] = '1';

>(! isset ($this->options ['hyperlinks']))

$this->options ['hyperlinks'] = '1';

>(! isset ($this->options ['disallow_logged_in_usernames']))

$this->options ['disallow_logged_in_usernames'] = '1';

>(! isset ($this->options ['timeout_refresh_users']))

$this->options ['timeout_refresh_users'] = self:: default_timeout_refresh_users;

>(! isset ($this->options ['default_name']))

$this->options ['default_name'] = $this->default_name;

>(! isset ($this->options ['badwords_list']))

$this->options ['badwords_list'] = self:: default_badwords_list;

>(! isset ($this->options ['guest_num_digits']))

$this->options ['guest_num_digits'] = self:: default_guest_num_digits;

>(! isset ($this->options ['ip_blocklist']))

$this->options ['ip_blocklist'] = self:: default_ip_blocklist;

>(! isset ($this->options ['disallow_usernames_list']))

$this->options ['disallow_usernames_list'] = self:: default_disallow_usernames_list;

>_option ('quick_chat_db_version', self:: default_db_version);_option ('quick_chat_options', $this->options);

>function update_db_check () <($this->db_version! = self:: default_db_version)

$url = get_admin_url (). basename ($_SERVER ['SCRIPT_FILENAME']);(! empty ($_SERVER ['QUERY_STRING']))

$url. = '? '. $_SERVER ['QUERY_STRING'];

>function clean_room_to_target ($room, $target)

$quick_chat_messages_table_name = $wpdb->prefix. 'quick_chat_messages';

'DELETE FROM '. $quick_chat_messages_table_name. 'id query ($sql);$rows_affected;

>function filter ($text, $replace_inside_words) <(isset ($this->options ['badwords_list']) && ($this->options ['badwords_list']! = ''))

$strings = explode (',', $this->options ['badwords_list']);($strings as $word)


ТЕХНОЛОГИИ РАЗРАБОТКИ МОБИЛЬНЫХ ПРИЛОЖЕНИЙ. ПЛЮСЫ И МИНУСЫ РАЗРАБОТКИ С ПОМОЩЬЮ ПЛАТФОРМЫ PHONEGAP

Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение

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

В последнее время многие разработчики программного обеспечения (ПО) задумались о том, каким образом можно усовершенствовать технологии так, чтобы приложения были не только мощными, но и кросс-платформенными.

Целью данной статьи является выявление достоинств и недостатков платформы PhoneGap, с помощью которой можно разработать мощное приложение, которое будет поддерживаться на 6 платформах.

В статье также будет описано, как правильно настроить программную среду для разработки и как разработать простое приложение под ОС Android.

Обзор существующих технологий разработки мобильных приложений

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

Ниже будут рассмотрены такие технологи как Java, Qt (основанный на библиотеках C++), Windows Phone SDK (написание на языке XAML), iPhone SDK (основной язык - Objective-C), Android SDK (основной язык - Java) и Symdian (основной язык - C++).

Java-код интерпретируется непосредственно самим устройством при помощи так называемой Java Virtual Machine. Этот механизм делает возможным свободное распространение Java-приложений, так как они работают на всех устройствах с аналогичной Java-платформой [2].

Программирование Java-приложений и на сегодняшний день занимает большую часть, так как большинство мобильных устройств (в основном мобильные телефоны) в мире имеют уже предустановленную Java-машину.

2. Qt. Среда разработки Qt была приобретена Nokia в 2008 г. у норвежской Trolltech за 150 миллионов долларов. Qt в основном используется в качестве кросс-платформенной среды, которая позволяет использовать написанные с ее помощью приложения на различных устройствах и операционных системах, в том числе Windows, Mac OS X, Linux, Symbian, Android и других [3]. Начиная с версии Qt 4.0 появилась возможность программировать для мобильных устройств. С растущей пользовательской базой Qt, растёт потребность во встроенных, мобильных приложениях и UI-разработчиках.

Qt является одной из самых удачных библиотек для С++. Отладка приложений, разработанных для мобильных устройств, происходит с помощью эмулятора, который содержится в среде разработки. Таким образом, мы можем писать сложные приложения для мобильных устройств с использованием библиотек C++ и поддержкой кроссплатформенности.

В настоящее время последняя версия - Qt 5 бета. Финальный релиз планируется на 2012 год. Для работы Qt на мобильных устройствах необходима установка соответствующего Фреймворка.

  • Windows Phone SDK 7.1;
  • Windows Phone Emulator;
  • Windows Phone SDK 7.1 Assemblies;
  • Silverlight 4 SDK and DRT;
  • Windows Phone SDK 7.1 Extensions for XNA Game Studio 4.0;
  • Expression Blend SDK for Windows Phone 7;
  • Expression Blend SDK for Windows Phone OS 7.1;
  • WCF Data Services Client for Windows Phone;
  • Microsoft Advertising SDK for Windows Phone.

Код разрабатываемого приложения описывается на языке XAML. На самом деле - это просто XML файлы с языком разметки XAML.

Платформа Windows Phone не просто очередная платформа для мобильных устройств. Она содержит в себе не только технологическую составляющую, но и полностью проработанную концепцию дизайна интерфейса и взаимодействия с пользователем под названием Metro-дизайн или стиль Metro [4].

Вся разработка под Windows Phone ведется в среде Visual Studio. Среда является очень удобной для разработки и отладки приложений. Для мобильных приложений под Windows Phone отладка происходит с помощью эмулятора Windows Phone с помощью среды разработки Windows Phone.

4. iPhone SDK. Разработка под iPhone под операционную систему iOS возможна только под Mac OS X. Но в Интернете можно найти статьи, как можно программировать и на Macintosh и даже на VM. Стоит заметить, что Apple предоставляет инструменты бесплатно, платить придется за подписку разработчика [5].

Для написания программ под iPhone предлагается использовать Objective?C. При этом есть возможность писать так же и на C и на C++ (для этого необходимо изменять расширения файлов с .m на .mm). Правда при этом полностью уйти от Obj?C не удастся, почти весь API рассчитан именно на Obj?C, исключения составляют например OpenGL (хотя для его инициализации придется использовать несколько строк кода на Obj?C), так же полностью доступны стандартные библиотеки C/C++ (так, например, с файловой системой можно работать как средствами SDK на Obj?C, так и используя стандартную библиотеку С для ввода/вывода (fopen(), fgetc(), etc)) [5].

Отладка приложения происходит с помощью среды XCode и эмулятора iPhone установленного в ней.

5. Android SDK. Для разработки под Android можно использовать среду Eclipse с установленным плагином ADT. Разработка ведется на языке программирования Java. Есть возможность отладки с использованием эмулятора встроенного в ADT или непосредственно на мобильном устройстве с ОС Android.

Существует различные версии SDK, которые используются для написания кода для различных версий Android. В настоящее время большое распространения получили версии 2.2 и 2.3. Поддерживается почти полная обратная совместимость версий.

Кроме разработки на языке Java поддерживается возможность более низкоуровневая разработка с использованием Android NDK (Native Development Kit) на языке C/C++.

6. Symbian и C++. Для написания приложений под Symbian можно использовать язык программирования C++. В основном данный подход используется для Symbian OS v6.1, 7.0, 7.0s и 8.0 [6].

Разработка для Symbian OS (если говорить о C++) обычно ведется на ПК. Среда разработки - привычная многим программистам Visual Studio, это также могут быть IDE Metrowerks CodeWarrior Development Studio, Borland C++BuilderX Mobile Edition, Carbide.C++ (относительно новая IDE, созданная компанией Nokia на базе Eclipse), снабженная дополнительными инструментальными пакетами (SDK). Разработчику доступны практически все привычные возможности в отношении как создания ПО, так и отладки (трассировка, просмотр переменных, стека вызовов, структур классов и др.).

Отлаживаемая программа запускается в эмуляторе Symbian OS. Отметим, что эту подсистему правильнее было бы назвать симулятором, поскольку имитируются не аппаратные средства, а лишь программное окружение (соответствующие API операционной системы, реализованные поверх API Win32). При этом программные модули, которые загружаются в эмулятор, представляют собой исполнимые файлы для архитектуры x86 (не ARM, на базе которой построены смартфоны), соответствующее ПО для целевой платформы формируется после итоговой компиляции. Это предполагает определенную специфику (скажем, ранее была довольно распространена ситуация, когда программа, нормально функционировавшая в среде эмулятора, отказывалась работать на реальном устройстве), но сегодня эмулятор обеспечивает достаточно высокую степень сходства и проблемы возникают лишь при создании программ, нестандартно использующих API [7].

Выводы по результатам обзора. С появлением новых технологий, ранее использовавшиеся уходят в историю. Сейчас разработчиков, которые используют такие технологии как Symbian с использованием C++ и/или J2ME, становятся все меньше и лидирующую позицию занимают технологии, использующие различные SDK (Windows Phone SDK, iPhone SDK, Android SDK). Но недостаток всех существующих SDK в том, что разрабатываются нативные приложения, т.е. приложения, функционирующие под управлением только одной ОС.

Платформа PhoneGap

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

PhoneGap - это платформа с открытым исходным кодом от компании Nitobi (в настоящее время купленная Adobe), которая позволят разрабатывать приложения для нескольких мобильных платформ, используя стандартные Веб-технологии [11]. Создатели кросс-платформенного фреймворка PhoneGap постарались упростить задачу: позиционируя себя как единственный open source мобильный фреймворк с поддержкой шести мобильных платформ [8].

В настоящее время поддерживаются такие операционные системы как: Android, iOs, Symbian, Windows Phone, Bada, WebOS. Каждая из перечисленных ОС имеет полную или ограниченную функциональность (рис. 1), [9].

Написание приложения ведется на JavaScript с использованием HTML и CSS для разметки. Вы пишете мобильное приложение как обычный сайт или Веб-сервис.

Платформа PhoneGap расширяет API браузера и добавляет следующие возможности: доступ к акселометру, доступ к камере (пока только фото), доступ к компасу, доступ к списку контактов, запись и прослушивание аудио файлов, предоставляет доступ к файловой системе, позволяет работать с разными HTML5 хранилищами localStorage, Web SQL и т.п., а также позволяет безболезненно обращаться к любому кросс-доменному адресу [12].

Для того чтобы использовать PhoneGap необходимо скачать с официального сайта последнюю версию PhoneGap (на момент написания статьи она была 1.3.0) и указать в среде разработки расположение библиотеки. Так же необходимо подключить JavaScript файл, который расположен в папке вместе с библиотекой под нужную платформу.

С помощью PhoneGap Build - онлайновый конвертер из HTML 5. Нужно загрузить приложение на html/js/css - и на выходе получаете готовый бинарный файл для Apple App Store, Android Marketplace, Palm, Symbian или BlackBerry.

У приложений, разработанных под PhoneGap, есть ряд достоинств и недостатков.

Начнем с достоинств:

1. Очень просто реализовать совместную разработку приложения.

2. Написание кода ведется на HTML, Java Script, CSS с возможностью использования сторонних библиотек.

3. Поддержка кросс-платформенности (в настоящее время 6 платформ);

4. Отладка приложений с помощью браузера.

5. Возможность конвертации приложения под все необходимые платформы с помощью PhoneGap.

Недостатки разработки под PhoneGap:

1. Приложения не поддерживают многопоточность.

2. Проблемная реализация длинных списков (более 1000).

3. Не все приложения могут быть оформлены как Web-приложения.

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

5. Сложность настройки программной среды для написания приложений под PhoneGap.

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

Библиографический список


Сегодня многие сетевые или поддерживающие сеть устройства работают на том или ином варианте ядра Linux. Это солидная платформа: недорогая в развертывании и поддержке и хорошо принимаемая благодаря удобному подходу к развертыванию. Пользовательский интерфейс таких устройств зачастую основан на htm и может просматриваться с помощью браузера для РС или Mac. Android – открытая операционная система для мобильных телефонов, смартфонов, коммуникаторов, планшетных компьютеров, электронных книг, цифровых проигрывателей, наручных часов, нетбуков и смартбуков, основанная на ядре Linux и поддерживающая различные аппаратные платформы, такие как ARM, MIPS, POWER, x86. Android, молодая и еще не утвердившаяся платформа, способна проявить себя. По широте возможностей платформа Android не уступает операционным системам настольных ПК. Это многоуровневая среда на основе ядра Linux с богатыми функциональными возможностями [3,4,5].

Android обладает широким спектром возможностей подключения, охватывающим Wi-Fi, Bluetooth и протоколы передачи данных через сотовую сеть (GPRS, EDGE, 3G и др.). Популярным приемом в приложениях для Android является ссылка на Google Maps для отображения адреса непосредственно в приложении. В стек программного обеспечения Android входит и поддержка сервисов, основанных на определении местоположения (например, GPS), и акселерометров, хотя не все устройства на этой платформе оснащены необходимым оборудованием [16].

1. Актуальность темы

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

  1. нейронные сети для NPC.
  2. современные графические среды разработки.
  3. современные протоколы связи клиент-сервер.
  4. современные технологии передачи данных в различных форматах.
  5. использовать современные методы отладки и настройки приложений.
  6. использовать системы контроля версий.

2. Цель и задачи исследования, планируемые результаты

  1. Анализ существующих средств реализации графических кроссплатформенных приложений для мобильных систем.
  2. Оценка современных способов создания мобильных игровых приложений.
  3. Поиск и выявление возможных проблем реализации мобильных игровых приложений.
  4. Исследование популярных библиотек по созданию игровых приложений, сетевой обработки и пр.
  5. Разработка приложения и оценка его эффективности.
  1. Изучение современных инструментов для создания приложений под мобильные платформы.
  2. Изучение различных методологоий разработки программного обеспечения.
  3. Обзор существующих проблем создания мультиплатформенных приложений.

3. Обзор исследований и разработок

Посольку разработка приложений под мобильные платформы в современном мире очень актуальная тема, существует множество различных средств реализации подобных задач. Так как в рамках магистерской работы основная часть ресурсов планируется под разработку именно Android приложений, то большинство рассматриваемых средсв реализации будет рассмотренно именно с возможности реализации приложения в данной операционной системы [18].

3.1 Операционная система Android.

Тенденции развития мобильного ПО относительно всего рынка IT. Кадров 8, циклов 12, размер 345кб

3.2 Обзор средств реализации под нативную (android) платформу

NetBeans IDE — свободная интегрированная среда разработки приложений (IDE) на языках программирования java, Python, PHP, JavaScript, C, C++ и ряда других. Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков — энтузиастов (NetBeans Community) и компанией NetBeans Org. По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммперческим (платным) интегрированным средам разработки для языка java, такими как Intellij IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределенных шаблонов кода. Для разработки программ в среде NetBeans и для успешной инсталяции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разрабокту для платформ J2SE и J2EE. Начиная с версии 6.0 NetBeans поддерживает разработку для мобильных платформ без установки дополнительных компонентов. В версии NetBeans IDE 6.1 декларируется поддержка UML, SOA, языка программирования Ruby (включая поддержку Ruby on Rails), а также средства для создания приложений на J2ME для мобильных телефонов. В версии 6.5 добавлена поддержка языка PHP. Также для тестирования выложен модуль поддержки Python [2].

  1. Ядро платформы (загрузка Eclipse, запуск модулей);
  2. OSGi (стандартная среда поставки комплектов (англ. bundles));
  3. SWT (портируемый инструментарий виджетов);
  4. JFace (файловые буферы, работа с текстом, текстовые редакторы);
  5. Рабочая среда Eclipse (панели, редакторы, проекции, мастеры).

GUI в Eclipse написан с использованием инструментария SWT. Последний, в отличие от Swing (который самостоятельно эмулирует графические элементы управления), использует графические компоненты данной операционной системы. Пользовательский интерфейс Eclipse также зависит от промежуточного слоя GUI, называемого JFace, который упрощает построение пользовательского интерфейса, базирующегося на SWT. Гибкость Eclipse обеспечивается за счёт подключаемых модулей, благодаря чему возможна разработка не только на Java, но и на других языках, таких, как C,C++, Perl, Groovy, Ruby, Python, PHP, Erlang, Компонентного Паскаля, Zonnon, и прочих. Android Studio — интегрированная среда разработки (IDE) для работы с платформой Android, анонсированная 16 мая 2013 года на конференции Google I/0. IDE находилась в свободном доступе начиная с версии 0.1, опубликованной в мае 2013, а затем перешла в стадию бета-тестирования, начиная с версии 0.8, которая была выпущена в июне 2014 года. Первая стабильная версия была выпущена в декабре 2014 года. IDE основана на программном обеспечении Intellij IDEA от компании JetBrains. InteliJ IDEA — коммерческая интегрированная среда разработки программного обеспечения на многих языках программирования, в частности на Java, JavaScript, Python, CoffeeScript, htm/Xhtm/HAML, CSS/SASS/LESS, XML/XSL/Xpath, YAML, ActionScript, Ruby, Groovy, Scala, SQL, PHP, Kotlin, Clojure, C/C++, разработанная компанией JetBrains. Рассмотрев все возможные средства разработки для разработки дипломного проекта было решено выбрать среду разработки Eclipse с плагином ADT для программирования под Android. В качестве графической библиотеки было решено выбрать бесплатную библиотеку для 2D сцен AndEngine.

3.3 Обзор различных кроссплатформенных IDE

Unity 3D - это инструмент для разработки двух- и трехмерных приложений и игр, работающий под операционными системами Windows и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One. Есть возможность создавать приложения для запуска в браузерах с помощью специально подключаемого модуля Unity Web Player, а также с помощью реализации технологии WebGL. Приложения, созданные с помощью Unity, поддерживают DirectX, OpenGL. Активно движок используется как крупными разработчиками, так и разработчиками Indie-игр. В силу наличия бесплатной версии, удобного интерфейса и простоты работы с движком.

  1. Box collider (физическая модель образует куб, в который попадает вся модель объекта);
  2. Character controller — вид физической модели, созданный специально под использование его для игровых персонажей;
  3. Sphere collider (физическая модель образует сферу, в которую попадает вся модель объекта);
  4. Capsole collider (физическая модель образует капсулу, в которую попадает модель объекта. В отличие от предыдущего типа размеры можно менять и по одной, и по трём осям сразу);
  5. Wheel collider (физическая модель колеса);
  6. Terrain collider — тип физической модели, созданный специально для использования на объекте типа Terrain — земля, генерируемая редактором Unity с возможностями скульптинга и окрашивания местности.
  1. Система частиц;
  2. Камера;
  3. GUI текст;
  4. GUI текстура;
  5. 3D текст;
  6. Направленный свет;
  7. Освещение территории;
  8. Источник света, имитирующий солнце;
  9. Стандартные примитивы;
  10. Деревья;
  11. Terrain (земля).
  1. .3ds, .max, .obj, .fbx, .dae, .ma, .mb для трёхмерных моделей;
  2. .mp3, .wmv, .ogg для звуковых файлов;
  3. .bmp, .jpg, .jpg, .tga, .psd, .tif, .dds для изображений;
  4. .mov, .ovg для видеофайлов.

Модели, звуки, текстуры, материалы, скрипты можно запаковывать в формат .unityassets и передавать другим разработчикам, или выкладывать в свободный доступ. Этот же формат используется во внутреннем магазине Unity Asset Store, в котором разработчики могут бесплатно и за деньги выкладывать в общий доступ различные элементы, нужные при создании игр. Чтобы использовать Unity Asset Store, необходимо иметь аккаунт разработчика Unity. Unity имеет все нужные компоненты для создания мультиплеера. Также можно использовать подходящий пользователю способ контроля версий. К примеру, Tortoise SVN или Source Gear.

CryEngine 3 — игровой движок, разработанный немецкой компанией с ограниченной ответственностью Crytek и являющийся преемником движка CryEngine 2. CryEngine 3 изначально является крассплатформенными движком — он изначально ориентирован на IBM PC — совместимые компьютеры и игровые консоли Microsoft Xbox 360 и Sony PlayStation 3, а также на их последующие версии. Кроме того, движок ориентирован на разработку массовых многопользовательских онлайновых игр (англ. Massively Multiplayer Online Game — MMOG). Движок CryEngine 3 является полностью коммерческим, но есть и Free SDK версия.

CryEngine 3 официально анонсирован 11 марта 2009 года, 14 октября 2009 года состоялся официальный релиз дижка. CryEngine 3 является кроссплатформенным движком, он поддерживает IBM PC-совместимые компьютеры и игровые консоли Microsoft Xbox 3660 и SonyPlaystation 3.

  1. Binary — предоставляет полный API CryEngine 3, который взаимодействует со всеми модулями, в откомпилированном бинарном виде.
  2. Source — предоставляет полный исходный код CryEngine 3 и даёт возможность переработки или расширения любых модулей движка.
  1. Binary — предоставляет полный API CryEngine 3, который взаимодействует со всеми модулями, в откомпилированном бинарном виде.
  2. Source — предоставляет полный исходный код CryEngine 3 и даёт возможность переработки или расширения любых модулей движка.

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

Unreal Engine — игровой движок, разрабатываемый и поддерживаемый компанией Epic Games. Написанный на языке C++, движок позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X; консолей Xbox, Xbox 360, PlayStation 2, PlayStation 3, PSP, PS Vita, Wii, Dreamcast, GameCube и др., а также на различных портативных устройствах, например, устройствах Apple (iPad, iPhone), управляемых системой iOS и прочих. (Впервые работа с iOS была представлена в 2009 году[5], в 2010 году продемонстрирована работа движка на устройстве с системой webOS[6]).

Для упрощения портирования движок использует модульную систему зависимых компонентов; поддерживает различные системы рендеринга (Direct3D, OpenGL, Pixomatic; в ранних версиях: Glide, S3, PowerVR), воспроизведения звука (EAX, OpenAL, DirectSound3D; ранее: A3D), средства голосового воспроизведения текста, распознавание речи[7][8][9]), модули для работы с сетью и поддержки различных устройств ввода. Для игры по сети поддерживаются технологии Windows Live, Xbox Live, GameSpy и прочие, включая до 64 игроков (клиентов) одновременно.

4. Обзор существующих аналогов

  1. возможность однопользовательской игры;
  2. наличие многоуровневой системы игры;
  3. наличие хорошо спланированной экономической модели в игре;
  4. различные внутри игровые награды и достижения.

5. Обоснование необходимости совершенствования приложения

Большинство существующих приложений, на текущий момент, имеют возможность многопользовательского режима игры и различных многопользовательских дополнений, таких как совместная таблица рекордов, совместная игра и т. д. Так же подавляющее большинство имеют возможность или кроссплатформенного или же поддержки своего приложения на различных платформах (таких как IOS, Symbian, BlackBerry, веб-интерфейс и других.). Кроссплатформенность позволяет привлечь большую аудиторию, увеличивает шанс продвижения своего продукта на рынке приложений.

Как известно, одним из наиболее важных элементов в процессе разработки мобильных приложений является правильный выбор интегрированной среды разработки, который зависит не только от платформы, но и от уровня подготовки и квалификации специалистов, занимающихся их созданием. В рамках данной научной статьи рассмотрены наиболее популярные и современные средства для разработки мобильных приложений. Были приведены краткие характеристики существующих инструментов для создания программного обеспечения. В этой работе был произведен анализ преимуществ и недостатков сред разработки мобильных приложений. Рассмотренные в статье инструменты создания программного обеспечения позволяют разрабатывать самостоятельные программные продукты, устанавливаемые под необходимую операционную систему устройства. Данные среды не требуют особых навыков и опыта в написании программ и при этом предоставляют возможность создавать качественные мобильные приложения, используя различные языки программирования. Были выделены основные аппаратные функции, с которыми возможна работа рассматриваемых в статье инструментов. А также описаны основные причины их популярности. В качестве анализируемых инструментов разработки были выбраны следующие платформы: PhoneGap, RhoMobile, Xamarin, Appcelerator, Ionic, Appy Pie и NativeScript. В результате было разработано приложение с использованием одного из рассмотренных инструментов.


1. John M. Wargo. PhoneGap Essentials: building cross-platform mobile app. Addison-Wesley Professional. 2012. 59 p.

4. Travis M., Watson K. An Introduction to RhoMobile: Mobile Application Development for Enterprise Data. CreateSpace Independent Publishing Platform. 2012. 124 p.

5. Boydlee P. Appcelerator Titanium Smartphone App Development Cookbook. Packt Publishing Ltd. 2011. 92 p.

7. Redcar G. Develop mobile applications with ionic. CreateSpace Independent Publishing Platform. 2017. 122 p.

8. Griffith C. Mobile App Development with Ionic, Revised Edition Cross-Platform Apps with Ionic, Angular, and Cordova. O’Reilly Media. 2017. 42 p.

11. Nathan Walker, Nathanael J. Anderson. Mastering NativeScript Mobile Development. Packt Publishing. 2017. 71 p.

12. Branstein M. The NativeScript Book building mobile apps with skills you already have. The Brosteins. 2018. 32 p.

На сегодняшний день смартфоны стали незаменимыми гаджетами для каждого человека. Сейчас намного чаще встречаются люди без персонального компьютера, но с несколькими мобильными устройствами. Согласно данным исследовательской компании Gartner в 2016 г. по всему миру было продано почти 1,5 млрд смартфонов против 1,4 млрд годом ранее, в 2017 г. более 1536 млн смартфонов. В связи с этим и число мобильных приложений с каждым днем стремительно растет, что в свою очередь ведет к появлению новых средств разработки мобильных приложений и модификаций уже существующих. На данный момент в мире существует большое количество интегрированных средств разработки программного обеспечения.

Цель исследования: определение и описание наиболее известных и современных средств создания мобильных приложений и разработка в качестве примера мобильного приложения.

В процессе исследования современных средств разработки мобильных приложений использовались методы логического и сравнительного анализа.

В данной статье были описаны наиболее современные и популярные из них.

PhoneGap – это бесплатная программа с открытым исходным кодом, которая может работать с аппаратными функциями устройства, включая акселерометр, GPS местоположение, камеру, звук и многие другие подобные элементы [1]. Среда этого инструмента интегрирована с большим количеством библиотек, которые помогают улучшить функциональность приложения и тем самым помогают сэкономить много времени.

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

Фреймворк PhoneGap стал популярным благодаря тому, что позволяет создавать мобильные приложения, используя JavaScript, HTML и CSS3.

Rhodes – фреймворк, основанный на языке программирования Ruby, формирует основу для RhoMobile. Rhodes позволяет разработчику создавать кроссплатформенные нативные приложения, которые будут совместимы с огромным диапазоном операционных систем и смартфонов.

По своей основной анатомии или архитектуре RhoMobile очень похож на PhoneGap. Главной его особенностью является использование Ruby и MVC архитектуры приложений [3]. Созданный вами код на языке Ruby интерпретируется в нативный код устройства.

Appcelerator является открытым ресурсом фреймворков мобильных приложений. Данная платформа значительно ускоряет процесс разработки, поскольку позволяет разработчикам создавать приложения с наименьшим количеством строк кода. Appcelerator является платформой разработки Titanium, которая помогает создавать собственные приложения для мобильных телефонов, планшетов и даже персональных компьютеров [5]. Инструмент совместим с такими языками, как JavaScript, HTML, PHP, Ruby и Python.

Приложения, созданные с помощью данного инструмента, могут быть полностью аппаратными, предлагая возможность хранить все данные на устройстве или в Cloud ресурсе [6]. Поскольку для владельца приложения процесс разработки не заканчивается одним лишь написанием кода, создатели Appcelerator предусмотрели возможность получения доступа к некоторым сведениям об использовании самого приложения. Эта информация может быть полезной для отслеживания важнейших характеристик приложения и его дальнейшего усовершенствования. Аналитическая платформа позволяет осуществлять мониторинг данных о приложении, производительности, а также логов в режиме реального времени.

Xamarin как инструмент довольно популярный для создания приложений на всех трех крупных платформах – Android, Windows и iOS. Он поддерживает мониторинг качества и функциональности тестирования в широком диапазоне устройств, который помогает разработчикам придумывать масштабируемые и надежные мобильные приложения. Это моно-фреймворк, который позволяет устанавливать и поддерживать связь с API на мобильных устройствах.

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

Фреймворк Ionic основан на языке SASS CSS и является кроссплатформенным [7]. Это означает, что он имеет возможность работать со многими операционными системами. Является одним из наиболее простых в использовании инструментом, и даже может быть интегрирован с AngularJS, если вы планируете разрабатывать приложения, которые немного сложнее.

Ionic преимущественно используется для создания гибридных мобильных приложений. Поскольку это полный пакет SDK с открытым исходным кодом (Software Development Kit), Ionic идеально подходит для создания гибридных мобильных приложений с использованием веб-технологий, включая, но не ограничиваясь CSS, HTML5 и SASS [8].

Это отличный инструмент с уникальными функциями и сервисами для создания приложений. У Ionic есть целая библиотека оптимизированных для мобильных устройств компонентов, инструментов и жестов HTML, CSS и JS CSS.

Appy Pie – представляет собой платформу для самостоятельного создания мобильных приложений для тех, кто не знает программирование или не хочет в него углубляться. Такие приложения можно публиковать в Google Play, Apple App Store, Windows App Store или в любом другом магазине, в котором пожелаете.

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

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

Appy Pie обладает достаточно всеобъемлющей информационной панелью, которая позволит вам получать важные данные о вашем приложении [10]. Она содержит информацию о том, насколько популярно данное приложение, а также почему ваша аудитория отдает предпочтение именно вам. Вам предоставят данные о том, какие функции, кнопки или элементы вам нужно настроить, если вы хотите привлечь и удержать своих пользователей.

NativeScript также является кроссплатформенным инструментом разработки с открытым исходным кодом, но, в отличие от многих других конкурентов, его можно использовать бесплатно.

Приложения NativeScript разрабатываются на таких языках, как JavaScript или TypeScript. В NativeScript реализована полная поддержка фреймворка AngularJS. Мобильные приложения, построенные с NativeScript, имеют полный доступ API платформ [11].

С помощью NativeScript разработчики могут использовать Angular, JavaScript или TypeScript и создавать мобильные приложения для Android и iOS. NativeScript также имеет интеграцию с Vue.JS, в дополнение к его способности поддерживать сотни плагинов для расширенной функциональности [12]. Это, однако, требует хорошего знания командной строки, а это значит, что разработчик также должен будет предоставить свой собственный текстовый редактор.

В результате анализа были выбраны и описаны средств средств разработки мобильных приложений. В качестве среды, с помощью которой было создано приложение, была выбрана среда Xamarin. Ее отличительной особенностью является то, что в сравнении с нечувствительным к языку разработки решений, таких как Appcelerator Titanium, платформа Xamarin позволяет делать нативные сборки под целевые платформы и создавать высокопроизводительные приложения с естественным внешним видом. Кроссплатформенные приложения Xamarin выглядят на 100 % нативными на любом устройстве, обеспечивая наилучший пользовательский опыт по сравнению со стандартными гибридными приложениями.

Xamarin устраняет все проблемы совместимости оборудования, используя плагины и различные API для работы с функциями общих устройств на всех платформах. Наряду с доступом к особым API-платформам, Xamarin можно компоновать с библиотеками, нативными для конкретной платформы [13].

Рассмотрим разработку приложения для релаксации при помощи расслабляющих звуков природы с использованием платформы Xamarin.

2. В MainActivity.cs создаем массив наименований звуков для релаксаций.

ild1.tif

Рис. 1. Добавление компонента Android Support Library v7 App Compat

4. После чего создаем папку Activity и переносим MainActivity.cs в появившеюся папку.

5. Далее создаем новый файл макета интерфейса ViewPager_Item.axml, в данный файл добавляем элемент ImageView.

6. В папку drawable добавляем необходимые иллюстрации звуков. После чего создаем папку raw и добавляем в нее необходимые файлы звуков.

7. В папку Activity добавляем новый класс ViewPageAdapter.cs, в котором нужно реализовать код для прокрутки картинок на экране.

8. В папку layout добавляем новый макет Fragment_Relax.axml при помощи которого описываем свойства элементов на экране.

9. В папке Activity создаем новый класс My_Fragments.cs в котором пропишем новый метод OnCreateView для подключения разметок к соответствующим фрагментам.

10. В макете интерфейса Main.axml подключаем фрагмент.

11. В папку Resource добавляем папку menu, в которой создаем xml-файл menu, где прописываем кнопку для воспроизведения звука.

12. В папку values добавляем файл Styles.xml и Colors.xml для настраивания цветов для системных элементов, интерфейса программы и компонентов.

13. В MainActivity.cs добавляем код для запуска и остановки воспроизведения звука при нажатии.

14. Добавляем класс ParallaxPageTransformer.cs и прописываем в нем необходимый код для корректного просматривания страниц.

15. В MainActivity.cs добавляем код для сохранения элементов в ToolBar и для корректной работы плеера. Результаты разработки изображены на рис. 2.

ild2a.tif
ild2b.tif

Рис. 2. Результаты разработки приложения

В результате анализа были выбраны и описаны семь средств разработки мобильных приложений и на одном из них было разработано приложение.

Выводы

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

Читайте также: