Блог Сергея Байдачного

Мой блог о технологиях

Archive for Июнь 2010

Начинаем разрабатывать для Windows Phone 7: Настройка клавиатуры

with one comment

Чтобы почувствовать дух Windows Phone 7 и посмотреть на различия в подходах построения обычных Silverlight- и Windows Phone приложений, рассмотрим несколько небольших примеров.

Пример 1. Управление клавиатурой

Начнем с простого элемента управления TextBox, который позволяет вводить текст. В обычной реализации этот элемент ничем особым не выделяется. Но если говорить о Windows Phone 7, то вопрос ввода очень существенен. Так, двигаясь со скоростью 130-160 км/ч, мне очень затруднительно делать ввод данных на наших дорогах. Поэтому моим простым желанием является то, чтобы клавиатура содержала только тот набор элементов, который нужен мне в данном контексте. То есть, если я ввожу телефонный номер, то я должен видеть только цифры, а если я переписываюсь в месенджере, то мне необходимы не только буквы, но и специальные символы. В идеале я бы хотел иметь и проверку орфографии. Все эти возможности в Windows Phone 7 присутствуют. И если проверка орфографии выполняется автоматически, то управлять клавиатурой при вводе текста можно с помощью простого свойства InputScope элемента TextBox.

Ниже показан простой пример, «настраивающий» элемент TextBox для ввода электронного адреса:

<TextBox>
    <TextBox.InputScope>
        <InputScope>
            <InputScopeName NameValue="EmailUserName"></InputScopeName>
        </InputScope>
    </TextBox.InputScope>
</TextBox>

 

В результате на экране будет появляться следующая клавиатура:

clip_image002

@17.4 Ввод электронного адреса

 

Подобный код можно реализовать и программно, настраивая элементы TextBox динамически:

 

txtBox.InputScope = new InputScope()
{
    Names = 
    {
        new InputScopeName()
        {
            NameValue = InputScopeNameValue.EmailUserName
        }
    }
};
Реклама

Written by Sergiy Baydachnyy

24.06.2010 at 10:23

Опубликовано в SilverLight, Windows Phone

Tagged with

Начинаем разрабатывать для Windows Phone 7: Первое приложение

2 комментария

Итак, установив все необходимое, можно приступить к созданию первого приложения для Windows Phone 7 на Silverlight. Я буду во всех примерах использовать полноценную версию Visual Studio, но Express Edition ничем особым не отличается.

После установки Windows Phone утилит, у Вас появляется несколько шаблонов:

clip_image002

@17.1 Создание Windows Phone приложения

Часть шаблонов находится в разделе Silverlight for Windows Phone, а часть в разделе XNA Game Studio 4.0.

Первые приложения мы будем создавать на основе Windows Phone Application шаблона. Тут достаточно ввести имя приложения и нажать ОК.

Проект, который будет создан в результате, очень напоминает обычный проект на Silverlight. Естественно, имеются несколько отличий. Так, файл App.xaml содержит набор предопределенных ресурсов, о которых мы поговорим позже. А вместо UserControl используется PhoneApplicationPage, имеющий в режиме дизайнера вид настоящего телефонаJ

clip_image004

@17.2 Создание Windows Phone приложения

Visual Studio позволяет не просто создавать проекты и редактировать код, но и заниматься отладкой Windows Phone приложений. Причем, несмотря на отсутствие устройств, Visual Studio предлагает развернуть приложение в эмуляторе или на действующее устройство, которое можно будет подключать через USB. Если говорить о дизайнере интерфейса, то тут поддерживается визуальное редактирование (хотя это не особо нужно).

В первоначальном виде приложение уже готово к запуску в эмуляторе. Попробуйте запустить его и через пару минут Вы сможете увидеть картину с рисунка ниже:

clip_image006

@17.3 Запуск эмулятора

Первый запуск эмулятора действительно занимает много времени. Это связано с тем, что запускается своеобразная виртуальная машина. Поэтому, чтобы при каждом изменении не терять уйму времени, просто не закрывайте эмулятор – Visual Studio автоматически обновит Ваше приложение при очередной компиляции и выполнить его перезапуск (это занимает несколько секунд).

Внесем изменения в код. Для этого внутренний элемент Grid заменим на следующий код:

<StackPanel x:Name="ContentGrid" Grid.Row="1">
    <Button Content="Say Hello" Click="Button_Click"></Button>
    <TextBlock Text="" Name="txtHello"></TextBlock>
</StackPanel>

