Как стать автором
Обновить

Зачем мы сделали приложение Билайн под Windows Phone и что в этой ОС есть такого, чего нет в iOS и Android

Время на прочтение4 мин
Количество просмотров33K
Всего голосов 82: ↑73 и ↓9+64
Комментарии67

Комментарии 67

Отличная новость! стало даже жаль что моя Lumia не дожила до этого дня…
О, «1019 МБ из 1 ГБ». Раньше я правильный гигабайт видел только в ЮАР.
у вас Win-смартфон?! Интересно, давно?
Не, у меня основная звонилка Nokia 1110. Из нового только аккумулятор.
1019 — сверху скриншот.
Поржал над минусанувшими — видимо не тот блог, где Milfgrad'у можно задавать вопросы) У самого SE j10 с закрытой ОС.
Поставил, штука действительно удобная. Жаль что плитка отображает только баланс, хотелось бы иметь возможность вывести на плитку дополнительную информацию, например доступный трафик или количество минут.
Как я отметил в топике, это есть в планах.
Планируете плитку с Балансом близких?
Рассматриваем.
В следующих апдейтах мы планируем прозрачную плитку, широкую плитку и будем выводить оставшийся трафик, SMS и минуты прямо на плитках.

Можно закачать приложение с мобильного интернета. Приложение для iOS — 58 МБ, Android — 12 МБ, Windows Phone с похожей функциональностью – всего 2 МБ.

Вот при каждом апдейте на iOS удивляюсь как умудрились раздуть приложение до 58МБ. Вроде и графики то не так много.
Не скажу за iOS, но беглый осмотр apk показал большое количество либ, с пересекающейся функциональностью некоторых, а также непожатые пнг-шки по 600кб.
Кстати, посмотрел сейчас другие приложения на WP и iOS и сравнил размеры, похоже это типичная ситуация:
  • Twitter: iOS — 40мб, WP — 4 мб
  • Facebook: iOS — 70мб, WP — 11 мб
  • Skype: iOS — 65 мб, WP — 14 мб
Я тут пилил клиент для Push-уведомлений для своего сервиса. был удивлен, что приложение для хрома вышло всего в 50 килобайт. Дополнение написано чисто на HTML5.
Думаю что приложения раздуваются как уже выше упомянули из за библиотек, видимо кому то проще подключить 40 мегов библиотек чем написать нативный код. Скорее всего на WP принято использовать встроенные средства, или библиотеки в самой ОС уже в избытке.
Кстати для мобильных устройств было бы вполне удобно, если бы была прозрачная система зависимостей библиотек.
Т.е. например приложение тогда будет весить 2-10 мегабайт вместо 40-70. А библиотеки будут общие.
Для iOS требуется намного больше изображений:
• До 15 сплешей вместо максимум 3 на Windows Phone.
• Нет таких богатых и простых в использовании возможностей кастомизации элементов UI с помощью векторной графики и свойств контролов. Вместо этого на iOS используются растровые изображения.
Кстати для мобильных устройств было бы вполне удобно, если бы была прозрачная система зависимостей библиотек.
Т.е. например приложение тогда будет весить 2-10 мегабайт вместо 40-70. А библиотеки будут общие.

Пробовали уже
Ну так в чем проблема вообще версии библиотек совместимость и т.д. на мобильных платформах не пробовали. На мобильных платформах есть маркеты, через них и так обновляются приложения. Более того скорее всего десяток активных приложений сидят на последних библиотеках. Каждое приложение по 50 магабайт. Из них 40 мегабайт библиотек. Объединением можно было бы получить 400 мегабайт свободного места.
гладко было на бумаге, да забыли про овраги.

Есть ещё вопросы безопасности и прочего. Если их решать, то это дополнительная нагрузка на код приложения. Тут тебе и динамическая подгрузка библиотек, и их валидация. Возникают вопросы, когда же вычищать ставшие ненужными библиотеки, и как определять их нужность. Думаю, таких задач возникнет много.

Идея заманчивая, если вы в ней действительно уверены — исследуйте, прочитайте варианты, ожидаемую экономию, что придётся изменить в процессе разработки, где тут прибыль для участников рынка (хотя бы производителей ос) прямая и косвенная. Это будет отличная статья на хабр. И может быть, она привлечёт внимание нужных людей.
Безопасность — от гугла если это плеймаркет. Либо же разработчик библиотеки добавит её в стор. Также вообще по идее можно сделать так, чтобы при публикации в тот же плей стор может сам в общем то смотреть какая там версия библиотеки и убирать её из пакета отделяя в общий пакет.
Нужность — удалил последнее приложение с этой библиотекой — удаляется и библиотека.

