> Это может быть что угодно: интеграция с разными платформами и интерфейсами других сервисов, по-хорошему безумные пользовательские интерфейсы, концепция второго игрового экрана и многое другое.
Честно говоря игра заинтересовала не столько в качестве игрового процесса сколько в реализации API. (Потому что друзья иногда просят разработать утилитки для них). К сожалению API на данный момент объективно очень скудное.
Что бы сделать тот же «второй игровой экран» нет многих элементарных вещей вроде онлайна друзей, чтение чата и т.д и т.п.
Друг в клане попросил для их клана сделать возможность получить максимальный урон на технике — оказывается в игре это можно увидеть а в API этого нет. (Сошлись на том что сделаю средний урон на технике за минимальное N количество боев)
Вот совсем недавно кто-то просил сделать отображение игроков в клане с техникой на которых у них есть три боевые отметки — тоже нет в API.
Т.е. по сути API это хорошо — но лично мне приходится многим отказывать в их просьбе разработать для них что нибудь из за того что API на данный момент зачастую очень сильно отстает от того что есть в игре.
Печально. Я никогда не испытывал антипатии к Microsoft, а скорее даже наоборот — мне нравится продукция МС (и это видно по моим постам) хотя и понимал что компания не белая и пушистая. Но если и в самом деле это правда то пожалуй теперь я буду агитировать не использовать Azure.
Дело не в том что МС блокирует приближенных Путину предприятия. А дело в том что в нарушении договора и здравого смысла МС в любой момент может вырубить рубильник по своим соображениям. Оказывается «беспристрастный» МС который продавал бы услуги лютым диктаторам (но выполнял бы свои обязательства и договор) нравился мне больше, чем «эмоциональный» МС который в зависимости от своих взглядов на ситуацию в мире может в любой момент грубо нарушить все договора.
Не совсем так. Скажем вам продают машину и вы ее покупаете.
Все законно? Законно.
Вам продают машину и вы ее покупаете и при этом он вдруг обмолвился что сбил на нем человека (не сказал где и как — а просто обмолвился) — но вы все равно купили.
И вдруг неожиданно вы стали соучастником преступления — вас обвиняют не в том что вы не донесли на человека когда тот обмолвился что сбил, а в том что вы учавствовали в самом преступлении и теперь «отмываете» ему машину.
А потом еще и оказалось что на самом деле этот человек полицейский и он никого не сбивал вовсе а просто хотел вас посадить.
За время работы над статьей я сделал 5 разных решений с вариантами этого калькулятора между WP и W8. Один из вариантов включал также и решение для Android. Я достаточно долго обдумывал стоит ли прикладывать код для этого примера или нет. И какой из вариантов выкладывать — например лучше с SimpleIoC или с «ручным» ServiceLocator и т.п. Выбирая какой из проектов лучше донесет основную мысль решил что пример для такой простой задачи по сути не нужен, тем более по SimpleIoC масса примеров. Ничего примечательного в примерах нет, но если и правда интересно то могу привести в приличный вид один из проектов и выложить «как есть» (В ходе экспериментов использовал не совсем удачные имена для проектов)
Как и у Dас — статистика полностью субъективная — выборка исключительно из команд/коллег/друзей с которыми общаюсь. С Caliburn.Micro тоже сталкивался в разных командах — но намного чаще видел MVVM Light
Тогда получается что «в этом весь не только mail.ru» :). А в прочем мне эта картинка с косяком теперь даже больше нравится. В следующей статье я еще больше затрону тему Xamarin.
И правда там макбук ). Спасибо за комментарий — я и правда не заметил косяка. Оставлю эту картинку что бы эта ветка комментариев не утратила актуальность.
Немного не в тему. Статья лично моя и вся вина компании только в том что разрешили разместить статью в своем блоге. Картинку выбирал лично я из этого ресурса и выбрал эту как наиболее подходящую не заметив косяка.
На работе в mail.ru я пишу только на Windows Phone и все. Эту статью и следующую на эту тему написал по опыту консультации друзей/коллег/комманд и домашней разработки. Статья полностью написана мной и любая ошибка и любой косяк в этой статье исключительно мой.
Боюсь показаться невеждой, но я не понял вопроса. :) Если речь об этом Bootcamp, то нет. Тем более тут речь не о десктопных приложениях а о WinRT и Silverlight приложениях (т.е. Win8, WP)
А вот мы вообще последнюю неделю-две наблюдаем стабильно проблему с пушами.С ними и раньше были проблемы, но в этот раз удуручающе часто наблюдаем проблему. Надеемся что в скором времени стабилизируют ситуацию. Так же есть слух что в WP8.1 пуши будут работать значительно надежнее. Хотя плохо себе представляю что может принципиально измениться, чего нельзя было сделать в WP8
А можно пример когда не работает Cancel в On Navigating? С удовольствием добавлю эту информацию в статью. По поводу восстановления из Tombstone — эти проблемы были исключительно при App Resume? Т.е. были какие то ошибки при App Resume которых не было при восстановлении по кнопке «назад»?
Насчет WP8.1 согласен. Изучая эту новую платформу я был рад что теперь уже API стал гораздо больше похож на тот API который хотел бы видеть еще на WP8. Больше всего обрадовал что уже не будет текущего Application Bar в том виде как он есть. Сейчас пока рано обсуждать WP8.1 — у меня уже есть материалы на несколько статей после официальной презентации на Build.
Согласен что фича и правда, относительно старая, и в целом не планировал эту статью. Но как ни странно довольно много разработчиков которых консультирую не слышали/забывают про эту фичу. App Resume настолько мало используют, что мало кто знает о том что в нем есть баги. Статью решил написать изучая эти баги платформы с использованием App Resume.
Очень жаль что эту фичу используют так мало разработчиков. Надеюсь эта статья немного сподвигнет разработчиков обратить внимание на App Resume. Ради этого и отложил следующую статью про различные варианты шаринг кода.
1. Полностью с вами согласен — однако в статье нужен был минимум кода — изначально был вариант с сохранением в IsolatedStorage и заливкой полученной картинки в облако. Решил убрать все это и показать пример попроще с минимумом кода, так как на мой взгляд все это слишком «засоряет» тему.
2. MediaShareTask все таки нужен совсем для другого сценария. Т.е. он для кейса когда мы сидим в приложении и решили отправить фотографию и мы можем добавить какую нибудь кнопку в UI приложения который предоставит возможность получить изображение. Но очень часто (по крайне мере у меня) сценарий с точностью до наоборот: Увидел какой то интересный момент из жизни — достал телефон и решил сфотографировать и уже потом хочется поделиться полученной фотографией, если нам самим эта фотография понравилась — собственно для этого и нужна интеграция в хаб с фотографиями — что бы пользователь мог быстро поделиться полученной фоткой через установленные приложения, например клиенты соц. сетей.
Да но с WP открывают возможности с осторожностью, возможно черезмерной осторожностью. Я сейчас изучаю WP8.1 и возможно в нем увидим возможность интеграции с сообщениями.
Согласен что ваш вариант намного проще сопровождать и рефакторить. Но в наших проектах этот подход давал существенные проблемы с производительностью в списках, особенно на таком железе как HTC Mozart и Lumia 610. (тесты проводились пока еще не было WP8). Надо будет проверить как сейчас все эти вкусности будут работать на самом популярном WP8 устройстве на текущий момент — Lumia 520
Спасибо за интересную статью, мы в своих проектах тоже сделали такие же решения, но пришлось отказаться от многих вкусностей из за больших проблем производительности при использовании в списках.
Так, к примеру, более шустрый вариант на котором остановились это упрощенная этого же решения, т.е. в BaseViewModel
private static readonly Localization.UI LocaleUI=new Localization.UI();
public Localization.UI Locale
{
get
{
return LocaleUI;
}
}
и в UI чуть более лаконичная запись:
Text="{Binding Locale.PhonePage_Title}"
Впрочем, значительно больше проблем с производительностью дало использовании лямбда выражений для нотификаций UI. С классическим подходом скроллинг списка был ощутимо плавнее.
Честно говоря игра заинтересовала не столько в качестве игрового процесса сколько в реализации API. (Потому что друзья иногда просят разработать утилитки для них). К сожалению API на данный момент объективно очень скудное.
Что бы сделать тот же «второй игровой экран» нет многих элементарных вещей вроде онлайна друзей, чтение чата и т.д и т.п.
Друг в клане попросил для их клана сделать возможность получить максимальный урон на технике — оказывается в игре это можно увидеть а в API этого нет. (Сошлись на том что сделаю средний урон на технике за минимальное N количество боев)
Вот совсем недавно кто-то просил сделать отображение игроков в клане с техникой на которых у них есть три боевые отметки — тоже нет в API.
Т.е. по сути API это хорошо — но лично мне приходится многим отказывать в их просьбе разработать для них что нибудь из за того что API на данный момент зачастую очень сильно отстает от того что есть в игре.
В прошлом веб-разработчик ASP.NET, WCF
www.facebook.com/akhmed.sheriev
skype: sherievakhmed
Дело не в том что МС блокирует приближенных Путину предприятия. А дело в том что в нарушении договора и здравого смысла МС в любой момент может вырубить рубильник по своим соображениям. Оказывается «беспристрастный» МС который продавал бы услуги лютым диктаторам (но выполнял бы свои обязательства и договор) нравился мне больше, чем «эмоциональный» МС который в зависимости от своих взглядов на ситуацию в мире может в любой момент грубо нарушить все договора.
Все законно? Законно.
Вам продают машину и вы ее покупаете и при этом он вдруг обмолвился что сбил на нем человека (не сказал где и как — а просто обмолвился) — но вы все равно купили.
И вдруг неожиданно вы стали соучастником преступления — вас обвиняют не в том что вы не донесли на человека когда тот обмолвился что сбил, а в том что вы учавствовали в самом преступлении и теперь «отмываете» ему машину.
А потом еще и оказалось что на самом деле этот человек полицейский и он никого не сбивал вовсе а просто хотел вас посадить.
из нагета количество скачиваний:
www.nuget.org/packages/MvvmLight/ — 119,091
www.nuget.org/packages/Caliburn.Micro/ — 81,689
www.youtube.com/watch?v=S7RlSTtXuNk#t=24
Немного не в тему. Статья лично моя и вся вина компании только в том что разрешили разместить статью в своем блоге. Картинку выбирал лично я из этого ресурса и выбрал эту как наиболее подходящую не заметив косяка.
На работе в mail.ru я пишу только на Windows Phone и все. Эту статью и следующую на эту тему написал по опыту консультации друзей/коллег/комманд и домашней разработки. Статья полностью написана мной и любая ошибка и любой косяк в этой статье исключительно мой.
А вот мы вообще последнюю неделю-две наблюдаем стабильно проблему с пушами.С ними и раньше были проблемы, но в этот раз удуручающе часто наблюдаем проблему. Надеемся что в скором времени стабилизируют ситуацию. Так же есть слух что в WP8.1 пуши будут работать значительно надежнее. Хотя плохо себе представляю что может принципиально измениться, чего нельзя было сделать в WP8
Очень жаль что эту фичу используют так мало разработчиков. Надеюсь эта статья немного сподвигнет разработчиков обратить внимание на App Resume. Ради этого и отложил следующую статью про различные варианты шаринг кода.
2. MediaShareTask все таки нужен совсем для другого сценария. Т.е. он для кейса когда мы сидим в приложении и решили отправить фотографию и мы можем добавить какую нибудь кнопку в UI приложения который предоставит возможность получить изображение. Но очень часто (по крайне мере у меня) сценарий с точностью до наоборот: Увидел какой то интересный момент из жизни — достал телефон и решил сфотографировать и уже потом хочется поделиться полученной фотографией, если нам самим эта фотография понравилась — собственно для этого и нужна интеграция в хаб с фотографиями — что бы пользователь мог быстро поделиться полученной фоткой через установленные приложения, например клиенты соц. сетей.
Так, к примеру, более шустрый вариант на котором остановились это упрощенная этого же решения, т.е. в BaseViewModel
private static readonly Localization.UI LocaleUI=new Localization.UI();
public Localization.UI Locale
{
get
{
return LocaleUI;
}
}
и в UI чуть более лаконичная запись:
Text="{Binding Locale.PhonePage_Title}"
Впрочем, значительно больше проблем с производительностью дало использовании лямбда выражений для нотификаций UI. С классическим подходом скроллинг списка был ощутимо плавнее.
В целом статья очень интересная, еще раз спасибо!