В качестве обработчика событий пропишем код на C# (пока поддерживается только C#):

private void Button_Click(object sender, RoutedEventArgs e)
{
    txtHello.Text = "Hello";
}

В результате мы получим приложение, отображающее кнопку и сообщение «Hello» при нажатии на кнопку.

Таким образом, Silverlight-разработчики пока не найдут ничего нового, исключая новый элемент PhoneApplicationPage, который является реализацией Page для Windows Phone, но об этом позже.

Written by Sergiy Baydachnyy

23.06.2010 at 13:32

Опубликовано в SilverLight, Windows Phone

Tagged with

Начинаем разрабатывать для Windows Phone 7: утилиты

8 комментариев

Судя по всему, Windows Phone 7 будет запущен в Украине в декабре 2010, то есть вместе с американским рынком. Это будет телефон с англоязычным интерфейсом и без доступа к Windows Marketplace. Если говорить о России, то там не будет даже англоязычной версии, до тех пор, пока не появится поддержка кириллицы. Зато, наличие моделей на рынке Украины, позволит разработчикам тестировать свои приложения уже в декабре. Что касается рынков, то нам не привыкать зарабатывать на европейском или североамериканском рынкахJ Поэтому возникает логичный вопрос: когда можно будет приступить к созданию приложений для Windows Phone 7?

Несмотря на то, что финальную версию утилит для разработчика обещают к октябрю, начинать исследовать Windows Phone 7 Вы можете уже сегодня. Сайт http://developer.windowsphone.com предлагает для этого все необходимое, включая эмулятор платформы. Как уже было сказано выше, создавать приложения под Windows Phone 7 можно с помощью Visual Studio 2010 или его бесплатного аналога Visual Studio 2010 Express для Windows Phone. Проекты можно редактировать и в Expression Blend, но последний пока не содержит шаблонов, позволяющих создать проект прямо в Blend (это временное явление).

Естественно, что эмулятор, который поставляется вместе с Windows Phone утилитами, не позволяет использовать весь функционал, доступный на Windows Phone. Так, достаточно сложно эмулировать акселерометр (даже невозможно), а MultiTouch можно проверять, имея соответствующий монитор на рабочей станции (кто-то писал о возможности эмулировать мултитач с помощью MultiPoint – не верьте. Интерфейс Windows Phone рассчитан на работу с пальцами рук, а несколько мышек могут дать немного другой эффект) и т. д. Несмотря на это, большой спектр приложений можно разрабатывать уже сейчас, используя действующий эмулятор. Нужно отметить, что первая версия эмулятора (март 2010) была крайне урезанной и не позволяла воссоздать весь жизненный цикл приложения. Новая версия утилит для Windows Phone (май 2010) содержит эмулятор, позволяющий использовать объектную модель Windows Phone в полной мере.

Итак, чтобы приступить к созданию Windows Phone 7 приложений, откройте http://developer.windowsphone.com и установите все необходимые утилиты.

Written by Sergiy Baydachnyy

23.06.2010 at 11:35

Опубликовано в SilverLight, Windows Phone

Tagged with

Начинаем разрабатывать для Windows Phone 7: что такое Windows Phone 7

5 комментариев

Наверняка все слышали о платформе от Microsoft для мобильных устройств – Windows Mobile. Являясь обладателем телефонов на этой платформе вот уже пять лет, могу сказать, что Windows Mobile идеальна для бизнес телефонов. Но если говорить о телефонах для рядового пользователя, то тут Windows Mobile проигрывает по всем параметрам, тем более что платформа проектировалась в конце 20-го века. Да и разработчикам с производителями телефонов она доставляет массу проблем. Так, интерфейс Windows Mobile включает элементы, которые не адаптированы для работы с использованием Touch технологий. Поэтому, если компании-разработчики телефонов, хотели выпустить новое устройство с поддержкой Touch, то им приходилось вкладывать ресурсы в создание новой оболочки поверх Windows Mobile. Рядовым же разработчикам приходилось прибегать к созданию неуправляемого кода на С++, так как именно таким образом, можно было достигнуть максимальной производительности. Наконец, распространение приложений под Windows Mobile ложилось на плечи самих разработчиков. Учитывая размер рынка Windows Mobile и ориентацию телефонов на бизнес пользователя, разработкой под эту платформу могли заниматься только большие компании. В конечном итоге весной 2010 года было объявлено о том, что Windows Mobile «умер». Естественно, что Microsoft будет еще долгое время поддерживать устройства на платформах Windows Mobile 6.x, но, учитывая время жизни мобильных устройств, можно забыть об этих платформах. Так Visual Studio 2010 уже не поддерживает разработку для Windows Mobile.