Я кстати не удивлюсь, если тот же эпл или гугл представит это как фишку их магазина приложений. Уже сейчас по сути те же гугл сервисы вынесены в отдельную библиотеку на самом устройстве (если мне не изменяет память) т.е. большая часть апи связанная с гуглом и осью уже в пакете не лежит. Это значит, что по такому же алгоритму можно и другие библиотеки делать при желании, но надо их работу через маркет автоматизировать.
Реализовывали Universal App?
Да. В дальнейшем будет работать и на планшете и на PC.
Почему приложения нет в OEM разделе «Билайн» в магазине (сейчас там только «3G TV Beeline»)? И как вообще туда попадает приложение?
Присоединяюсь к вопросу. Solomatin811 расскажите про процесс публикации приложения, процесс попадания в списки и прочие интересности.
Не буду описывать процедуру регистрации аккаунта разработчика, перейду сразу к публикации.
В личном кабинете находим большую синюю кнопку «Submit App» и жмём на неё.
Готовим сборку к публикации (кстати версию надо устанавливать руками в Visual Studio, так как магазин, вам выдаст что то в духе 5.7.8.54.45.8.0). Дальше вносим, описание, ключевые слова (название приложения – это тоже ключевое слово), выставляем доступность в поиске магазина, по прямой ссылке или только для выбранных аккаунтов (подходит для тестирования в альфе и бете). И после всех шагов жмем «Опубликовать» и ждём сертификации от micrоsoft.
Официальная информация о сертификации от 3-х часов до 5 дней. По факту же сертификация прошла за 3-4 часа. И еще сутки-трое на индексацию приложения в магазине по ключевым словам.
Каких то дополнительных особенностей нет. Публикация проходит приблизительно также как и в других магазинах. Разве что индексация в поиске чуть дольше чем у ios или anroid. Полку (ОЕМ) получили по запросу через поддержку microsoft. Самостоятельно создать её не получится.
Вот про индексацию приложения в магазине интересно. Я сам не разработчик, но обратил внимание, что после релиза приложения должно пройти какое-то время, прежде чем оно попадает в списки. А сколько по времени занимает индексация в AppStore и PlayMarket? Просто интересно сравнить.
Ну и еще интересно было бы узнать, попадает ли новое приложение во все списки? Например есть список «новые бесплатные приложения», для попадание в этот список выставляются какие-либо требования?
Приложение в windows store попадает во все списки, каких то дополнительных требований для этого нет.
Сертификация (approve) у appstore — ~ 10 дней, индексация в поиске в течении суток.
Сертификация у Google Play — в районе 4 часов, индексация в поиске бывает в течении нескольких часов проходит.
Время сертификации для WP зависит от того, какие разрешения нужны приложению. Если минимум — то проходит за несколько часов (иногда очень быстро, потому что автоматически). Если есть геолокация, то проходит ручная сертификация (связано с тем, что в приложении должна быть возможность выключать гео и должна присутствовать Privacy Policy, что может проверить только человек), на которую нужно уже реально порядка недели.
Это полка в магазине с названием «Билайн». Для добавления на неё надо перейти по еще одной ссылке в партнерский раздел. Спасибо что напомнили.
Нет планов по обьеденению приложений разных стран в одно или может на иконках нарисовать флаги для более удобной идентификации приложения в магазине? А то сейчас там полно билайнов
image
Идея насчет флагов мне очень понравилась, спасибо. Объединить не получится. Разные страны, разная номерная ёмкость. Всё надо будет сводить в одну общую систему. Слишком большое и тяжелое приложение получится.
Эм… я даже не знаю почему это вам показалось трудным? Что по поводу схемы: качаем «балванку» -> выбираем страну -> докачиваем всю техническую информацию специально для выбранного региона.

Выбрать страну, наверное можно и по региону телефона, с подтверждением правильности — мало ли, вдруг я в зоне присутствия оператора с американским регионом для Кортаны, или игр каких
Ну это уже как решит UX специалист. Но делать разные приложения под разные страны только из-за того, что исходные данные будут разными — не самое классное решение. Возможно за этим решением скрывается более глубокий смысл, но я не могу представить ни одной объективное причины не делать одно приложение.
С этим согласен.
Я не пользуюсь Билайн, но очень рад, что вы сделали живую плитку! Кстати, на втором скриншоте какой-то странный баг — время уползло вниз.
image

