Приветствую, Хабр!
Пост навеян новостью о прекращении поддержки Windows 10 mobile.
Являясь одно время обладателем Nokia Lumia 925, расскажу про одну из моих поделок на поприще мобильной разработки под Windows Phone 8.1.
Был конец 2014 года и происходило что-то воистину странное. Доллар рос, евро не уступал, но отпуск через несколько месяцев уже был запланирован и эту самую валюту пора было уже покупать или хотя бы следить за ней.
Не найдя ничего полезного на Windows Phone Market, решил попробовать написать что-нибудь «для себя».
В конце концов, это не так уж и сложно — сделал приложение на коленке, залил сборку на телефон и живешь себе хорошо. А если и самому понравится, то можно и загрузить на маркет, пусть и другим будет хорошо.
P.S. «Ничего полезного» подразумевало и фильтрацию приложений с ужасным количеством рекламы (ей-богу, люди, что с вами было не так?).
Цель: создать простое приложение с единственной возможностью — посмотреть курсы валют в приложении и создать тайл на главной странице
Чуть формальнее:
Что получилось в итоге (к сожалению, не сохранились скриншоты первых версий тайлов):


Тайлы обращаются по ссылке на написанный сервис, который обращается к данным ЦБ и кэширует их на день, т.к. ЦБ не обновляет данные чаще. Т.е. приложение не работает с real-time данными, т.к. сама концепция тайлов не позволяет делать частые обновления.
Минимальная частота обновлений, насколько я помню, была в районе получаса.
Кто бы знал как много комментариев и минимальных звезд я получил за создание приложения с «неверными данными!». Добавление информации о частоте обновлений в следующих версиях ситуацию не изменили — пользователи продолжали периодически писать о плохих данных.
Кроме запросов к данным, сам сервис позволял собирать небольшую статистику использования приложения. На первых порах статистика запросов (каждый тайл = запрос) была следующей:

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


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

Написанный сервис выдал примерно следующую информацию по использованию тайлов:
Цель: вдохновленный просьбами пользователей (человека два попросило, но и этого достаточно), решил что новому дизайну быть.
Что получилось в итоге:




Статистика:

Числа не заоблачные, но для меня очень приятные. Медленно, но верно количество пользователей увеличивалось.
Цель: в этот раз был вдохновлен новым дизайном приложения для ВКонтакте. Да и на MVVM надо было переписать наконец. Да и курсы нефти и металлов добавить.
Что получилось в итоге:






Видно, что на этот момент захотелось немного заработать на добровольном донате. Заработать удалось что-то около 800-900 рублей, вывести которые так и не удалось. Спасибо Microsoft за минимальный размер вывода в 25 долларов.
Заключительная статистика:

Впоследствии был написан еще секундомер-таймер, но о нем ничего интересного. Он просто работает с учетом всех ограничений системы, коих оказалось немало.
Запал же по разработке стал пропадать, когда стало появляться всё больше комментариев от пользователей на Windows Phone 10 с просьбами поправить размеры тайлов или специфичные проблемы новой системы. В то же время как мой девайс категорично не включался в список на обновление платформы с Windows Phone 8.1. Желания выкладывать наобум, тестируя только в эмуляторе, особенно не было.
Затем последовали новости что вообще обновлений системы не будет и «покупайте новые телефоны». А за приложения было обидно, особенно учитываю позитивные, в общей массе, отзывы пользователей.
На такой ноте и закончим ностальгии разработки пост. Спасибо за внимание.
Пост навеян новостью о прекращении поддержки Windows 10 mobile.
Являясь одно время обладателем Nokia Lumia 925, расскажу про одну из моих поделок на поприще мобильной разработки под Windows Phone 8.1.
Приложение: «Курсы валют ЦБ РФ». Предыстория
Был конец 2014 года и происходило что-то воистину странное. Доллар рос, евро не уступал, но отпуск через несколько месяцев уже был запланирован и эту самую валюту пора было уже покупать или хотя бы следить за ней.
Не найдя ничего полезного на Windows Phone Market, решил попробовать написать что-нибудь «для себя».
В конце концов, это не так уж и сложно — сделал приложение на коленке, залил сборку на телефон и живешь себе хорошо. А если и самому понравится, то можно и загрузить на маркет, пусть и другим будет хорошо.
P.S. «Ничего полезного» подразумевало и фильтрацию приложений с ужасным количеством рекламы (ей-богу, люди, что с вами было не так?).
Версия №1
Цель: создать простое приложение с единственной возможностью — посмотреть курсы валют в приложении и создать тайл на главной странице
Чуть формальнее:
- Самый простой UI
- Таблица с ценой валюты на сегодня/завтра
- Возможность создать тайл на главной странице
- Никакой рекламы
Что получилось в итоге (к сожалению, не сохранились скриншоты первых версий тайлов):