Отказ от платформы Windows Mobile вовсе не означает, что Microsoft уходит с рынка мобильных устройств. Скорее наоборот, Microsoft пытается показать, что этот рынок интересен и в ближайшее время там многое изменится. И первые изменения, которые предстоит опробовать пользователям – выход новой платформы для мобильных устройств Windows Phone 7.

Windows Phone 7 представляет собой абсолютно новую платформу, ориентированную как на корпоративный сегмент, так и на «обычных» пользователей. Платформа была спроектирована полностью с нуля и должна предоставить новые возможности для пользователей и разработчиков.

Мы не будем говорить о пользователях, пусть они сами оценивают новые устройства. А вот, что касается разработчиков, то тут можно выделить несколько нововведений:

· Разработка приложений для Windows Phone 7 унифицирована для всех устройств;

· Разработчики получают новые инструменты и технологии;

· Изменена модель распространения приложений;

Давайте поговорим о каждом из нововведений отдельно.

Итак, теперь разработчик не должен думать о модели устройства, разрабатывая то или иное приложение. Несмотря на то, что телефоны на базе Windows Phone будут создавать различные компании (LG, Samsung и др.), Microsoft выдвигает достаточно жесткие требования к устройствам. Так, все телефоны, построенные на платформе Windows Phone 7, будут обладать следующими характеристиками:

· Обязательное наличие трех кнопок на передней панели телефона (Поиск, Старт, Назад). Наличие этих кнопок обусловлено исследованиями, связанными с удобством интерфейса для пользователя. Естественно, что каждый производитель сможет добавить свои кнопки, включая полноценную клавиатуру;

· Разрешение экрана 800 на 480. Стандартизация разрешения – одно из самых важных нововведений для разработчика. Ведь это существенно облегчит задачи создания интерфейсов;

· Наличие Wi-Fi. Как не странно, но большинство телефонов на альтернативных платформах, которые я видел на нашем рынке, не содержат этого модуля;

· Наличие камеры не менее 5 мПк со вспышкой. Взаимодействие с друзьями в социальных сетях требуют наличия хорошей камеры. В бизнес версиях телефонов этому совсем не уделяли внимания, но Windows Phone 7 – телефон для пользователей;

· Наличие акселерометра. С помощью этой функциональности можно разрабатывать большое количество интересных игр;

· Поддержка вибрации и цифрового компаса;

· Распознавание и синтез голоса. Идея состоит в том, что независимо от реализации данного механизма тем или иным производителем, разработчик всегда будет иметь доступ к единому API;

· Определение местоположения. На сегодняшний день местоположение можно определить с помощью модуля GPS, по параметрам Wi-Fi сети или пользуясь информацией из сети оператора. Каждый из способов обладает преимуществами и недостатками, именно поэтому Windows Phone 7 будет поддерживать все три механизма. Разработчику будет доступен специальный API, позволяющий задавать точность определения местоположения и другие параметры. Платформа будет определять наиболее простой и доступный механизм, возвращая данные через единый интерфейс;

· Все телефоны будут поддерживать аппаратное ускорение для графического чипа, который будет поддерживать DirectX.

Все эти требования позволяют разработчику использовать богатый аппаратный функционал телефона, не вдаваясь в детали той или иной модели.

Перейдем теперь к технологиям разработки программного обеспечения. Основная новость для разработчиков в том, что приложения для Windows Phone 7 можно создавать на одной из двух технологий: XNA или Silverlight. Больше никакого С++ и неуправляемого кода. Естественно, что Silverlight используется для создания интерфейсов различного типа приложений, тогда как XNA используется только для создания игр. При этом разработчик может использовать как платную версию Visual Studio 2010, так и бесплатный аналог Visual Studio 2010 Express для Windows Phone. Тут начинается самое интересное, так как технология Silverlight значительно лучше воспринимается современным разработчиком и позволяет создавать сложные интерфейсы без существенных затрат. В первом релизе Windows Phone 7 планируется использовать оптимизированную версию Silverlight 3, а в следующих версиях перейти к унифицированной версии Silverlight для всех платформ (c Silverlight 5). Несмотря на то, что используется Silverlight 3, разработчик не будет особо ущемлен в возможностях. Так, Silverlight 4 предлагает много возможностей для работы приложений вне браузера, но для Windows Phone 7 эти нововведения не существенны, так как все Silverlight-приложения на этой платформе работают вне браузера! Более того, в первом релизе Windows Phone 7 пользователи не смогут работать с Silverlight-приложениями, которые размещены в Интернет на различных сайтах и доступны через браузер. Иными словами, Silverlight-приложение должно быть установлено на Windows Phone непосредственно. Еще одним полезным нововведением Silverlight 4 является наличие элемента WebBrowser, который отсутствует в Silverlight 3. Между тем, этот элемент присутствует в списке компонент самой платформы Windows Phone 7 и может быть использован Silverlight-приложением.

