Советы по публикации Windows Phone 7 приложений в Marketplace. Часть 1
На недавних Ciklum .NET субботниках я рассказывал о своем опыте публикации приложений в Маркетплейс. Это текстовая версия презентации, которую можно будет посмотреть / скачать внизу статьи.
Ресурсы
С чего начать:
- AppHub - центральная точка входа всех Windows Phone 7 разработчиков;
- Channel9, MIX11, wp7rocks.com, w7phone.ru
- Книга Петцольда «Programming Windows Phone 7» (10 книг по Windows Phone 7)
- тренинги от Pluralsight
- статьи по Windows Phone 7 на русском
Теперь приступим к разработке.
Разработка приложений
1. Можно использовать Silverlight компоненты
Все библиотеки, которые используются в Windows Phone 7 приложениях, должны быть скомпилированы в Windows Phone 7 среде, обыкновенные dll не подойдут. Но можно использовать Silverlight библиотеки - в таком случае при ее добавлении в проект Visual Studio выдаст предупреждение о возможной несовместимости, но добавить библиотеку позволит.
2. Только асинхронные вызовы при работе с Интернетом
Вся работа с Интернетом является асинхронной, что усложняет тестирование приложений. Нужно помнить, что многие классы лишены синхронных методов по умолчанию. Это сделано специально для того, чтобы обезопасить пользователя от зависших приложений, длительных процессов и, как результат, его недовольства. Думаю, с приходом асинхронного C# 5 процесс разработки упростится.
Соответственно, после получение данных вам необходимо отобразить данные на экране в основном потоке. Для этого есть класс Dispatcher:
Dispatcher.BeginInvoke( () => { /* ui update code */ } );
3. Ограничения на элементы управления
Все элементы управления не могут иметь размер больше чем 2048x2048 пикселей. Поэтому, например, при отображении мало-мальски большого текста с помощью элемента TextBlock, вы увидите, что он обрезается без уведомления или исключения. Причина также банальна - производительность. Если вы начнете загружать в текстовый блок последнюю книгу Донцовой, то, наверянка, телефон на всеря просто "зависнет". При таком положении дел пользователь будет огражден от проблем. Есть много workaround как обойти это ограничение.
4. Окно about, feedback
Каждое приложение должно иметь окно (попап) с информацией о авторах приложения и контактных данных. Также желательно иметь кнопку Send Feedback.
5. Кнопка Back и сохранение состояния
Кнопке Back приделяют очень большое внимание. Поэтому нужн соблюдать такие правила:
- пользователь должен по кнопке Back выйти на начальное положение в не зависимости от того, как долго он бродил по вашему приложению;
- не должно быть зацикливаний;
- пользователь нажав Back может случайно (или не случайно) выйти из вашего приложения, поэтому очень важно корректно обрабатывать следующий вход пользователя;
- также может быть ситуация, когда телефон вошел в спящий рещим и при следующем его использовании приложение окажется в режиме "холодного старта". Очень важно протестироваь такие сценарии и не получить исключение;
- часто решением проблемы с входом / выходом из приложения является сохранение состояния (например, в IsolatedStorage).
6. Эмулятор != реальное устройство
Как бы нам этого не хотелось, но эмулятр не является 100% телефоном. Причины следующие:
- интернет-канал может подтягиваться из рабочей машины, в реале таких каналов нет;
- библиотеки могут подниматься в GAC, т.е. на эмуляторе все ок, но на телефоне не хватает каких-либо библиотек (сам не сталкивался, так что проверить 100% не могу);
- аудио при подсоединенном телефоне на девайсе проигрываться не будет;
- нет возможности протестировать акселерометр, GPS и т.д. (будет в Mango).
также необходимо заметить, что эмулятор очень долго "поднимается" первый раз, потом работает более или менее шустро. Но если у вас есть телефон, то процесс отладк бедт намного быстрее.
Дизайн
1. Design guide – must read! Metro style for all!
При разработке дизайна используется стиль Метро. Его необходимо и придержтиваться. Microsoft сделала невозможное - даже не-дизайнеры могут создавать симпатичные и простые в использовании приложения.
2. Иконки 6262, 9999, 173173, 200200, pinned icons, нельзя использовать стандартную иконку
Для того, чтбы ваше приложение приняли, необходимо создать несколько иконок: 6262, 9999, 173173, 200200. Каждая из них имеет свое предназначение:
- Small mobile app tile artwork (required) / In the phone Marketplace catalog / 99 x 99 / PNG;
- Large mobile app tile artwork (required) / In the phone Marketplace catalog / 173 x 173 / PNG;
- Large PC app tile artwork (required) / In the PC Marketplace catalog / 200 x 200 / PNG;
- Background art (optional) / Background panorama / 1000 x 800 / PNG;
- 62*62 используется в общем списке приложений вашего телефона.
Есть также несколько правил по созданию зоопарка иконок:
- нельзя использовать стандартную иконку;
- все иконки должны быть в одном стиле (т.е. они могут отличаться, но не намного)
3. Отступы 12 пксл
12пк - стандартные отступы элементов управления, необходимо придерживаться этого отступа. Если какой-то заголовок не помещается на экран - можно позволить ему выйти за границы или уменьшить шрифт.
4. Белая & черная темы, яркие цвета
Телефон под управлением Windows Phone 7 может иметь две темы: светную и теную + различные цвета хрома. Иконки необходимо делать универсальными, то же самое касается фона и других элементов. О цветовых темах читаем здесь.
5. Pivot vs. Panorama
И пивот и панорама имеют одинаковый функционал, отличие лишь в том, что панорама подразумевает использование фонового изображения. Нужно проверить, что изображение не будет мешать воспринимать информацию. Но также необходимо заметить, что пивот работает чуточку быстрее.
Панорама:
Пивот:
6. Не затемнять текст, который не помещается
Вместо этого просто позвольте тексту выйти за рамки экрана.
P.S. Презентация доступна здесь.
Компании из статьи
Ciklum
|
Ciklum - это датская компания предоставляющая услуги аутсорсинга в сфере разработки програмного обеспечения. Мы занимаемся созданием и поддержкой професиональных команд, работающих для клиента.В Ciklu... |
Microsoft Украина | Украинское подразделение компании Microsoft. |