Pull to refresh
67
0
Егор @Nagg

Разработчик немобильных приложений

Send message

Как написать своё VoIP-приложение с работой в фоне под Windows Phone

Reading time 6 min
Views 16K
В этой статье я бы хотел рассказать о том, как в минимум усилий написать своё простое VoIP-приложение с бэкэндом и работой в фоне на платформе Windows Phone 8.

До выхода Windows Phone 8 пользователей voip-приложений очень разочаровывала работа в фоне, которая, собственно, практически отсутствовала — максимум из того, что могли сделать разработчики, чтобы показать пользователю входящий звонок пока приложение в бэкграунде — это показать toast notification, который слабозаметен, еле слышен и быстро исчезает. С одной стороны, это не позволяло поедать батарейку как если бы приложение работало полноценно в фоне, но с другой — делало его малополезным инструментом. До выхода WP8, Microsoft подогревала интерес публики к новой версии платформы обещаниями интегрировать Skype в операционную систему и работу в фоне. Что ж, обещания они свои выполнили — теперь стало возможно:

  • инициировать звонок на Skype через контактную книгу телефона
  • продолжать разговор по Skype даже если вы целенаправленно или случайно свернете приложение (раньше если при разговоре вы случайно заденете кнопку поиска — разговор обрывался)
  • и самое интересное: принимать входящие звонки с интерфейсом а-ля обычный gsm-звонок в условиях когда Skype не запущен (не в foreground) и более того — он в фоне ничего не делает (не поедает батарейку)

Microsoft не стало делать это эксклюзивными возможностями (кроме интеграции в контактную книгу) для своего продукта и открыло API, что дает возможность сторонним разработчикам реализовывать такие же сценарии, не будучи при этом привилегированным партнером (как было в WP7 с native sdk). И хотя так же красиво интегрироваться в контактную книгу не получится — можно воспользоваться ContactStore и Protocol handlers, чтобы изменить в контакте поле URL и сделать открытие приложение по клику).

В конце статьи приложены исходники двух проектов: один из них пример Microsoft Chatterbox, в котором объясняется, как работают бэкграунд процессы с симуляцией бэк-энда с входящими звонками и даже с видео; второй — мой проект с простым бэкэндом, который позволяет общаться по voip на двух устройствах и использует voip push notifications, но обо всем по порядку.


Читать дальше →
Total votes 42: ↑34 and ↓8 +26
Comments 9

Шаблон проектирования «Спецификация»

Reading time 4 min
Views 62K
Предпринимая попытки постичь DDD вы наверняка натолкнетесь на этот паттерн, который часто тесно используется вместе с другим, не менее интересным, паттерном «Репозиторий». Этот паттерн предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации не дублируя запросы.

Пример


Давайте для примера спроектируем домен для простого группового чата: у нас будут три сущности: Группа и Пользователь, между которыми связь многие-ко-многим (один пользователь может находиться в разных группах, в группе может быть несколько пользователей) и Message представляющий собой сообщение, которое пользователь может написать в какой-либо группе:
Читать дальше →
Total votes 31: ↑26 and ↓5 +21
Comments 64

Забавные баги и особенности в Visual Studio и .NET

Reading time 2 min
Views 42K
image
В этой небольшой статье хотел бы с вами поделиться парой забавных багов (или особенностей) Visual Studio\.NET и возможно услышать от вас о некоторых других. Конечно же самих багов в вышеупомянутых продуктов на самом деле было (есть) много и найти их можно на специализированном сайте connect.microsft.com. Я же хотел рассказать о самых забавных на мой взгляд.
И так, начнем
Total votes 72: ↑60 and ↓12 +48
Comments 42

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Registered
Activity