Наконец перейдем к вопросу распространения приложений. Тут модель стала похожа на ту, которую предлагает компания Apple для своих устройств iPhone. Иными словами, приложение можно будет установить только с Windows Marketplace, интерфейс к которому интегрирован в Windows Phone 7. С одной стороны тут есть негативная сторона: большие компании, уже завоевавшие часть рынка, вынуждены конкурировать с решениями от рядовых разработчиков, полностью приспособившись к новой модели. С другой стороны тут есть много преимуществ для небольших компаний и рядовых разработчиков: теперь каждый сможет зарабатывать деньги, разместив свое приложение на Windows Marketplace, а Microsoft берется гарантировать непрерывный доступ к приложениям, тесно интегрируя механизм работы с Marketplace в Windows Phone 7. Возможность заработать деньги даже рядовому разработчику, должна создать большое сообщество вокруг Windows Phone, которое предоставит на рынок большой спектр различных приложений, а, следовательно, гарантирует успех. Действительно, можно много говорить о достоинствах или недостатках Windows Phone 7, а можно попробовать реализовать свой потенциал, приступив к разработке приложений на уже знакомых технологиях.

Written by Sergiy Baydachnyy

23.06.2010 at 10:06

Опубликовано в SilverLight, Windows Phone

Tagged with

Live Smooth streaming

with one comment

На протяжении последних двух лет, я получаю вопросы от партнеров о том, как организовать Live Smooth Streaming.

Так, целых 2 года, Microsoft продвигает технологию Smooth Streaming. Идея технологии состоит в том, чтобы преобразовать видео в специальный формат, содержащий несколько потоков, расчитанных на разные каналы. С помощью специального модуля в IIS, файлы в формате Smooth можно транслировать в Веб. При этом, пользователю будет отображаться фрагмент (например, фрагменты по 2 сек.) в том качестве, которое он способен принять. Причем, на выбираемый фрагмент оказывает влияние как скорость канала, так и возможность процессора пользователя отобразить видео (не секрет, что на атомах видео в хорошем качестве идет не очень).

Итак, если у вас есть библиотека записанного видео, то с помощью Expression Encoder Вы можете его преобразовать в формат Smooth, выбрав количество потоков и их параметры, а затем транслировать все это с помощью модуля Smooth Streaming через IIS.

Однако, многие партнеры хотят работать именно с живым видео. Сегодня на многих порталах можно увидеть трансляции конференций, футбольных матчей и т. д. Транслировать футбольный матч в записи не интересно, так как смотреть его уже никто не будет.

Казалось бы, что в IIS уже все готово для трансляции Live Smooth. Так, вместе с модулем Smooth Streaming успешно устанавливался и Live Smooth Streaming.

Проблема в том, что последний принимает уже готовый поток в формате Smooth. Но Expression Encoder 3 (как и Windows Encoder) не позволяют преобразовывать живое видео в формат Smooth. Существующие реализации Live Smooth используют специальное оборудование (например, такое оборудование использовалось на зимних олимпийских играх). Подобное оборудование достаточно дорогое (от 15 000 долларов за сервер) и не продается в Украине.

Поэтому ответ о возможности трансляции Live Smooth был – нет.

Но вот, три дня назад, случилось чудо. В Майкрософт посчитали, что партнеры, выпускающие сервера, уже достаточно насытились и выпустили новый Encoder (4-ю версию), которая поддерживает Live Smooth!!!

image

Теперь с уверенностью можно сказать, что IIS 7.5+Encoder 4 позволяют реализовать любые сценарии. Ну а Silverlight – разработать любой интерфейс. Конкурентов этой тройке просто нет (как по функциональности, так и по стоимости решения).

Наслаждайтесь!

Written by Sergiy Baydachnyy

15.06.2010 at 10:01

Опубликовано в SilverLight

Tagged with , ,