LiteCoding

Заметки о программировании

Архив по тэгу ‘Symbian’

Союз Nokia и Microsoft с точки зрения разработчика

без комментариев

Говорят, у китайцев есть проклятие, которое в переводе звучит «Чтоб ты жил в эпоху перемен». Насколько причастна к этому сама Поднебесная, не знаю, но мудрость такого высказывания сложно переоценить. Итак, дамы и господа, свершилось. Теперь Nokia будет выпускать телефоны на Windows Phone 7.

Быть может, это послужит возвращению Nokia как лидера рынка или окончательно похоронит финского гиганта, трудно сказать наверняка. Но одно можно сказать прямо сейчас, ничем не погрешив против истины: дорогие разработчики, приехали!

Свершилось! Последние два года непонятных метаний дали плоды, которые придется пожинать вам (точнее, нам, уж коль скоро я ваш коллега). У нас был Symbian C++, который довольно непрост для понимания, и платформа Symbian. Мы выучили многие особенности платформы, как в начальной школе учат таблицу умножения. Мы продрались сквозь огромное количество API без нормальной документации. Мы познали мир, и как-то приспособились в нем жить и творить.

Потом нас перенацелили на Qt, и это позитивный момент. Конечно, Qt C++ имеет массу своих особенностей, но разработчик должен учиться всю жизнь, ведь научно-технический прогресс не стоит на месте. И дальнейшая жизнь с Qt выглядела очень обнадеживающе и перспективно, если учесть «дружбу» с Intel на почве MeeGo и строительства мобильной экосистемы.

И вот на данный момент мы имеем огромное количество старых телефонов с Symbian S60, несколько моделей с Symbian^3, Nokia N900 с Maemo/MeeGo. Уже невесело, правда? А когда к ним добавятся еще модели на WP7, тогда начнется самое интересное.

Я не против Microsoft, WP7, C#. Я против распыления. И когда встанет вопрос, под какую из действующих платформ Nokia разрабатывать приложение, я выберу Android, потому что глупо распыляться по мелочам, делая и поддерживая три версии приложения для разных телефонов, которых по отдельности не так уж и много.

По мотивам открытого письма к разработчикам.

Written by Дмитрий Воробьев

Февраль 11th, 2011 at 14:32

Posted in Заметки

Tagged with , , ,

Mobile Developer Day 2010

без комментариев

9 декабря 2010 года (четверг) в Москве состоится конференция Mobile Developer Day. В программе озвучены доклады на тему разработки под Android, iOS, MeeGo, Symbian^3, Windows Phone 7. Также ожидаются практические выступления о мобильном VoIP, интеграции платежей, юзабилити приложений. Подробнее о мероприятии можно прочитать здесь.

Written by Дмитрий Воробьев

Ноябрь 30th, 2010 at 20:29

Форматный вывод в Symbian C++ и дескрипторы

без комментариев

В принципе, синтаксис форматного вывода в Symbian C++ мало чем отличается от оного в традиционном C++. Однако, есть кое-какие нюансы.

Типов немного:
%bb — двоичный
%o — восьмеричный
%x — шестнадцатиричный
%i — знаковый целочисленный (до 32 бит)
%u — беззнаковый целочисленный (до 32 бит)
%Ld — знаковый целочисленный (64 бита)
%Lu — беззнаковый целочисленный (64 бита)
%f — вещественный
%s — стоковый тип (имеются в виду строки в стиле C, завершенные нулевым байтом)
%S — строковый дескриптор

Самая большая проблема, которая может подстерегать разработчика, использующего форматный вывод в Symbian C++ — аварийное завершение работы программы вследствие неправильной передачи дескриптора. Дескриптор всегда следует передавать по ссылке.

Например, так:

TBuf buf;
TBuf tmpBuf;
_LIT(KFmtStr, "%S %S");
_LIT(KStr1, "one");
_LIT(KStr2, "two");
tmpBuf.AppendL(KStr1);

buf.Format(KFmtStr, &tmpBuf, &KStr2);

Written by Дмитрий Воробьев

Июнь 9th, 2010 at 20:06

Posted in Чулан

Tagged with ,

Поиск используемых Capabilities в Carbide C++ (Symbian ADT)

без комментариев

Короткий видеоурок по использованию встроенного средства для определения используемых возможностей в Symbian-приложениях.

Written by Дмитрий Воробьев

Май 15th, 2010 at 16:30

Posted in Чулан

Tagged with ,

Коды ошибок Symbian OS

без комментариев

Подборка кодов ошибок Symbian OS с комментариями на английском языке.

Written by Дмитрий Воробьев

