Введение 4
2. Постановка задачи 6
3. Виды операционных систем для смартфонов 7
3.1 Android 8
3.2 iOS 12
3.3 Windows Phone 15
4. Фреймворк Xamarin. Описание и установка 18
5. Создание и настройка проекта в Visual Studio 20
6. Запуск приложения на эмуляторе Android 26
7. Встраиваемая база данных SQLite 29
8. СУБД Microsoft SQL Server 31
9. Алгоритм подбора рекомендаций 36
9.1 Формирование музыкальных предпочтений у пользователя с помощью
нейронных сетей 36
9.2 Использование алгоритма К ближайших соседей 45
10. Создание базы данных в SQL Server 49
11. Подключение к базе данных 52
12. Web API 58
13. Создание приложения в Xamarin 61
14. Audio Player 68
15. Заключение 71
16. Литература
Приложение
Мир современных мобильных платформ сильно фрагментирован, здесь выделяются две основные конкурирующие операционные системы - Android и iOS, а также платформу Windows Phone/Windows 10 Mobile. Для достижения наибольшего покрытия пользователей, значительная часть мобильных приложений создается более чем для одной платформы, например, для Android и iOS. Однако неизбежно разработчики сталкиваются со следующими трудностями:
• различие в подходах построение графического интерфейса так или иначе влияет на разработку. Разработчики вынуждены подстраивать приложение под требования к интерфейсу на конкретной платформе
• разные API - различие в программных интерфейсах и реализациях тех или иных функциональностей также требует от программиста учет этих специфических особенностей
• разные платформы для разработки. Например, чтобы создавать приложения для iOS нам необходима соответствующая среда - Mac OS X и ряд специальных инструментов, типа XCode. А в качестве языка программирования выбирается Objective-C или Swift. Для Androidа мы можем использовать более разный набор сред разработка - Android Studio, Eclipse и т.д. Здесь для подавляющего большинства приложений применяется язык Java.
Для создания приложений под Windows Phone используется Visual Studio, а в качестве языков - C#, VB.NET, C++.
Такой диапазон мобильных платформ, средств разработки и языков программирования не может положительно сказываться на сроках создания приложений, и, в конечном счете, на денежных средствах, выделяемых на разработку. Было бы очень эффективно иметь один инструмент, который позволял легко и просто создавать приложения сразу для всех платформ. И именно таким инструментом и является платформа Xamarin.
Xamarin позволяет создавать одну единственную логику приложения с применением C# и .NET сразу для всех трех платформ - Android, iOS, Windows Mobile. То есть Xamarin представляет технологию для кроссплатформенной разработки мобильных приложений.
Преимущества использования Xamarin.Forms:
• В процессе разработки создается единый код для всех платформ
• Xamarin предоставляет прямой доступ к нативным API каждой платформы
• При создании приложений мы можем использовать платформу .NET и язык программирования C# (а также F#), который является достаточно производительным, и в тоже время ясным и простым для освоения и применения
Функционально платформа Xamarin представляет ряд субплатформ:
• Xamarin.Android - библиотеки для создания приложений на ОС Android
• Xamarin.Mac - библиотеки для создания приложений на Mac OS X
• Xamarin.iOS - библиотеки для создания приложений для iOS
Эти субплатформы играют большую роль - через них приложения могут направлять запросы к прикладным интерфейсам на устройствах под управлением ОС Android или iOS.
Благодаря этим платформам можно создавать отдельно приложения как для Android, так и для iOS. Но наиболее важной особенностью платформы является возможность создавать кроссплатформенные приложения - то есть одна логика для всех платформ. То есть можно один раз определить визуальный интерфейс, один раз к нему привязать какую-то логику на C#, и все это будет работать на Android, iOS и Windows Phone. Данная возможность представлена технологией Xamarin.Forms. И именно эту технологию мы и будем использовать в данной работе.
В работе разработано кроссплатформенное приложение «Музыка» в программе Visual Studio 2017 с использование Xamarin, которое мы можем запустить на трех основных операционных системах.
Цель работы достигнута: приложение реализовано, запускается на всех трех операционных системах, все компоненты работают правильно.
Поставленные задачи выполнены:
1. Было изучена новая технология по созданию кросплатформенных приложений в Visual Studio с использование фреймворка Xamarin.
2. Для реализации базы данных я использовал SQL Server. Была продумана структура базы данных, ее таблиц и связей между ними.
3. Были рассмотрены два подхода для реализации подбора музыки у пользователя. Первый использование нейронных сетей, данный метод требует больших вычислительных ресурсов. Второй метод основан на методе k-ближайших соседей, данный метод занимает меньше времени для обработки данных и требует меньше вычислительных ресурсов. Поэтому мной был выбран второй метод, реализован и добавлен в приложение.
4. Для создания базы данных в предложение был выбран и установлен Microsoft SQLite, основной причиной является то что этот продукт от Microsoft и лучше совместим Visual Studio 2017.
5. Для основы приложения был взят макет Master-Detail-Page, это привычная нам форма, были загружены дополнительные NuGet пакеты для работы с музыкальными файлами и работай базой данных.
6. Для завершения разработки нам нужно объединить все выполненные нами компоненты в одно целое приложение и отладить чтобы приложение правильно функционировало.
7. Наш проект мы можем выгрузить как загрузочный файл для нашего смартфона, сделав данное действие и запустив мы проверяем работоспособность нашего приложения.
8. Работы была пошагово расписана и можно использовать данную работу как пособие по созданию кроссплатформенного приложения на Xamarin.
9. Для того чтобы нам подготовить приложение к загрузке в магазин приложения, нам нужно протестировать приложение на наличие не исправностей, которые могут возникнуть во время использования и предотвратить их при выявлении. После этого мы можем выгружать наши приложения виде установочных файлов для разных операционных систем. Для загрузки этих файлов понадобится сервис, который будет оплачивать ежемесячно, чтобы любой пользователь мог использовать данные из базы данных.