Разработване на приложения за мобилни устройства

Анотация на курса
През последните няколко години сме свидетели на бурното развитие на пазарния дял на мобилни устройства като таблети, електронни четци и смартфони. Разработването на приложения доби нов смисъл, тъй като клавиатурата и мишката не са вече основните средства за управление на компютърни устройства. Поради тази причина се появява и необходимостта от изучаване на нови технологии за програмиране и за създаване на приложения със съвсем нова идеология.
Този курс е практическо въведение в разработването на приложения за мобилни устройства. По време на лекциите и семинарните упражнения студентите ще се запознаят с различните среди за разработване на приложения от този клас и ще придобият основни теоретични познания и умения за тази цел. Детайлно ще бъде разгледана и използвана средата Microsoft Visual Studio и Xamarin за разработване на многоплатформени приложения както по време на упражненията, така и за разработването на индивидуалната курсова задача.
За изучаването на този курс са необходими знания по дисциплините „Увод в програмирането“, „Програмиране и структури от данни“ и „Обектно-ориентирано програмиране".
Извънаудиторната заетост по дисциплината включва работа в библиотека и разработване на курсова задача. Съотношението между аудиторна и извънаудиторна заетост е 1:1.

Цели, задачи и очаквани резултати
Този курс има за цел да осигури на студентите задълбочени познания и допълнителна специална подготовка за теорията и практиката в разработването на приложения за мобилни устройства. Те ще се запознаят с някои от средите за разработване на такива приложения и ще натрупат повече практически умения със средата Microsoft Visual Studio и Xamarin.
Основната задача е студентът да добие умения за прилагане на похватите и добрите практики при разработване на приложения за мобилни устройства.
Очакваните резултати от курса като цяло са усвояването от студентите на:

• Основни теоретични познания за операционните системи използвани в мобилните устройства;
• Умения за използване на специализирани софтуерни продукти за разработване на програмни продукти за мобилни устройства.


Семинарни занятия

1. Въведение в програмирането за мобилни устройства. (2 часа)

2. Среди за разработване на приложения за мобилни устройства. Java Micro Edition SDK. Xcode за Mac, iPhone и iPad. Python за Symbian. Windows Phone SDK за Windows Phone. Android SDK. PhoneGap. (2 часа)

3. Въведение в програмирането за Windows Phone. Silverlight. XAML. XML. Разработване на първа програма. (2 часа)

4. Архитектура на приложенията за Windows Phone 7. (2 часа)

5. Silverlight и динамично подравняване на обектите. Събития за обработване на ориентацията. (2 часа)

6. Обработване на събитието Touch. (2 часа)

7. Работа с изображения и текст. (2 часа)

8. Работа с камера и видео. (2 часа)

9. Акселерометър. Компас. Жироскоп. (2 часа)

10. Географско местоположение и карти. (2 часа)

11. Работа с лента с инструменти и клавиатура. Определяне на индивидуалните курсови задания. (2 часа)

12. Работа с локални данни. Работа с база от данни. (2 часа)

13. XNA за Windows Phone. (2 часа)

14. Разработване на самостоятелен проект. (4 часа)


Упражнения

1. Въведение в програмирането за мобилни устройства. (2 часа)

По време на лабораторните упражнения изгответе сравнителен доклад в рамките на 2-3 страници за поне две мобилни операционни системи. Трябва да бъдат разгледани следните елементи:

2. Среди за разработване на приложения за мобилни устройства. Java Micro Edition SDK. Xcode за Mac, iPhone и iPad. Python за Symbian. Windows Phone SDK за Windows Phone. Android SDK. PhoneGap. (2 часа)

По време на лабораторните упражнения да се разработи мобилна версия на уеб сайт, като се използват технологиите HTML 5 и CSS. Работният език на уеб сайта да бъде английски. Трябва да съдържа следните страници:

Подробно описание за изпълнение на тази задача се намира на този линк.

Текстовете и изображенията за създаване на уеб сайта могат да се свалят от следните линкове:

3. Въведение в програмирането за Windows Phone. Silverlight. XAML. XML. Разработване на първа програма. (2 часа)

По време на лабораторните занимания, довършете започнатата задача от упражнение 2.

4. Архитектура на приложенията за Windows Phone. (2 часа)

По време на лабораторните занятия разработете програма, която: Решението на задачата с Visual Studio 2010 можете да свалите от тук.
Решението на задачата с Visual Studio 2015 можете да свалите от тук.

5. Silverlight и динамично подравняване на обектите. Събития за обработване на ориентацията. (2 часа)

В настоящото упражнение ще разгледаме, някои от начините за динамично подравняване на обекти в интерфейса на приложения за операционна система Windows Phone. Също така ще се обърне внимание на подравняване на обектите при промяна на ориентацията на телефона и метода, в който може да се обработи това събитие.

Задача 1:
Използване на панела за скролиране ScrollView, при дълга страница.

Задача 2:
Забавни бутони - Приложение използващо контрола Grid.

Задача 3:
Задачата за Simple Calc от упражнение 4, да се промени, така че контролите да се пренареждат при промяна на ориентация на телефона. Да се добави фонова картинка и да се промени цвета на шрифта на заглавния панел.

Решението на задачата можете да свалите от тук.
Необходимите изображения се намират на този линк.

6. Обработване на събитието Touch. (2 часа)

Задача 1.
Тук ще представим пример за текст, който ще уголемява размера и ще променя произволно цвета си при еднократно щракване върху него. Ще намалява размера на шрифта и ще възвръща първоначалния си цвят, когато се щракне върху всичко останало.

