Windows Phone 7: Впечатления и начало разработки.
- modified:
- reading: 5 minutes
Около месяца назад приобрел себе мобильный телефон под управлением Windows Phone 7 (7.1 Mango который). Мобильный телефон взял Samsung Focus S у мобильного оператора ATT. Честно, устройство очень радует. Сама система WP7 тоже доставляет только одни удовольствия. И, конечно же, сразу же захотелось что-нибудь написать под платформу. Тем более, что все на знакомом Silverlight. В общем, ближайшие, не знаю пока сколько, постов в моем блоге будут о Windows Phone 7, а точнее о разработке под него, а точнее о разработке Silverlight приложений под него. Начать же хочу с впечатлений о платформе и процессе разработки.
Сама платформа и телефон
Размер экрана у мобильного телефона 4.3”. Когда я видел такие телефоны в чужих руках, я только усмехался, кому нужна такая лопата. После использования своего телефона все эти 3.7 дюймовые экраны кажутся такими мелкими и неудобными. Привыкаешь очень быстро. Сама платформа тоже, по моему мнению, требует не маленький экран, так как по дизайну очень много используется мелких шрифтов, и при использовании экрана с меньшей диагональю иногда приходиться напрягаться, чтобы что-то прочитать, особенно людям с не идеальным зрением. Само собой в самой платформе и в телефоне есть мелкие недочеты. Но где их нет.
Есть правда и один момент, который я не понял. Точнее не понял, зачем сделано именно так. Я это о принципе The Launching Event:
The Launching event is raised when a new application instance is launched by the user from the installed applications list or from a Tile on Start in addition to other means, such as tapping on a toast notification associated with an application or selecting an application from the Photos Extras menu. When an application is launched this way, it should appear to the user to be a new instance, not a continuation of a previous instance.
Почему с главных экранов всегда должен запускаться новый экземпляр приложения? Вот эти лишние движения с Back клавишей мне не понятны. Иногда, я просто не помню, сколько там приложений я запускал от того, которое мне нужно на данный момент, и я буду только безумно рад, если, когда я на него зайду с главного экрана, то он мне покажет что-то, что я должен был сохранить или что я там еще не дочитал. Мне удобнее переходить на приложения именно с главного экрана, а не Back клавишами. Мне так будет быстрее. В общем, странный этот момент. Я, конечно же, представляю, почему это сделано именно так, чтобы у пользователей не было вопросов, почему иногда я захожу с главного экрана, и у меня открывается новый экземпляр приложения, а иногда то, что уже было открыто. Ведь никто не может вам гарантировать, сколько ваше приложение продержится в background.
С чего начать разработку?
С этого Fundamental Concepts for Windows Phone. Не нужно начинать со всяких там 10/20/40 дней с Windows Phone 7, так как они не объясняют основных принципов, как нужно разрабатывать приложения под Windows Phone 7. Да, и я не хочу никого обидеть, статьи бесспорно интересные и полезные, я так, например, из-за желания как можно быстрее сесть за платформу, именно с них и начал, пролистал быстренько и сел писать приложения (спасибо ребятам!). Но все же вопросов возникало очень много, из-за чего я ни один раз возвращался к MSDN. Поэтому ИМХО 0 день должен начаться с основ на MSDN, а потом быстрое ознакомление с платформой через эти статьи.
Так же мое ИМХО – эмулятор – это хорошо, но без телефона сложно что-то разрабатывать. Приложения ощущаются в эмуляторя и на телефоне совсем по разному.
Как разрабатывать?
MVVM, как обычно? Без особого фанатизма! На глаза мне попадались некоторые базовые библиотеки с всякими базовыми ViewModelBase, но мне они особо не понравились (WP7Contrib, Phone7.Fx). Самое забавное, что такое чувство, что авторы этих библиотек даже и не читали об основах разработки под Windows Phone 7. Где хоть у кого-нибудь какое-нибудь использование State страниц? Ведь, чтобы написать действительно интересное приложение, без него просто тяжело обойтись (ну мне так кажется). Как раз до того, как я прочитал основы разработки под Windows Phone 7, я уже сам реализовал что-то похожее на State приложения (до реализации State для страниц просто времени не хватило, ну и вовремя взялся за MSDN).
Нужно понимать, что платформа, на которой будет работать ваше приложение намного медленнее обычных компьютеров и с ней нужно быть намного аккуратнее. Зачем этим переписанные библиотеки от Silverlight для Windows Phone? Вы хотите написать такое громоздкое приложение для WP? Вы точно выбрали ту платформу?
Как уж повелось приходиться довольствоваться кучей необходимых и недоработанных контролов из Toolkit. К этому я уже привык еще с Silverlight, поэтому я был не удивлен таким количеством проблем с контролами из Toolkit. Еще немного подкидули с Code4Fun.
Приложения и основные ошибки разработчиков приложений
По акции получил 25$, которые могу потратить на приложения в marketplace. Честно, было только одно приложение, которое я захотел купить. Игры сразу отпали, так как интересуют они меня чисто из-за любопытства, а особо я в них не играю. И это приложение было mehdoh, твиттер клиент. Я все бегал между rowi и mehdoh, но все же выбрал в итоге mehdoh, так как оно мне показалось более зрелым. Так, приложений у меня установлено достаточно много. И, более того, постоянно в голову приходят какие-то необходимые функции, которые пытаешься найти в уже существующих приложениях. Но, найти действительно стоящее приложение очень сложно. Здесь, конечно же, играет еще роль тот момент, что тебе кажется, что «вот сяду и напишу все прям как нужно». Хотя разумом понимаешь, что напишешь ни чем не лучше. Но вот эта мысль «что я написал бы лучше» не покидает никогда.
Очень сильно раздражает неаккуратное использование клавиши Back. Когда при помощи нее заходишь обратно на экран Login, либо при помощи нее возвращаешься на настройки какие-нибудь. Нужно же понимать, что есть такие страницы, на которые можно переходить только вперед и уходить с них можно только назад.
Проблем у текущих приложений много, и падают, и не продуманы из-за незнания платформы, и проблемы дизайна. Стараюсь писать feedback особо понравившимся приложениям. И в голове уже куча идей для приложений. Присоединятесь к платформе!
P.S. Я написал пока одно очень-очень простое приложение, загрузил в marketplace, но пока не опубликовали.