А время уехало из-за того, что при блокировке-разблокировке время анимированно появляется.
Почему выпустили без поддержки 8.0? Было сложно адаптировать? У нее вроде как 35% рынка WP устройств.
Основывались на аналитике, а также информации от microsoft.

6-й слайд:
www.slideshare.net/adduplex/adduplex-windows-phone-statistics-january-2015

В таблице информация про срок поддержки 8.0
support.microsoft.com/lifecycle/search/default.aspx?alpha=windows+phone&wa=wsignin1.0

И самое главное universal apps появились только с версии 8.1 и если бы начали делать для 8.0 то это был бы другой sdk (silverlight) который пришлось бы потом портировать на universal apps Для поддержки планшетов и pc.
Спасибо за статистику. 24% – считайте, четверть пользователей как никак :)

С последним аргументом соглашусь)
А нет ли у вас информации как долго еще можно будет выкладывать обновления приложений для Windows Phone 7.8 устройств?
Судя по второй ссылке, срок основной закончился, билдить приложения для 7.8 под последней версией студии тоже нельзя.
Мы такой информацией не владеем. Думаю что никто этого сказать не сможет. Всё зависит от активности разработчиков и насколько долго будут болтаться телефоны с WinPhone 7.8 на рынке. Всё станет более ясно после релиза Windows 10.
Устройства под 7.8 уже нельзя разлочить даже разработчикам (то ли с 1 декабря прошлого года, то ли с 1 января этого года). Т.е. еще год (с того момента) можно будет что-то обновлять. Потом вообще никак.

Вопрос в том стоит ли тратить ресурсы на поддержку 7.8, которая уже двумя ногами в могиле. Сейчас крышка гроба просто не до конца захлопнута.
Да, разлочить уже нельзя, но разлоченные будут еще работать всё же два года, а не год. А это уже немало. И процент оставшихся пользователей мал, но не настолько чтобы их игнорировать.
Все Lumia с WP 8.0 на борту получили возможность обновиться до 8.1. Даже HTC через кровь и пот, но получилось их вытянуть до 8.1. Другое дело, что некоторые могли по каким-то причинам не обновиться сознательно, но это не значит, что у них нет такой возможности.
Как раз недавно это приложение поставил. Спасибо за работу, получилось хорошо и симпатично.
Проблема с невозможностью отправки USSD из приложения обсуждалась с Microsoft. После обоснования, коллеги из MS согласились номинировать его на потенциальное включение в следующие релизы SDK Windows 10.

Ух ты, неожиданно.
Зачем мы сделали приложение Билайн под Windows Phone и что в этой ОС есть такого, чего нет в iOS и Android

Как я понял из статьи, из «такого» там есть только стандартный компонент карты (и то надо покопаться, т.к. метки тормозят, сами же сказали). Хотя прокладка маршрутов из коробки прикольная фича, пошел смотреть, что из этого есть в Android и iOS.

По пунктам:
  • Живая плитка — субъективная плюшка. Чем лучше тех же виджетов — непонятно, так что вкусовщина
  • Windows Phone «из коробки» предоставляет высокий уровень безопасности данных приложения — в iOS тоже есть ключница, в Android никто не мешает пользователю зашифровать данные в телефоне. «Песочницу» используют тоже все 3 ОС. Так что не понятно, в чем прямо таки ключевое преимущество над остальными платформами.
  • Можно закачать приложение с мобильного интернета — вопрос умения разрабатывать. Выше есть комментарий, что было бы целью — можно было бы ужать заметно сильнее, если не использовать
  • Разработка под WP идёт быстрее, меньше акцента на разные «украшения — вопрос к дизайнерам и интерфейсологам, которые не любят использовать стандартные компоненты ;-) Те же Material Design и Holo-темы, на мой вкус, хорошо смотрятся «из коробки».
  • С USSD всё плохо, но будет в следующем обновлении — шикарный аргумент за платформу. А может и не будет. А может владельца текущих телефонов обновления не получат. Но заранее записано отсутствие фичи в плюсы. Странно.
  • Пункт про интерфейс никак прокомментировать не могу, но хотелось бы услышать поподробнее про тестирование и методы оценки. Можете даже дать ссылку на статью, если такая была :)