Задача 2.
Следващия пример ще представи подскачаща топка, която се управлява от потребителя, посредством жеста flick. Когато потребителят я удари тя се задвижи в съответната посока, при достигане границите на екрана ще промени посоката си, а когато той щракне отново върху нея, тя ще спре.

Материалите за това упражнение можете да свалите от тук.

7. Работа с изображения и текст. (2 часа)

Задача 1.
Да се разработи мобилно приложение за операционна система Windows Phone 7.1, което да има следните възможности:

Материалите за това упражнение можете да свалите от тук.
Необходимите изображения се намират на този линк.

8. Работа с камера и видео. (2 часа)

Задача 1.
Необходимите изображения за решаване на задача 1 се намират на този линк.

Задача 2.
Да се разработи мобилно приложение за операционна система Windows Phone 7.1, което да предоставя възможност за възпроизвеждане на видео файл.
Необходимите изображения за решаване на задача 2 се намират на този линк.
Решението на задача е поместено на този линк.

Материалите за това упражнение можете да свалите от тук.

9. Акселерометър. Компас. Жироскоп. (2 часа)

Задача 1.
Да се създаде приложение, демонстриращо работата на акселерометъра в Windows Phone.

Материалите за това упражнение можете да свалите от тук.

10. Географско местоположение и карти. (2 часа)

Задача 1.
Да се разработи мобилно приложение за операционна система Windows Phone 7.1, което да има следните възможности: Необходимите изображения за решаване на задача 1 се намират на този линк.

Материалите за това упражнение можете да свалите от тук.

11. Работа с лента с инструменти и клавиатура. Определяне на индивидуалните курсови задания. (2 часа)

12. Работа с локални данни. Работа с база от данни. (2 часа)

Задача 1.
Да се разработи мобилно приложение демонстриращо използването на изолираната памет.
Материалите за това упражнение можете да свалите от тук.

13. XNA за Windows Phone. (2 часа)

14. Разработване на самостоятелен проект. (4 часа)

Материалите за това упражнение можете да свалите от тук.



Конспект
1. Архитектура на мобилни операционни системи. Хардуер на мобилни устройства. [1, 2, 3, 4, 5, 6]
2. Среди за разработване на приложения за мобилни устройства. Използвани езици за програмиране. Уеб приложения за мобилни устройства. [5, 6, 7, 8, 9, 10, 11, 12, 13]
3. Въведение в програмирането за Windows Phone. Архитектура на приложенията за Windows Phone. Създаване на първо приложение за Windows Phone. [1, 14]
4. XAML в Winodws Phone. Silverlight. Model-View-ViewModel (MVVM). [14, 15]
5. Динамично подравняване на обектите и навигиране. Бързо превключване между приложения и тяхното възстановяване. [16, 17]
6. Събития свързани с докосване на екрана (жестове). [14, 16, 17]
7. Работа с контакти, календар и срещи. [1, 17]
8. Работа с текст, изображения и графика. [1, 14, 15, 19]
9. Работа с камера, видео и аудио. [1, 14, 17]
10. Използване на сензори: акселерометър, компас, жироскоп. [17, 19]
11. Географско местоположение и карти. [1, 16, 17]
12. Обработване на данни. [14, 16, 17, 19]
13. Обработване и възпроизвеждане на реч. Speech API. [16, 17]
14. Свързване със социалните мрежи. [14]
15. Публикуване на приложения в магазина за Windows Phone. [1]

Обновeн конспект

Литература

Основна

1. Charles Petzold (2015) Creating Mobile Apps with Xamarin.Forms. Cross-platform C# programming for iOS, Android, and Windows Phone, Microsoft Press.
2. Jim Bennett (2018) Xamarin in Action. Creating native cross-platform mobile apps, Manning Publications Co.
3. Paul F. Johnson (2015) Cross-platform UI Development with Xamarin.Forms, Packt Publishing.
4. Can Bilgin (2016) Mastering Cross-Platform Development with Xamarin, Packt Publishing
5. Christopher Miller (2017) Cross-platform Localization for Native Mobile Apps with Xamarin, Packt Publishing

Допълнителна литература

1. Paul Johnson (2018) Using MVVM Light with Your Xamarin Apps, Apress
2. Rusell Fustion (2018) Azure and Xamarin Forms: Cross Platform Mobile Development, Apress
3. Xamarin Documentation, https://docs.microsoft.com/en-us/xamarin/

Оценяване на студентите

Текущ контрол
Оценката от текущият контрол се оформя от разработване на един курсов проект КП и един реферат Р. Всеки реферат и курсов проект носят по равен брой точки.
Оценката от текущ контрол (Отк) се изчислява по формулата:

Отк= (КП + Р) / 2
Студентите, които нямат минимална оценка среден /3/ от текущ контрол не се допускат до изпит на редовната сесия. Те трябва да представят допълнителни разработки и след получаване на оценка поне среден /3/ се допускат до писмен изпит на поправителна или ликвидационна сесия.

Крайна оценка
Окончателната оценка (Оок) отчита резултатите от текущия контрол и оценката от писмения изпит (Оиз) в съотношение 1:1 съгласно формулата:

Оок = (Отк + Оиз) / 2

Окончателната оценка, изпитната оценка и оценката от текущ контрол се дават по шестобалната система – 2, 3, 4, 5, 6.

Реферати

Препоръчителното разпределение на темите за реферати по имена на студенти, могат да се видят тук след уточняването му.

Софтуерни продукти

Тук са поместени линкове към софтуерни продукти, които могат да бъдат използвани за разработване на курсовите проекти по дисциплината "Разработване на приложения за мобилни устройства":