Апрель 7th, 2010 at 14:07

Posted in Чулан

Tagged with ,

Библиотека для работы с сокетами в Symbian

без комментариев

Ни для кого не секрет, что работа с ActiveObject (AO) в Symbian требует опыта и хорошего понимания, что творится на один-два уровня ниже. К сожалению, ни одно сетевое приложение невозможно написать без AO. Если время, чутье разработчика или природная лень предлагают опереться в этом вопросе на опыт других разработчиков, то лучше всего использовать абстракцию, написанную Дэреллом Карботтом (Darrell Karbott) для проекта iks-symbian (лицензия: LGPL).

Она уже заняла подобающее место в моем «боевом наборе разработчика». Также я взял на себя смелость выделить часть кода в отдельный проект symbiansocks (лицензия: LGPL) по следующим причинам:

  • CVS на SourceForge крайне нестабильно работает
  • проект iks-symbian завершен и более не поддерживается

Читать далее »

Written by Дмитрий Воробьев

Март 26th, 2010 at 12:30

Криптографическая библиотека для Symbian

без комментариев

С изменением структуры каталогов на symbian.org некоторые полезные ссылки перестали работать. И если вы уже замучились искать криптографическую библиотеку для Symbian, которая дает доступ к сильным асимметричным и симметричным алгоритмам, ее можно скачать отсюда.

Written by Дмитрий Воробьев

Март 4th, 2010 at 11:42

Symbian: особенности средней кнопки

без комментариев

Речь в этой заметке пойдет о MSK (middle softkey).

Как ее активировать подробно описано в Forum Nokia Wiki, поэтому не буду заострять внимание на этом. Заслуживает внимания другое.

Как и ожидалось, средняя кнопка не появилась на Nokia E65 (еще бы, это ведь S60 3rd Initial Release), т.к. она есть только начиная с S60 3rd FP2 v1.1. На Nokia N97 ее тоже не должно быть, т.к. это S60 5th. Но на эмуляторе Nokia N97 в портретном режиме она хоть и не отображается, но есть там. При клике в control pane где-то по центру выполняется действие, которое разработчик «повесил» на нее.

Поэтому если вдруг юзабилисты приносят вам эскизы со средней кнопкой, либо откажитесь от целого ряда телефонов, на котором ваше приложение могло бы работать, либо отправляйте эскизы на доработку. Решить проблему с отсутствующей MSK можно, например, так: действие со средней кнопки выносится первым пунктом контекстного меню, а ее быстрый вызов осуществляется по нажатию на клавишу CENTER, нажатие которой можно отловить в методе OfferKeyEventL().

Это можно сделать, например, так:

...
if(aKeyEvent.iCode == EKeyEnter)
{
CSomeView *view = STATIC_CAST(CSomeView*, iCommandObserver);
view->EmulateMiddleSoftKeyPressL();
return EKeyWasConsumed;
}
...

Written by Дмитрий Воробьев

Март 3rd, 2010 at 15:24

Posted in Чулан

Tagged with ,

Быстрое решение проблем с Nokia N97 SDK и Symbian ADT

без комментариев

Рано или поздно любой разработчик программного обеспечения сталкивается с тем, что ему нужно изучить новую область применения своих талантов. Я не стал исключением из этого правила. Но в процессе установки мне пришлось столкнуться с парой проблем, о которых расскажу ниже.

1. Эмулятор Nokia N97 падает с Access Violation
Если вы установили все необходимое для работы с Nokia N97 SDK и Symbian ADT (ActivePerl 5.6.1 и Java 6), но эмулятор так и не думает запускаться, то вероятно причиной тому слишком длинный путь к исполняемому файлу эмулятора. В моем случае это был путь C:\Languages\SDK\Nokia, после замены каталога установки на C:\SDK все заработало.

2. Проект в Symbian ADT не собирается
И эмулятор, и Symbian ADT очень требовательны к своему размещению на жестком диске. При установке их на разные логические диски они теряют друг друга. В качестве решения можно посоветовать либо установить их в на один логический диск, либо создать на диске с Symbian ADT символическую ссылку на каталог с SDK (только для разделов NTFS). Это можно сделать из командной строки или с помощью утилиты HardLink Shell Extension, которая встраивается в контекстное меню Explorer.

Также эта проблема может возникнуть, когда workspace с собираемым проектом и SDK находятся на разных логических дисках. В этом случае снова выручают символические ссылки.

Надеюсь, эта заметка поможет вам решить возникшие проблемы (а в идеале — даже не столкнуться с ними!).

Written by Дмитрий Воробьев

Февраль 22nd, 2010 at 22:19