Я планировал рассказать о процессе портирования qutIM'а на платформу S60 тогда, когда порт стал бы более стабильным и полноценным, но увы, последние события не оставляют мне выбора. У меня больше нет никакого интереса продолжать активную разработку Symbian версии — это больше похоже на выступление оркестра на тонущем Титанике.
Кому всё-таки интересно посмотреть, как мы занимались портированием qutIM'а и что из этого получилось, добро пожаловать под кат.


После покупки Nokia 5800 в марте месяце того года, я решил попытать счастье в программировании на Qt под смартфоны, поставил Qt sdk, хорошенько выругался на его кривость и скомпилировал простенький секундомер. В процессе я разобрался в некоторых тонкостях, например в том, что же это за таинственные softkeys'ы и что с ними делать. Этих экспериментов мне хватило примерно до апреля месяца, тогда я уже созрел к первой попытке скомпилировать qutIM под Symbian.

Тут же я столкнулся с первыми серьезными граблями: cmake, которым собирается qutIM, не поддерживал symbian SDK и в обозримом будущем поддерживать не собирался. На тот момент я решил, что проще написать pro файл для qutIM и быстренько проверить, что получится.
Вторыми серьезными граблями явилось то, что в Symbian SDK был ископаемый gcc 3.4.5, который не понимал некоторую шаблонную магию. Пришлось адаптировать код и, после примерно недели неспешных экспериментов, на свет родилось вот это:







Понятно дело, этим пользоваться было невозможно: не грузились даже протоколы, для этого пришлось долго разбираться с косяками линковщика, с хитростями загрузки Qt плагинов на S60 и так далее.
В июле месяце, после сдачи диплома, я вернулся к этому вопросу и успешно сделал первый вариант gui, который тут даже светился в одном из топиков.







Этим даже можно было пользоваться, работали протоколы icq и jabber, а также jabber конференции. Но всё тормозило, падало и на Qt 4.6.3 вылазили вот такие милые глюки



Softkeys'ы, которые представляют из себя 2 большие кнопки внизу, оказались слишком капризными, qutIM постоянно с ними беспричинно падал, пункты меню не обновлялись, эти меню не сигналили о том, что они были показаны на экране и так далее. К сожалению, эти глюки до сих пор присутствуют, пришлось придумывать некоторые обходные пути.

К августу месяцу были переделаны скрипты сборки и идеология плагинов и собирать qutIM при помощи qmake'а стало невозможно: процесс портирования остановился до января месяца. В январе мы с Элессаром решили, что надо попробовать возродить порт. Я начал писать symbian генератор для cmake'а и, приложив немало усилий, нам таки удалось заставить его работать. Сильно помогло нам появление gentoo оверлея с symbian SDK. Кому интересно, вот исходники наших мытарств. Понятное дело, что на генерацию sis файлов и поддержку Windows я даже не стал замахиваться: просто создал qmake проект-заглушку и через него стал создавать sis файлы.

К тому времени от старого порта остались только рожки да ножки и я начал всё по новой. Но за счет улучшений в архитектуре самого Кутима и наличия рабочего Maemo порта мне удалось за три дня сделать вполне жизнеспособную версию, которая выглядит весьма неплохо в сравнении с всеми icq и jabber клиентами для Symbian'а и, в отличии от них всех, поддерживает навигацию жестами.













sis файлы с ночными сборками находятся здесь

А теперь несколько грустных слов. До сегодняшнего дня я планировал впоследствии интегрировать в qutIM фреймворк QtMobility и попытаться сделать для Симбиана аналог Maemo'овских conversation'ов. Мне хотелось, чтобы пользователь объединял в метаконтакты телефонные контакты и icq/jabber контакты и уже мог выбирать наиболее доступный способ отослать ему сообщение, ну например через icq или если человека нет в сети, то через sms. Также была идея ранжировать точки доступа к интернету по степени их дороговизны и автоматически предлагать перейти на более дешевый способ связи, ну например на открытый вайфай.
Для всего этого в Qt есть API, которое даже работает, но высшее руководство Нокия видимо решило зарубить всё это на корню. Что же, я хочу их поздравить, вместо того, чтобы дать дополнительный толчок, заставить новую платформу для разработчиков быстрее шевелиться, они всё бросили и теперь пытаются опять начинать с нуля. Коней на переправе не меняют, жаль, что про эту пословицу забывают.
Поэтому я не вижу для себя смысла что-то серьезное делать для гибнущей платформы, которая так и не смогла себя проявить. У Симбиана были шансы, но видимо судьба OS/2 и Silicon Graphics так ничему и не научила ни руководство Nokia, ни её акционеров. Что же, история имеет свойство повторяться.

Что касается дальнейшей разработки qutIM'а для Symbian'а, то я буду делать лишь те вещи, которые нужны лично мне, все более серьезные идеи и планы отменяются. Если кто-то захочет, несмотря на всё случившееся, заняться доработкой qutIM'а под Symbian, то я разумеется помогу чем смогу. И всё-таки я верю в Intel и MeeGo и при первой же возможности сделаю порт qutIM'а на неё.

Всем спасибо за внимание!

update. Разработку я всё-таки не бросаю, есть еще много вещей, которые я хочу видеть на своем телефоне, просто у Симбиан версии теперь приоритет ниже стал.
update 2. Если будете пробовать тестировать sis файлы, то не забудьте поставить Qt 4.7.1, на ftp есть ссылки. Но не ставьте их на Symbian^3, для него нужно отдельные sis файлы искать. И будьте готовы: после установки часть встроенного софта отвалится.