С чего Вы взяли, что автор выдает эти пункты за преимущества?
В статье идет речь об отличиях.
Важные отличия от других платформ:

Отличие — не обязательно преимущество.
Заголовок статьи — «что в этой ОС есть такого, чего нет в iOS и Android». Это заголовок намекает на рассказ про недостатки, или достоинства? Или вы таки хотите сказать, что эмоциональной окраски он не несёт? Ну ок. Понимаю. Хабр — не место для анализа написанного.
Согласен, есть немного эмоциональной окраски.
Но Вы в качестве контраргументов используется тот же прием, только с негативным оттенком, поэтому мне кажется и получили пару минусов.
Вот здесь, например, автор явно не хотел ничего приукрасить, а наоборот указал о недостатке:
С USSD всё плохо, но будет в следующем обновлении
По поводу приведенного скрина: я бы первой строкой услугу писал (мобильный интернет), а ниже баланс. Читалось бы не криво, важность баланса тоже хорошо видна
В Windows Phone SDK есть методы прокладки маршрутов внутри приложения.

Здесь имеется ввиду, что в контроле можно отобразить пошаговую навигацию?
Я это к тому, что просто прокладывать маршруты (отрисовка кривой с точки отправления до точки назначения) можно и в iOS.
Тогда это нельзя считать отличием от iOS.
Сломал мозг об ваше приложение:

А ещё у вас есть:
1019 Мб из 1Гб
Мобильный интернет

400 из 400 минут
Минуты общения

100 из 100 SMS
SMS

«минут минуты», «SMS SMS».
Seriously, Билайн?!
Пишу приложения на кокосе. Встраивание на WP всегда занимает в два раза больше времени чем на Android и iOS вместе взятых. Плюс VS по юзабилити не дотягивает до x-code и android studio. Да и синтаксис cpp там <11 версии, что снова несёт издержки. А работа с камерой вообще ужасна. Так что бы кто не говорил sdk WP сырой.
синтаксис cpp там <11 версии, что снова несёт издержки.
А под WP на CPP не пишут, там C# или JS
Под 8.1 очень даже пишут на C++.
«Разработка шла достаточно быстро, приложение вышло в бету через 3 месяца, в релиз – через ещё месяц. Версии для Android и iOS разрабатывались несравнимо больше. „

Не пойму что там можно 3 месяца до беты разрабатывать, особенно что можно было еще дольше под андроид писать. Или у вас всего один разработчик? При этом приложение под андроид до сих пор ужасно работает. Например изначально вообще не было автовхода, надо было всегда вводить пароль. Сейчас сделали какой то костыль через пару месяцев после релиза, и теперь пароль сам вводится и идет авторизация, при этом все равно видно поля, это выглядит как то не красиво. Представьте если бы при каждом входе вконтакте у вас было бы такое, и при этом авторизация идет где то минуту даже через быстрый интернет. Предположу, что это дело не в интернете даже, сервера слишком долго обрабатывают запрос.
После входа еще 30 секунд может грузиться бананс, а услуги можно еще пару минут ждать. Почему нельзя сделать один раз авторизацию, почему нельзя кэшировать данные, неужели баланс нельзя получить с сервера из базы данных мгновенно как и услуги?

“У Microsoft есть хороший общий SDK для телефона и планшета/PC. Релиз сейчас доступен только для телефонов, но запустить на основе его полноценный релиз для планшета и PC – это всего 2 месяца дополнительной работы по нашей оценке. „
Вроде как если пишите по официальным API, то запустить можно уже сейчас, но будет как в мобильном стиле, у вас 2 дополнительных месяца уйдет на верстку резинового интерфейса, который должен был быть изначально?
Можно закачать приложение с мобильного интернета. Приложение для iOS — 58 МБ, Android — 12 МБ, Windows Phone с похожей функциональностью – всего 2 МБ.
Не мог пройти мимо этой фразы — посмотрел на ваше приложение в магазине для iOS.
вот например нафига вы держите файл в приложении на 4,4 мб newYearScreen.jpg? Положите этот файл в приложение на любой другой платформе и (о чудо!) размер приложения на той платформе тоже вырастет. Это пример одного файла — других бесполезных картинок в приложении полно (основной вес в общем-то от них)

