Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Проверяет безопасность приложения:
Способы программирования и сборки двоичных файлов; Правильность использования средств безопасности; Наличие двоичных файлов для подписи частного кода в пакете приложения. Проверка поддерживаемых API.Позволяет убедиться, что в приложении не используются несовместимые API.
Проверка ресурсов манифеста приложения.Позволяет убедиться, что ресурсы, определенные в манифесте приложения присутствуют и допустимы.
Проверка конфигурации отладки.Позволяет убедиться, что сборка не является отладочной.
Проверка кодировки файлов.Проверяет содержимое пакетов приложения на предмет правильности используемой кодировки.
Проверка метаданных среды выполнения Windows. Тест соответствия файлов платформе. Тест на производительность.Позволяет определить скорость отклика приложения на команды пользователя, количество используемой приложением памяти, стоимость элементов для каждой операции рисования. Тест на производительность графически отображает потребление памяти приложением и позволяет просмотреть участки кода, где память расходуются не эффективно.
В ходе разработки приложении тестировалось на физическом устройстве Nokia Lumia 820 с 1 ГБ оперативной памяти и разрешением 800x480, а также после обновления данного устройства до операционной системы Windows Phone 8.1. Для тестирования на физическом устройстве необходимо сначала разблокировать его для разработки с помощью аккаунта разработчика. Дополнительно тестирование проводилось на эмуляторах различных разрешений и количеством оперативной памяти.
Публикация приложения в фирменный магазин – очень кропотливый процесс, требующий особого внимания к деталям.
Первый этап публикации в магазин – создание аккаунта разработчика. Для студентов университетов существует возможность бесплатного создания учетной записи разработчика с помощью программы Dreamspark. Для создания и публикации нашего приложения был использован студенческий аккаунт разработчика.
Второй этап публикации приложения – проверка приложения на требования сертификации приложений магазина Windows. Для решения этой задачи использовались тесты среды разработки Visual Studio 2013, которые были описаны в разделе тестирование.
Третий этап публикации приложения – сбор снимков экрана, заполнение информации о приложении, определение категории и цены приложения. После заполнения всей информации, приложение отправляется на сертификацию. Сертификация длится около недели, после чего на почту приходит электронное письмо с информацией о том, прошло ли приложение сертификации. Если приложение не прошло сертификацию, к письму прилагается отчет в формате pdf с описанием причины отклонения приложения. Если приложение было отклонено, после исправления ошибок, оно снова отправляется на сертификацию в магазин Windows.
Заключение
В результате выполнения дипломной работы были разработаны и спроектированы архитектура и интерфейс мобильного приложения «KFU Guide» для платформы Windows Phone 8, позволяющее упростить навигацию по Казанскому Федеральному Университету, обеспечить быстрый доступ к контактной информации подразделений и преподавателей университета, своевременно информировать о намечающихся мероприятиях университета.
В процессе выполнения дипломной работы были решены следующие задачи:
- Спроектирована архитектура и интерфейс мобильного приложения, удовлетворяющие общим стандартам для платформы Windows Phone 8; Собрана и проанализирована информации о подразделениях университета и расписании аудиторий. Организовать хранение и работу с данными; Спроектирована архитектуру взаимодействия клиента и сервера; Разработан программный продукт «KFU Guide» и опубликован в магазине приложений Windows.
Дальнейшее развитие приложения
- Функционал приложения
Для улучшения навигации по университету планируется добавить навигацию внутри зданий, с использованием интерактивных планов зданий, этажей.
- Поддержка устройств
На данный момент приложение поддерживается версиями операционной системы Windows Phone 8 и Windows Phone 8.1. В дальнейшем планируется перенести дизайн интерфейса на настольную и планшетную версию операционной системы Windows 8, что позволит значительно расширить потребительскую аудиторию.
Список использованных источников
Whitechapel A. Windows Phone 8 Development Internals / S. McKenna, A. Whitechapel – North Sebastopol: «O`Reilly», 2013. – 965 с. зык программирования C# 5.0 и платформа. Net 4.5 / Э. Троелсен – Санкт-Петербург: «Наука», 2013. – 1311 с. Руководство Microsoft по проектированию архитектуры приложений [Электронный ресурс] / Режим доступа: http://apparchguide. ms/, свободный. азработка приложений для Windows Phone 7.5 / – Санкт-Петербург: «БХВ-Петербург», 2012. – 374 с. рактические советы по созданию более качественных приложений для Windows Phone / Э. Берн // Журнал MSDN Magazine. – 2012. – №7. спользование камер в Windows Phone 7.5 / М. Строушейн // Журнал MSDN Magazine. – 2012. – №1. вязывание с данными / Д. Либерти // Журнал MSDN Magazine. – 2012. – №3. авигация в Windows Phone: основы / Й. Кириати, Д. Родригез // Журнал MSDN Magazine. – 2011. – №3. авигация в Windows Phone. Часть 2: Более сложные задачи / Й. Кириати, Д. Родригез // Журнал MSDN Magazine. – 2011. – №3. Курс Новые возможности Windows Phone 8 для разработчика [Электронный ресурс] / Официальный сайт Microsoft Virtual Academy. – Режим доступа: http://www. /training-courses/new-possiblities-windows-phone-8-for-developers-rus, свободный. Курс Расширенные возможности разработки для Windows Phone 8 [Электронный ресурс] / Официальный сайт Microsoft Virtual Academy. – Режим доступа: http://www. /training-courses/advanced-possibilities-appdev-windows-phone-8-rus, свободный. Курс Сложные приемы разработки для Windows Phone 8 [Электронный ресурс] / Официальный сайт Microsoft Virtual Academy. – Режим доступа: http://www. /training-courses/windows-phone-8-for-begginers, свободный. Курс Разработка Windows Store приложений на XAML/C# [Электронный ресурс] / Официальный сайт Microsoft Virtual Academy. – Режим доступа: http://www. /training-courses/windows-store-xaml-c-rus, свободный. How to: Create UML How to: Create UML Modeling Projects and Diagrams [Электронный ресурс] / Официальный сайт Microsoft Developer Network. – Режим доступа: http://msdn. /ru-ru/library/dd409445.aspx, свободный. Implementing the Model-View-ViewModel pattern for Windows Phone 8 [Электронный ресурс] / Официальный сайт Microsoft Developer Network. – Режим доступа: http://msdn. /en-us/library/windowsphone/develop/gg521153(v=vs.105).aspx, свободный. Data binding for Windows Phone 8 [Электронный ресурс] / Официальный сайт Microsoft Developer Network. – Режим доступа: http://msdn. /en-us/library/windowsphone/develop/cc278072(v=vs.105).aspx, свободный. Требования сертификации для приложений Магазина Windows [Электронный ресурс] / Официальный сайт центра разработчиков - приложения Магазина Windows. – Режим доступа: http://msdn. /ru-ru/library/windows/apps/hh694083.aspx, свободный.
Приложение.
Класс поиска SearchClass. cs:
using KFU_Guide. Database;
using KFU_Guide. Model;
using KFU_Guide. View;
using Microsoft. Phone. Controls;
using System;
using System. Collections. Generic;
using System. Collections. ObjectModel;
using System. Linq;
using System. Text;
using System. Text. RegularExpressions;
using System. Threading. Tasks;
using System. Windows;
using System. Windows. Threading;
using KFU_Guide. Resources;
namespace KFU_Guide. ViewModel
{
public class SearchClass
{ int test = 0;
public ObservableCollection<BaseItemModel> result;
private ObservableCollection<BaseItemModel> oldResultOfRooms;
private ObservableCollection<BaseItemModel> oldResultOfTeachers;
private ObservableCollection<BaseItemModel> oldResultOfBuildings;
private ObservableCollection<BaseItemModel> oldResultOfInstitutes;
private ObservableCollection<BaseItemModel> oldResultOfDepartments;
public ObservableCollection<BaseItemModel> resultOfRooms;
public ObservableCollection<BaseItemModel> resultOfTeachers;
public ObservableCollection<BaseItemModel> resultOfBuildings;
public ObservableCollection<BaseItemModel> resultOfInstitutes;
public ObservableCollection<BaseItemModel> resultOfDepartments;
private bool teachersIsReady = false;
private bool departmentsIsReady = false;
private bool institutesIsReady = false;
private bool roomsIsReady = false;
public bool allIsReady = false;
public SearchClass()
{
resultOfRooms = new ObservableCollection<BaseItemModel>();
resultOfTeachers = new ObservableCollection<BaseItemModel>();
resultOfBuildings = new ObservableCollection<BaseItemModel>();
resultOfInstitutes = new ObservableCollection<BaseItemModel>();
resultOfDepartments = new ObservableCollection<BaseItemModel>();
RoomsSearchIsDone += SearchClass_RoomsSearchIsDone;
TeachersSearchIsDone += SearchClass_TeachersSearchIsDone;
BuildingsSearchIsDone += SearchClass_BuildingsSearchIsDone;
InstitutesSearchIsDone += SearchClass_InstitutesSearchIsDone;
DepartmentsSearchIsDone += SearchClass_DepartmentsSearchIsDone;
SearchIsDone += SearchClass_SearchIsDone; }
#region Search is Done definition
void SearchClass_SearchIsDone(object sender, EventArgs e)
{
if (oldResultOfRooms!= null && oldResultOfRooms. Count > 0)
{
result = new ObservableCollection<BaseItemModel>(oldResultOfRooms);
}
else if (oldResultOfTeachers!= null && oldResultOfTeachers. Count > 0)
{
result = new ObservableCollection<BaseItemModel>(oldResultOfTeachers);
if (oldResultOfDepartments!= null && oldResultOfDepartments. Count > 0)
{
result = new ObservableCollection<Model. BaseItemModel>(result. Concat(oldResultOfDepartments).ToList()); }
if (oldResultOfInstitutes!= null && oldResultOfInstitutes. Count > 0)
{
result = new ObservableCollection<Model. BaseItemModel>(result. Concat(oldResultOfInstitutes).ToList()); }
}
else if (oldResultOfInstitutes!= null && oldResultOfInstitutes. Count > 0)
{
result = new ObservableCollection<Model. BaseItemModel>(oldResultOfInstitutes);
if (oldResultOfDepartments!= null && oldResultOfDepartments. Count > 0)
{
result = new ObservableCollection<Model. BaseItemModel>(result. Concat(oldResultOfDepartments).ToList());
}
}
else if(oldResultOfDepartments!= null && oldResultOfDepartments. Count>0)
{
result = new ObservableCollection<Model. BaseItemModel>(oldResultOfDepartments);
}
else
{
result = new ObservableCollection<Model. BaseItemModel>();
}
allIsReady = true;
}
void SearchClass_DepartmentsSearchIsDone(object sender, EventArgs e)
{
IStorageSettings. Save("dSearch", true);
departmentsIsReady = true;
if (teachersIsReady && institutesIsReady)
{
RaiseSearchIsDoneEvent();
}
}
void SearchClass_RoomsSearchIsDone(object sender, EventArgs e)
{
IStorageSettings. Save("rSearch", true);
roomsIsReady=true;
RaiseSearchIsDoneEvent();
}
……..
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


