Пост навеян новостью о прекращении поддержки Windows 10 mobile.
Являясь одно время обладателем Nokia Lumia 925, расскажу про одну из моих поделок на поприще мобильной разработки под Windows Phone 8.1.
Приложение: «Курсы валют ЦБ РФ». Предыстория
Был конец 2014 года и происходило что-то воистину странное. Доллар рос, евро не уступал, но отпуск через несколько месяцев уже был запланирован и эту самую валюту пора было уже покупать или хотя бы следить за ней.
Не найдя ничего полезного на Windows Phone Market, решил попробовать написать что-нибудь «для себя».
В конце концов, это не так уж и сложно — сделал приложение на коленке, залил сборку на телефон и живешь себе хорошо. А если и самому понравится, то можно и загрузить на маркет, пусть и другим будет хорошо.
P.S. «Ничего полезного» подразумевало и фильтрацию приложений с ужасным количеством рекламы (ей-богу, люди, что с вами было не так?).
Версия №1
Цель: создать простое приложение с единственной возможностью — посмотреть курсы валют в приложении и создать тайл на главной странице
Чуть формальнее:
- Самый простой UI
- Таблица с ценой валюты на сегодня/завтра
- Возможность создать тайл на главной странице
- Никакой рекламы
Что получилось в итоге (к сожалению, не сохранились скриншоты первых версий тайлов):
![](https://habrastorage.org/webt/ne/o5/9o/neo59op-j57ez2kucjybnar5xrq.png)
![](https://habrastorage.org/webt/ln/le/st/lnlestqfurrzatagvsgbcgcffi0.png)
Промежуточный сервис
Тайлы обращаются по ссылке на написанный сервис, который обращается к данным ЦБ и кэширует их на день, т.к. ЦБ не обновляет данные чаще. Т.е. приложение не работает с real-time данными, т.к. сама концепция тайлов не позволяет делать частые обновления.
Минимальная частота обновлений, насколько я помню, была в районе получаса.
Кто бы знал как много комментариев и минимальных звезд я получил за создание приложения с «неверными данными!». Добавление информации о частоте обновлений в следующих версиях ситуацию не изменили — пользователи продолжали периодически писать о плохих данных.
Кроме запросов к данным, сам сервис позволял собирать небольшую статистику использования приложения. На первых порах статистика запросов (каждый тайл = запрос) была следующей:
![](https://habrastorage.org/webt/jc/gg/jv/jcggjvvlrltnju3xwfkzoe28nxs.png)
Версия №2
Цель: неожиданно появились комментарии со стороны пользователей с просьбой добавить график динамики изменения курсов.
Что получилось в итоге:
![](https://habrastorage.org/webt/pq/k9/dg/pqk9dghyc4o_oz-j2juc_96wvkq.png)
![](https://habrastorage.org/webt/rk/uf/vl/rkufvlokyl8coga0sljjm66hkj4.png)
Из интересного: пришлось забрать и пересобрать исходники библиотеки графиков, чтобы пройти сертификацию приложения.
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.
Немного статистики запросов к июню:
![](https://habrastorage.org/webt/yg/b0/9a/ygb09ajemioqdvpwdctxtglnumw.png)
Написанный сервис выдал примерно следующую информацию по использованию тайлов:
- 125 пользователей с 0 тайлами — пользуются главным образом приложением напрямую
- 260 пользователей с 1 тайлом
- 175 пользователей с 2 тайлом
- 61 пользователь с 3 тайлом
- 7 пользователей с 4 тайлами
- 1 пользователь с 6 тайлами
Версия №3
Цель: вдохновленный просьбами пользователей (человека два попросило, но и этого достаточно), решил что новому дизайну быть.
Что получилось в итоге:
![](https://habrastorage.org/webt/uf/zr/fm/ufzrfmgazaoy2vr7aqf36nupm-o.png)
![](https://habrastorage.org/webt/sb/zr/l0/sbzrl0k35sfrp5iueqborvxk1i8.png)
![](https://habrastorage.org/webt/n7/up/vx/n7upvxclzpyt96axnwdars8_r5w.png)
![](https://habrastorage.org/webt/32/g-/u_/32g-u_nyusbbh-njuav8yj-_h_w.png)
Статистика:
![](https://habrastorage.org/webt/e_/mf/sm/e_mfsmmujaavjznnjswjuun8uk0.png)
Числа не заоблачные, но для меня очень приятные. Медленно, но верно количество пользователей увеличивалось.
Версия №4, заключительная
Цель: в этот раз был вдохновлен новым дизайном приложения для ВКонтакте. Да и на MVVM надо было переписать наконец. Да и курсы нефти и металлов добавить.
Что получилось в итоге:
![](https://habrastorage.org/webt/dl/jg/dj/dljgdjkpevxdfyniux_g_der7ok.png)
![](https://habrastorage.org/webt/lu/3o/dh/lu3odh6go--vicc_nd1ebxbdozo.png)
![](https://habrastorage.org/webt/dj/ix/u-/djixu-ew6qxsf-rxor6dllilepy.png)
![](https://habrastorage.org/webt/5v/ld/fi/5vldfiwjd7wf4tz988jsdpfpjdk.png)
![](https://habrastorage.org/webt/zz/u5/va/zzu5vagaredjjqujcqpdtnhq4uo.png)
![](https://habrastorage.org/webt/5g/ql/tr/5gqltrhuqlr81m_wptadtcsyzjy.png)
Видно, что на этот момент захотелось немного заработать на добровольном донате. Заработать удалось что-то около 800-900 рублей, вывести которые так и не удалось. Спасибо Microsoft за минимальный размер вывода в 25 долларов.
Заключительная статистика:
![](https://habrastorage.org/webt/ak/dx/1r/akdx1rdn2q-d1yhcgufzhmxto_e.png)
В заключении
Впоследствии был написан еще секундомер-таймер, но о нем ничего интересного. Он просто работает с учетом всех ограничений системы, коих оказалось немало.
Запал же по разработке стал пропадать, когда стало появляться всё больше комментариев от пользователей на Windows Phone 10 с просьбами поправить размеры тайлов или специфичные проблемы новой системы. В то же время как мой девайс категорично не включался в список на обновление платформы с Windows Phone 8.1. Желания выкладывать наобум, тестируя только в эмуляторе, особенно не было.
Затем последовали новости что вообще обновлений системы не будет и «покупайте новые телефоны». А за приложения было обидно, особенно учитываю позитивные, в общей массе, отзывы пользователей.
На такой ноте и закончим ностальгии разработки пост. Спасибо за внимание.
Комментарии (5)
avvor
23.01.2019 20:30+1У меня помимо минимального порога в 25$, ещё проблема была что сколько кошельков PayPal не пытался вводить, каждый раз приходило сообщение что «ошибка вывода проверьте ваши настройки кошелька». А для вывода на расчётный счёт минимальный порог 200$ за минусом их комиссии 30%(вроде 30? не помню). Вобщем вывел я свои 200$ этим летом от игры которую мы выпустили в 2012)
Iqorek
23.01.2019 22:43Вспомнил про свое приложение, которое писал примерно в тоже время и уже несколько лет заброшено. Была подключена гугл аналитика, сейчас посмотрел, до сих пор кто то использует, целых 17 человек онлайн, в лучшие времена было около сотни. Те кто остались, Индия, Африка и Южная Америка, все до сих пор на 8ке, что странно, вроде ее давно отключили.
Заработать не получилось ничего совсем, я конечно не рассчитывал на миллионы, но это было совсем обидно, хоть бы один доллар вернуть, за несколько месяцев, что я каждый вечер, иногда до 2х ночи, красноглазил.
asmdk
24.01.2019 05:34Помню делал что-то похоже, но для НБ Республики Беларусь, только попроще без графиков, но не помню то ли желания, то ли времени нехватило, чтобы все до ума довести и выложить в стор, но вы молодец, не отступили на пол пути)
MMTRIX
24.01.2019 22:24+1Лучшее приложение, до сих пор использовал.
Теперь приходится связываться с андроид и теперь там искать лучшие приложения.
AndrewN
О, да, помню это приложение (у меня была Lumia 730 DS), некоторое время пользовался. Но в итоге написал свое, правда без дизайна внутри и прочего с единственной целью — выводить до 4 валют на одной плитке. Правда я сразу под Win10 делал (UWP телефон/ПК). До сих пор маркете висит, хотя телефона уже больше двух лет этого у меня нет, но на ПК пользуюсь. Даже запросы фич раз в пару месяцев приходят и я всё обещаю и обещаю, но никогда скорее всего в итоге ничего не допилю.