уберите компиляцию для armv7s (в последних версиях Xcode она по умолчанию выключена) — это значительно сократит размер exe-шника.

Нормальный размер вашего приложения под iOS с учетом функционала (если не парится, но если специально не раздувать) = 15 мб. Оптимизированный = 5 мб. Если сильно захотеть можно и до 2мб дойти, но это уже может быть слишком сложно.

Ну и тормозит app безбожно — думаете это потому что iOS плохая? Или все-таки тот кто делал приложение вам сделал его кривовато?
посмотрел в используемые вашим аппом функции — вижу используется OpenGLES — видимо заказывали разработку тем кто раньше игрушки писал, а гейм девелоперы не привыкли хоть как-нибудь заморачиваться размером приложения…

вот почитайте — habrahabr.ru/post/171975/
Я там выше от комментировал, что разница большая в размере по топовым приложениям тоже присутствует. Сможете глянуть, что с ними не так?
В фейсбуке:
1. тоже есть бесполезные ресурсы, но основной размер таки в екзешнике 52,8 мб
2. учитывая что в екзешнике болтаются non-external символы видимо они забыли воспользоваться вот этим: stackoverflow.com/a/8880533/751932

вот инструкция от эпла об уменьшении размера: developer.apple.com/library/ios/qa/qa1795/_index.html

P.S. поскольку глубже копнул вопрос понял, что был не прав насчет поддержки armv7s билайном. поддержки armv7s нету — посыпаю голову пеплом. Но
1. основной размер приложения у билайна в картинках (и очевидно не используемых в WM версии — иначе размер был бы не ниже размера картинок)
2. размер 20,6 екзешника у билайна тоже великоват. Т.е. практически очевидно, что в своем экзешнике они используют 3-rd party код.
3. Рецепт простой — пробовать отключать 3-rd party библиотеки и следить за изменением размера.

P.P.S. В общем-то я даже не очень то спорю что приложения под iOS будут больше весить — но не в 30 раз (в статье 58 мб против 2 мб).

Я себе один из первых тестов на размер приложения написал и при увеличении размера сразу видел виновного. Если же на размер не обращать внимания — то он, обычно, имеет тенденцию увеличиваться. И WM это тоже касается.
30 раз действительно много, но по моему опыту 2-5 раз размер различается практически всегда. Мне кажется, на iOS большАя часть sdk вкомпилируется в приложение, а на WP эти библиотеки сидят уже на самом устройстве.
1. тут дело в первую очередь в том что в iOS после появления cocoapods внешние библиотеки стало до ужаса просто встраивать и использовать в проекте. Ну а какой код больше займет места — из внешней библиотеки или написаный специально под приложение — думаю очевидно. (т.е. больше библиотек используем)
2. в objective-с же неиспользуемый код в екзешнике по прежнему есть (т.к. runtime язык), в отличии от C/C++ — что гарантирует при увеличении использования сторонних библиотек раздувание размера. (т.е. каждая библиотека добавляет неиспользованный код в экзешник)
3. в среднем, код на objective-c займет больше места в эзешнике чем аналогичный код на C/C++ (т.е. помимо самой функции требуется хранить имя метода + дополнительное runtime info)
4. Функции же из SDK в приложение iOS не встраиваются — т.е. в этом моменте как раз отличий нет.
Поскольку на Хабре аж 149 сотрудников «Билайн» сделать выбор для отправки ПМ, мягко говоря, сложно. :) Спрошу здесь.
Текст, который публикуется на ваших сайтах, проходит проверку орфографии хотя бы в текстовом редакторе?

Ссылка: moskva.beeline.ru/customers/products/mobile/tariffs/details/internet-navsegda/
Цитата: «Тариф для планшета с 200-ми бесплатными мегабайтами каждый месяц».

А описания тарифов пестрят перлами вида «5-ти», «3-ёх», «2-ух». :(
Информацию принял и передал ответственным сотрудникам.
Продолжается. Ссылка на тариф: moskva.beeline.ru/customers/products/mobile/tariffs/details/nol-somneniy/
Цитаты из описания: «со 2-ой минуты разговора», «со 2-й минуты разговора», «Соединение менее секунд»
а зачем отправлять USSD, когда можно сделать то же самое через, например, HTTP-запрос?
это решит не только проблему ограничения платформы, но и заодно позволит работать поверх LTE и WiFi.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий