Комментарии 57
А под WP8 когда ожидается?
0
если я правильно помню, софт написанный под wp7.5 должен сразу работать под wp8.
+9
Все верно, Майкрософт обещает перекомпилировать приложения в облаке и сделать весь парк приложений под WP7 доступным для WP8. Интересный момент заключается в том, насколько гладко пройдет перекомпиляция обфусцированных приложений. Придет время — увидим.
0
А зачем Silverlight перекомпилировать?
+2
«Перекомпилировать в облаке»?
За такие фразы хочется жестко $@#$$@ черенком от лопаты.
За такие фразы хочется жестко $@#$$@ черенком от лопаты.
-3
Это действительно так. Cloud compiler в оригинале
+1
Это вольная цитата речи одного из представителей MS. К сожалению не смогу сейчас найти ссылку на оригинал, но это было на одной из конференций.
+2
Но не по-русски написано, согласись. Имхо стоит адаптировать подобные выражения в пользу здравого смысла.
-1
Не соглашусь, просто потому, что технические термины есть технические термины. Я же не сестре на кухне рассказываю, как это будет происходить, а в технически подкованном сообществе. Если слово компиляция пришло в среду разработки программного обеспечения без перевода, а Майкрософт (и другие крупные компании) продвигают «Облачные технологии», то выражение «перекомпилировать в облаке» считаю нормальным.
Если не согласны, давайте называть компьютеры электронно вычислительными машинами, а компиляцию — "трансляция". Будет звучать по русски, но, согласитесь, это не в пользу здравого смысла.
Если не согласны, давайте называть компьютеры электронно вычислительными машинами, а компиляцию — "трансляция". Будет звучать по русски, но, согласитесь, это не в пользу здравого смысла.
+1
вместо ObservableCollection можно было б заюзать IList для оптимизациии скорости листания. почему у вас должно грузиться 40 писем долго? вы ж грузить вроде должны просто список папок, а при тапе уже на конкретную папку грузить список писем этой папки или не так?
0
40 — это количество папок, которое мы добавили в почтовый ящик для тестирования скорости загрузки. Каждая папка соответствует одному элементу в Pivot'е. Pivot по своей внутренней структуре сразу создает все элементы при первом отображении, и это сильно затормаживало запуск в программы.
Элементы списка писем (письма подгружаются по 20 штук) создаются при первом отображении папки, т.е. при листании Pivot'а, и в целом это происходит достаточно быстро.
Элементы списка писем (письма подгружаются по 20 штук) создаются при первом отображении папки, т.е. при листании Pivot'а, и в целом это происходит достаточно быстро.
0
можно было б повесить событие onSelectionChanged, не помню как точно, которое как раз отвечает за смену item'а Pivot'а и при смене подгружать список писем для конкретной папки…
0
Именно это я и написал:
Элементы списка писем (письма подгружаются по 20 штук) создаются при первом отображении папки, т.е. при листании Pivot'а...
И добавил, что с этом-то проблем не было:
… и в целом это происходит достаточно быстро.
Элементы списка писем (письма подгружаются по 20 штук) создаются при первом отображении папки, т.е. при листании Pivot'а...
И добавил, что с этом-то проблем не было:
… и в целом это происходит достаточно быстро.
0
понятно) спасибо) а если писем так штук 500 пользователь подгрузил, с этим тоже нет проблем? письма грузите по достижению конца списка писем автоматически или вручную по нажатию кнопки какой-либо?)
-1
При переключении на папку подгружаются первые 20 писем. Если долистать до 20го — будут автоматически загружены еще 20 и т.д. Эта же ситуация происходит при чтении письма — если свайпом перейти к последнему загруженному письму, будут подгружены следующие 20.
Проверяли с подгрузкой 400 писем (20 страниц по 20 писем). Отображается достаточно быстро, проблем с нехваткой памяти при этом тоже не возникло. Но 400 писем это достаточно много. Если нужно найти письмо, которое было получено давно — лучше воспользоваться поиском.
Проверяли с подгрузкой 400 писем (20 страниц по 20 писем). Отображается достаточно быстро, проблем с нехваткой памяти при этом тоже не возникло. Но 400 писем это достаточно много. Если нужно найти письмо, которое было получено давно — лучше воспользоваться поиском.
0
можно было б повесить событие onSelectionChanged, не помню как точно, которое как раз отвечает за смену item'а Pivot'а и при смене подгружать список писем для конкретной папки…
0
Зачем отдельное приложение? Телефон умеет работать с почтой из коробки. У меня есть ящик на Mail.ru — никогда не испытывал проблем с его чтением через телефон.
+8
просто при установке этого клиента, установится еще и майл гвард)
+4
Основной плюс для меня — поддержка Push Notifications.
+1
если я правильно понял технологию Push Notifications некая служба постоянно держит соединение с сервером. Как на это реагирует батарейка, если связь идет через wi-fi?
0
Сервис, который обрабатывает пуш-нотификации всех подписанных программ один (что экономит ресурс процессора). И он учитывает состояние батареи (в режиме энергосбережения пуши доставляюся с задержкой). Это гораздо более экономичный способ, в сравнении с ситуацией, если бы все приложения в фоне постоянно опрашивали свои сервисы.
В отличие от пуш-нотификаций, встроенная почта раз в определенное время опрашивает почтовый сервис на предмет наличия новых писем. Таким образом информация о новых письмах приходит с большей задержкой, чем пуш-уведомления.
Рискну, так же, предположить, что опрашивая сервис встроенное приложения проходит весь цикл авторизации, что отрицательным способом сказывается на трафике и процессорном времени.
В отличие от пуш-нотификаций, встроенная почта раз в определенное время опрашивает почтовый сервис на предмет наличия новых писем. Таким образом информация о новых письмах приходит с большей задержкой, чем пуш-уведомления.
Рискну, так же, предположить, что опрашивая сервис встроенное приложения проходит весь цикл авторизации, что отрицательным способом сказывается на трафике и процессорном времени.
+2
Простая проверка почты в нужный интервал очень даже работает.
+1
Разницы со встроеным приложением, особо не заметил
+4
Обрезанные фамилия и стремное выравнивание — это фишки wp? или косяки программы?
-4
Обрезанные фамилии — однозначно фича, причем довольно таки симпатично выглядит в динамике при правильной реализации
0
Насколько я помню обрезанный текст показывает, что можно сделать свайп вправо и там будет какая то еще менюшка/информация/и т.д. Тогда можно пролистнуть посмотреть инфу о пользователе и заодно фамилия будет видна. Но что то есть предчувствие, что там ничего нет, и фамилии зря обрезанные.
И вообще как то оформлено не в стиле Метро. Когда представляют приложение на WP делают не скрины, а разворот программы. Хотя как я вижу по скринам тут абсолютно не учтены особенности метро. Например те же фамилии — можно было сделать стену из писем, при перелистывании переходим к следующему письму, видим начало имени. Хотя это немного странно выглядит. Потом в метро особо не принято делать список папок… делают опять же стену, чтобы вошел и смотри сразу нужную папку.
Внизу выезжающее меню, насколько я помню оно именно должно открываться, а не быть открытым. Например в окне ввода данных для входа надо сделать кнопку отдельно Вход, а не запихивать её в меню Т.к. это не дополнительная функция, а основная.
Возможно конечно стандартный выглядет также, но ИМХО немного не сходится в метро.
И вообще как то оформлено не в стиле Метро. Когда представляют приложение на WP делают не скрины, а разворот программы. Хотя как я вижу по скринам тут абсолютно не учтены особенности метро. Например те же фамилии — можно было сделать стену из писем, при перелистывании переходим к следующему письму, видим начало имени. Хотя это немного странно выглядит. Потом в метро особо не принято делать список папок… делают опять же стену, чтобы вошел и смотри сразу нужную папку.
Внизу выезжающее меню, насколько я помню оно именно должно открываться, а не быть открытым. Например в окне ввода данных для входа надо сделать кнопку отдельно Вход, а не запихивать её в меню Т.к. это не дополнительная функция, а основная.
Возможно конечно стандартный выглядет также, но ИМХО немного не сходится в метро.
0
Полностью согласен. Увы не достаточно много общался с мобильным Metro, чтобы написать настолько развернутый комментарий.
0
Комментарий получился действительно развернутым, однако судить о программе по скриншотам довольно сложно, не так ли? Если вы попробуете установить приложение, то поймете, что ряд описанных замечаний не верны.
По поводу Application Bar: туда выносятся до 4х ключевых действий окна. Дополнительные 3 действия могут быть вынесены в меню (могут быть и больше, однако Metro UI Guidelines не рекомендуют выносить в аппбар и меню суммарно больше 7 действий).
Еще в процессе разработки Агента мы консультировались с дизайн бюро Майкрософт в Лондоне, которые дают свои рекомендации по оформлению приложений в стиле Метро и именно они порекомендовали убрать кнопку «Войти» из окна в нижнюю панель.
По поводу Application Bar: туда выносятся до 4х ключевых действий окна. Дополнительные 3 действия могут быть вынесены в меню (могут быть и больше, однако Metro UI Guidelines не рекомендуют выносить в аппбар и меню суммарно больше 7 действий).
Еще в процессе разработки Агента мы консультировались с дизайн бюро Майкрософт в Лондоне, которые дают свои рекомендации по оформлению приложений в стиле Метро и именно они порекомендовали убрать кнопку «Войти» из окна в нижнюю панель.
0
А нафига?
+3
Надеюсь, хоть тут не будет Mail.ru защитника? :)
-1
Не могли бы вы поделиться (и мнение других WP7-разработчиков тоже интересно), какой вы используете элемент управления для отображения перечня писем?
ListBox или что-то другое? Я просто в похожей задаче (отображение перечня, правда не писем а объявлений), в данный момент использую ListBox в который просто через datacontext кидаю список объявлений.
Но мне кажется, использование листбокса для этого несколько избыточно, как минимум из-за того, что в обработчике SelectionChanged каждый раз приходится делать что-то такое
чтобы сбрасывать выбранный пользователем элемент.
Есть аналогичные решения? Чтобы закинуть список элементов и по тапу по одному из них срабатывал обработчик, и чтобы это решение было лучше листбокса?
ListBox или что-то другое? Я просто в похожей задаче (отображение перечня, правда не писем а объявлений), в данный момент использую ListBox в который просто через datacontext кидаю список объявлений.
Но мне кажется, использование листбокса для этого несколько избыточно, как минимум из-за того, что в обработчике SelectionChanged каждый раз приходится делать что-то такое
if (SearchList.SelectedItem != null)
{
SearchList.SelectedItem = null;
...
}
чтобы сбрасывать выбранный пользователем элемент.
Есть аналогичные решения? Чтобы закинуть список элементов и по тапу по одному из них срабатывал обработчик, и чтобы это решение было лучше листбокса?
+1
Есть контрол ListView.
0
Упс, рано отправил. В ListView можно ItemTemplate определить, чтобы он реагировал на нажатие. (Хоть кнопку положить туда. На халяву получите tilt-effect).
0
Мы спользуем свой класс, с расширенной функциональностью, но тоже наследуемый от ListBox.
А чем мешает выбраный пользователем элемент?
А чем мешает выбраный пользователем элемент?
0
тем, что если в результате выбор элемента пользователь переходит на новую страницу, и на ней нажимает «назад» — то если не сбросить выбор то этот элемент уже будет выбран и при повторном тапе по нему обработчик события SelectionChanged соответственно не сработает
0
Видимо проблема в том, что для обработки нажатия Вы используете SelectionChanged.
Можно использовать Триггеры. В шаблое ItemTemplate пишется следующее:
В коде ViewModel обявляется свойство:
И инициализируется делегатом:
В результате, по тапу будет вызываться делегат, в котором Вы будете получать элемент, по которому тапнули в параметре x.
Можно использовать Триггеры. В шаблое ItemTemplate пишется следующее:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<DataTemplate x:Key="mailListItemTemplate">
<Grid >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Tap">
<i:InvokeCommandAction
Command="{Binding Source={StaticResource viewModelLocator}, Path=MailListViewModel.GoToReadMail}"
CommandParameter="{Binding}" />
</i:EventTrigger>
</i:Interaction.Triggers>
...
</Grid>
</DataTemplate>
В коде ViewModel обявляется свойство:
public ICommand GoToReadMail { get; set; }
И инициализируется делегатом:
using Microsoft.Practices.Prism.Commands;
GoToReadMail = new DelegateCommand<MailViewModel>((x) =>
{
...
});
В результате, по тапу будет вызываться делегат, в котором Вы будете получать элемент, по которому тапнули в параметре x.
+2
"… пока невозможно вести и выводить логи процесса тестирования и делать скриншоты экрана прямо с устройства..."
Для скриншотов нужно использовать эту программу: Screen Capturer. Его нет в Marketplace, нужно скачать .xap и сделать деплой на устройство. По мне то это лучшая программа и наверно единственная для снятия скриншотов.
Для скриншотов нужно использовать эту программу: Screen Capturer. Его нет в Marketplace, нужно скачать .xap и сделать деплой на устройство. По мне то это лучшая программа и наверно единственная для снятия скриншотов.
+2
Чем не устраивает снятие скриншотов из эмулятора?
Мне кажется, самый оплтимальный вариант
Мне кажется, самый оплтимальный вариант
+1
Да, мы использовали Screen Capturer, как единственное (известное нам) решение. Но это скорее костыль.
Во-первых, для установки он требует девелоперского анлока (т.е. для задач бета-тесирования точно не подходит). Во вторых, это отдельное приложение, которое нужно запускать перед процессом тестирования. В третьих, фоновая задача, которая контролирует кнопку камеры может работать максимум 5 минут, после чего нужно снова перезапускать. В четвертых, после снятия скриншотов нужно заходить в приложение и сохранять их в альбом.
Когда речь идет о подготовке скриншотов для публикации в маркет — можно использовать эмулятор. А когда отдаешь устройство с установленным приложением тестировщикам, то они, конечно, негодуют, особенно после тестирования версий Мобильной Почты для iOS и Android, в которых скриншоты делаются одним двойным нажатием.
Во-первых, для установки он требует девелоперского анлока (т.е. для задач бета-тесирования точно не подходит). Во вторых, это отдельное приложение, которое нужно запускать перед процессом тестирования. В третьих, фоновая задача, которая контролирует кнопку камеры может работать максимум 5 минут, после чего нужно снова перезапускать. В четвертых, после снятия скриншотов нужно заходить в приложение и сохранять их в альбом.
Когда речь идет о подготовке скриншотов для публикации в маркет — можно использовать эмулятор. А когда отдаешь устройство с установленным приложением тестировщикам, то они, конечно, негодуют, особенно после тестирования версий Мобильной Почты для iOS и Android, в которых скриншоты делаются одним двойным нажатием.
0
А зачем делать отдельное приложение? В WP замечательный почтовый клиент со всем нужным функционалом и интеграцией, пользуюсь как раз 3-мя ящиками на Gmail и Mail.ru — всё замечательно.
+3
Брендинг. Ваш КО.
0
поддерживаю вашу мысль, но хочу отметить, что у гугла того же на андроиде есть свой клиент для почты in general и для gmail отдельно. зачастую оба клиента проверяют один и тот же ящик
0
Вопрос, на самом деле, не праздный. Действительно, хотя родной клиент и не идеален по многим показателям, зато сторонний будет лишён прелестей интеграции. И нужны более веские поводы, чем просто реализация пуш-мейла, чтобы пользователи почтового сервиса mail.ru (они же — обладатели устройств с Windows Phone) стали действительно массово пользоваться этим приложением. В статье про это ни слова, в комментариях тоже тема не раскрывается, хотя вопрос звучит не в первый раз, что только наводит на подозрения…
0
Целью статьи было не расхваливание клиента и демонстрация его возможностей и отличительных особенностей, а хотелось поделиться некоторыми техническими проблемами и решениями, с которыми пришлось столкнуться.
Но раз вопрос встал настолько остро, отвечу. Если вы пользователей различных почтовых клиентов, то функционала стандартного клиента должно хватать. Однако, если вы пользуетесь веб-интерфейсом Mail.Ru и вам приходит много писем на которые нужно быстро реагировать, то тут предлагаемый клиент имеет определенные плюсы. Они во многом обеспечены тем, что клиент использует практически тоже API, что и веб-интерфейс.
И так, преимущества:
+ как уже говорилось — мгновенные пуш уведомления о новых письмах (в то время, как встроенный клиент предлагает различные периоды времени, при этом минимум 15 минут). В том числе, если приложение лежит запущенным, и письмо приходит в открытую папку, то список писем обновляется автоматически;
+ между письмами можно переключаться жестами вправо-влево, что достаточно естественно в самой платформе, но не реализовано во встроенном клиенте;
+ такое же быстрое переключение жестами между папками, в то время как встроенный клиент позволяет делать это только через меню;
+ мгновенная синхронизация с сервером: открыли письмо в программе — на вебе оно уже помечено прочитанным, отметили непрочитанным — веб тут же отреагировал;
+ работа с флажками: не смотря на то, что при работе с другими почтовыми сервисами во встроенном клиенте есть возможность ставить звездочки (помечать письма), для работы с серверами Mail.Ru эта возможность отсутствует;
+ пометить письмо как спам из встроенного приложения нельзя;
+ встроенное приложение хранит письма за неделю (или другой указанны срок), а в представленном клиенте подгрузка писем происходит по мере необходимости и есть возможность посмотреть письма за полгода-год назад;
+ интеграция системной и серверной адресной книги: встроенное приложение предлагает вставить контакты только из локальной адресной книги, в то время как в представленном клиенте используется и локальная адресная книга и подгружается актуальная адресная книга из веба, которая автоматически пополняется адресатами, которым вы пишете.
Про опасения потерять прелести интеграции: единственное, что приходит в голову из того, что не умеет разработанный нами клиент, это показывать счетчик непрочитанных на экране блокировки. При этом количество непрочитанных писем отображается в углу тайла.
Но раз вопрос встал настолько остро, отвечу. Если вы пользователей различных почтовых клиентов, то функционала стандартного клиента должно хватать. Однако, если вы пользуетесь веб-интерфейсом Mail.Ru и вам приходит много писем на которые нужно быстро реагировать, то тут предлагаемый клиент имеет определенные плюсы. Они во многом обеспечены тем, что клиент использует практически тоже API, что и веб-интерфейс.
И так, преимущества:
+ как уже говорилось — мгновенные пуш уведомления о новых письмах (в то время, как встроенный клиент предлагает различные периоды времени, при этом минимум 15 минут). В том числе, если приложение лежит запущенным, и письмо приходит в открытую папку, то список писем обновляется автоматически;
+ между письмами можно переключаться жестами вправо-влево, что достаточно естественно в самой платформе, но не реализовано во встроенном клиенте;
+ такое же быстрое переключение жестами между папками, в то время как встроенный клиент позволяет делать это только через меню;
+ мгновенная синхронизация с сервером: открыли письмо в программе — на вебе оно уже помечено прочитанным, отметили непрочитанным — веб тут же отреагировал;
+ работа с флажками: не смотря на то, что при работе с другими почтовыми сервисами во встроенном клиенте есть возможность ставить звездочки (помечать письма), для работы с серверами Mail.Ru эта возможность отсутствует;
+ пометить письмо как спам из встроенного приложения нельзя;
+ встроенное приложение хранит письма за неделю (или другой указанны срок), а в представленном клиенте подгрузка писем происходит по мере необходимости и есть возможность посмотреть письма за полгода-год назад;
+ интеграция системной и серверной адресной книги: встроенное приложение предлагает вставить контакты только из локальной адресной книги, в то время как в представленном клиенте используется и локальная адресная книга и подгружается актуальная адресная книга из веба, которая автоматически пополняется адресатами, которым вы пишете.
Про опасения потерять прелести интеграции: единственное, что приходит в голову из того, что не умеет разработанный нами клиент, это показывать счетчик непрочитанных на экране блокировки. При этом количество непрочитанных писем отображается в углу тайла.
+2
За столь подробный и обстоятельный ответ — спасибо! Вы правы в том, что ресурс здесь — практически сугубо IT-шный, но тем не менее, тема WinPhone вообще и приложений к нему в частности настолько актуальна, что без преувеличения можно сказать, вызывает повышенный интерес у всех посетителей, даже не прописанных на форуме. Поэтому вопрос о том, зачем вообще понадобилось тратить столько сил на создание отдельного клиента, если и штатный, по уверениям разработчиков, прекрасен, интересует практически всех. ПМСМ, будет хорошо добавить ссылочку на этот ваш пост с разъяснениями в тело публикации.
Про интеграцию — да, будут потеряны уведомления на экране блокировки, что обидно. Не будет возможности объединять папки «входящие», что менее обидно, но тем не менее… Чуть изменённый внешний вид у этого приложения по отношению к стандартному будет вызывать когнитивный диссонанс при необходимости работать параллельно с несколькими аккаунтами разных провайдеров — а вот это уже, пожалуй, самое серьёзное. Я знаю достаточно много людей, которые на Android всегда настраивают gmail-аккаунт еще и в общем почтовике, чтобы было удобнее работать со всеми письмами одинаково, хотя само приложение Gmail весьма не плохо сделано. Так что тут напрашивается в вашем приложении реализовать возможность настройки других POP3/IMAP аккаунтов, чтобы в едином поле можно было бы работать с несколькими почтовыми адресами.
Про интеграцию — да, будут потеряны уведомления на экране блокировки, что обидно. Не будет возможности объединять папки «входящие», что менее обидно, но тем не менее… Чуть изменённый внешний вид у этого приложения по отношению к стандартному будет вызывать когнитивный диссонанс при необходимости работать параллельно с несколькими аккаунтами разных провайдеров — а вот это уже, пожалуй, самое серьёзное. Я знаю достаточно много людей, которые на Android всегда настраивают gmail-аккаунт еще и в общем почтовике, чтобы было удобнее работать со всеми письмами одинаково, хотя само приложение Gmail весьма не плохо сделано. Так что тут напрашивается в вашем приложении реализовать возможность настройки других POP3/IMAP аккаунтов, чтобы в едином поле можно было бы работать с несколькими почтовыми адресами.
0
У Пушкина должен быть другой адрес — простой и запоминающийся.
Как минимум, pushkin@mail.ru.
Как минимум, pushkin@mail.ru.
+1
Теперь спам и зараза в виде спутников, гуардов и майл агентов будет еще на WP платформе… — мрак
-2
Идиоты, прости Господи. Лучше бы веб-версию адаптировали. Нафига нам ваше приложение если а) почту можно добавить в стандартный интерфейс почты; б) все используют её для спама?
-3
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Почта Mail.Ru под WP7: разработка, крупный план