Промежуточный сервис
Тайлы обращаются по ссылке на написанный сервис, который обращается к данным ЦБ и кэширует их на день, т.к. ЦБ не обновляет данные чаще. Т.е. приложение не работает с real-time данными, т.к. сама концепция тайлов не позволяет делать частые обновления.
Минимальная частота обновлений, насколько я помню, была в районе получаса.
Кто бы знал как много комментариев и минимальных звезд я получил за создание приложения с «неверными данными!». Добавление информации о частоте обновлений в следующих версиях ситуацию не изменили — пользователи продолжали периодически писать о плохих данных.
Кроме запросов к данным, сам сервис позволял собирать небольшую статистику использования приложения. На первых порах статистика запросов (каждый тайл = запрос) была следующей:

Версия №2
Цель: неожиданно появились комментарии со стороны пользователей с просьбой добавить график динамики изменения курсов.
Что получилось в итоге:


Из интересного: пришлось забрать и пересобрать исходники библиотеки графиков, чтобы пройти сертификацию приложения.
Технические подробности
Уже в процессе подготовки к публикации приложения выяснилось, с помощью Windows App Certification Kit, что внутри компонента есть некие вызовы kernel32.dll. В частности, были две ошибки:
API CreateFileMappingA in kernel32.dll is not supported for this application type. Sparrow.Chart.WinRT.45.dll calls this API.Оказалось (после гугления и перебора исходников), что в компоненте, написанном для Windows phone присутствует директива #if WPF. Кусок кода не использовался, но при это ломал тест сертификации. Закомментировал директивы, скомпилировал и, вуаля, все тесты прошли. Было очень неприятно узнать о подобной ошибке в самом конце выпуска обновления. Но повезло.
API MapViewOfFile in kernel32.dll is not supported for this application type. Sparrow.Chart.WinRT.45.dll calls this API.
Немного статистики запросов к июню:

Написанный сервис выдал примерно следующую информацию по использованию тайлов:
- 125 пользователей с 0 тайлами — пользуются главным образом приложением напрямую
- 260 пользователей с 1 тайлом
- 175 пользователей с 2 тайлом
- 61 пользователь с 3 тайлом
- 7 пользователей с 4 тайлами
- 1 пользователь с 6 тайлами
Версия №3
Цель: вдохновленный просьбами пользователей (человека два попросило, но и этого достаточно), решил что новому дизайну быть.
Что получилось в итоге:




Статистика:

Числа не заоблачные, но для меня очень приятные. Медленно, но верно количество пользователей увеличивалось.
Версия №4, заключительная
Цель: в этот раз был вдохновлен новым дизайном приложения для ВКонтакте. Да и на MVVM надо было переписать наконец. Да и курсы нефти и металлов добавить.
Что получилось в итоге:






Видно, что на этот момент захотелось немного заработать на добровольном донате. Заработать удалось что-то около 800-900 рублей, вывести которые так и не удалось. Спасибо Microsoft за минимальный размер вывода в 25 долларов.
Заключительная статистика:

В заключении
Впоследствии был написан еще секундомер-таймер, но о нем ничего интересного. Он просто работает с учетом всех ограничений системы, коих оказалось немало.
Запал же по разработке стал пропадать, когда стало появляться всё больше комментариев от пользователей на Windows Phone 10 с просьбами поправить размеры тайлов или специфичные проблемы новой системы. В то же время как мой девайс категорично не включался в список на обновление платформы с Windows Phone 8.1. Желания выкладывать наобум, тестируя только в эмуляторе, особенно не было.
Затем последовали новости что вообще обновлений системы не будет и «покупайте новые телефоны». А за приложения было обидно, особенно учитываю позитивные, в общей массе, отзывы пользователей.
На такой ноте и закончим ностальгии разработки пост. Спасибо за внимание.