Python

индекс
250,37

Python for series 60, на что же он способен…

imageДоброго времени суток, %username%!
Почти год назад купил себе Nokia 5800, и был расстроен недостатком софта под новую платформу symbian 9.4. Вместо того, чтоб бродить по сайтам и оставлять гневные комментарии по этому поводу, решил исправить это положение самостоятельно.
Скачал свежий python for s60 и начал писать. Почему именно python, спросите вы. Кроме питона я ничего не знаю. «Кодирование со скоростью мысли», позволяет написать приложение буквально за один вечер.
Целью этого топика, является демонстрация возможностей python for s60 на примере того, что уже было написано мною. Позже, я расскажу, как «с нуля» и практически за 20 минут создать готовое sis приложение, которое будет радовать вас, и возможно остальных пользователей смартфонов Nokia.

Ниже представленные программы работают на смартфонах symbian 9.4 (nokia 5800, n97, 5530 и пр.). Для их работы необходим установленный python for s60 не ниже версии 1.9.7 (скачать можно по этой прямой ссылке). Python и программа необходимо ставить на один и тот же диск. После установки питона, желательно перезагрузить девайс.
Все программы абсолютно бесплатны и не требуют подписи. Я не привожу в описании всех моих программ. Полный список вы можете найти на моем небольшом оф. сайте.
Начнем…

SmartTouch


Это была одна из первых программ, написанных мною под тачскрин.
Предназначена она для управления компьютером по bluetooth.
Из возможностей: управление плеером, управление мышкой…

Более подробно на этой страничке, там же можно скачать саму программу и сервер для pc (написан тоже на питоне, но к сожалению стабильно работает только с дровами от microsoft)

XpressNote


Удобное приложения для создания быстрых рукописных заметок. Более живописно процесс работы вам опишет скриншот:
image
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.

XpressAlarm


Написано ради академического интереса, и демонстрирует необычное применение «датчика приближения морды» на symbian 9.4
Это «противоугонка», которая в некоторых случая поможет защитить телефон от кражи. Сейчас вам я это продемонстрирую на видео:

Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.

XpressSketch


Лучшая рисовалка на сегодняшний день для symbian 9.4, приложение которое вышло пару дней назад.

Вот одно из первых художеств, полученных с помощью этой программы
image
Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.

XpressExif


Приложение, которое зарубежные сайты окрестили фото браузером с кинетическим скроллингом, хотя на самом деле, это программа для просмотра EXIF информации в фотографиях (не работает корректно на n97)

Более подробно почитать об этой программе, а так же скачать, можно на этой страничке.

Кроме этого в моей помойке на моем сайте лежат и другие программы. Например MagicM3U — программа которая создает плейлисты из папок с мызыкой и позволяет более удобно пользоваться стандартным проигрывателем музыки (работает на всем symbian 9.x). XpressChat — попытка создать сервис анонимных собеседников на смарте, но к моему сожалению идея не получила широкого распространения (сервер до сих пор работает в холостом режиме на специально арендованном для этого vds, и тоже написан на питоне). XpressBeer — симулятор пивного бокала, приложение которое я ненавижу, но однако оно пользуется самой большой популярностью. И что там еще :)

Писалось и пишется это в одиночку, в свободные минуты рабочего времени. Помогали мне лишь, рисуя дизайн для некоторых приложений.
Это получилось у меня, не программиста по образованию, думаю и получится и у вас, было бы желание и чуточку фантазии.
P.S. По традиции я должен сообщить, что это мой первый топик на хабре, благодаря которому меня из песочницы подобрало НЛО.
+70
29 октября 2009, 12:28
50

комментарии (73)

+1
cleg #
Противоугонка стильная, но я так и недопонял — от чего она срабатывает?
+1
kAIST #
Над экраном есть «датчик приближения морды», который реагирует на приближение лица, гася во время разговора экран. Именно этот датчик и дает понять, что телефон вытащили из кармана. Все достаточно просто :)
0
AmirL #
А когда не срабатывает?
0
kAIST #
Когда, например, телефон лежит в чехле, датчик никак не реагирует.
Этот датчик я еще использовал в SmartTouch. В режиме «курсора», при приближении пальца к нему нажимается левая кнопка мыши.
0
AmirL #
В смысле не понял принцип, как определяется что нужно сигналкой гудеть, а когда не нужно гудеть. С точки зрения пользователя.
0
kAIST #
Если из кармана ты вытаскиваешь телефон сам, то нужно его разблокировать ползунком (Как это показано на видео). Время срабатывания и что нужно сделать для разблокировки, задаются в настройках…
0
Zordhauer #
А как быть с темным помещением (если датчик на свет реагирует) или с ситуациями, когда он не видит изменений (как много таких ситуаций и могут ли они быть случайно воссозданы)?
=) просто интересно
0
kAIST #
прочтите пожалуйста каменты выше… программа работает не от датчика света, а от датчика приближения (специальный сенсор, который появился на symbian 9.4)
0
Zordhauer #
Ну я в своем комменте учел тот факт, что не от света работает (просто не знаю, как точно, вот и спрашиваю) =)
И спросил еще, каковы шансы «одурачить» датчик (не специально, разумеется, ибо специально воришке проще блок снять)
0
kAIST #
Абсолютной защиты не существует. Ключевое слово в описании программы "поможет защитить от кражи".
По поводу блока… Сколько замечал, когда знакомые берут телефон в руки, долго его вертят в руках, пытаясь найти, как же он разблокируется.
Одурачить можно легко, если знать, как. Можно вытащить и тут же закрыть датчик рукой, пока сигнализация не сработала.
0
RNZ #
Пробовал XpressAlarm заставить работать на N79 — не заработало, хотя «датчик приближения морды» в наличии.
XpressBeer — работает безупречно 8)))
0
kAIST #
Возможно имелось в виду Nokia N97? На n79 насколько мне известно нет этого датчика.
Странно, ведь люди с n97 отписывались мне и говорили о том что приложение работает. Оно запускается нормально? Что происходит?
0
RNZ #
нет, речь о n79, tech2.in.com/media/images/2008/Aug/img_83781_n79_front.jpg
в правом верхнем углу рядом с камерой разве не тот самый датчик?
0
kAIST #
что то мне подсказывает, что это просто датчик освещения :)
0
RNZ #
А ну да… 8( увы…
0
RNZ #
А нельзя его заюзать для этого? Допустим если есть блокировка, то датчик освещёности вполне может выступать в той же роли, что и датчик морды.
0
kAIST #
нет к сожалению, так как скорость реакции на свет оставляет желать лучшего… хотя можно заюзать переднюю камеру для этих целей…
+9
blo #
я почему-то подумал что в статье будет инструкция по написанию приложения, а тут просто обзор, а жаль…
хотя некоторые приложения действительно интересные.
+6
kAIST #
Статьи будут, обещаю. Просто для начала, хотел вас заинтересовать, хотел показать, что на питоне можно писать интересные приложения.
0
Benderlidze #
на питоне вроде нельзя получить доступ ко всем функциям симбиан в отличии от symbian с++?
0
kAIST #
Напрямую нельзя, вы правы, но в комплекте идет достаточно модулей, которые являются обертками над симбиановским API. Для многих целей этого хватает, как видите. Камера, сообщения, записная книжка, календарь, сеть, акселерометр, bluetooth, UI, и т.д. В принципе тут возможностей побольше чем у Java.
Если не хватит, можно и написать обертку в виде pyd модуля.
+1
Zigzag #
Противоугонка просто супер!
0
kAIST #
Основной функционал этого приложения реализуется всего 30-40 строками кода, можете глянуть на исходники :)
// это я так, разжигаю аппетит к PyS60…
+2
Zigzag #
Я уже очень голоден! =)
0
Alviora #
а мне создание плейлистов для стандартного плеера понравилась))

Щас с работы домой вернусь устрою тест драйв :) на N80 и E66.
ps Вопрос, проги работают с питоном+мегапак модулей 1.4.5 или серию 1.9+ тоже поддерживают?
0
kAIST #
Для работы, как уже сказано выше, необходим просто установленный python 1.9.7, никаких «мегапак модулей» не нужно.
Для телефонов без тачскрина, у меня там всего 5 приложений, более менее интересных всего парочку :(
0
Alviora #
Сорри про 1.9.7 недоглядел…
Ну как по мне, даже одно приложение для плейлистов уже достойно посещения сайта, изучения, установки и занесения сайта в закладки.
0
Azmorf #
Посмотрел на заголовок — сразу подумал — Игорь kAIST. Не ошибся :)
Программы замечательные :)
0
CharnaD #
Суперски, начал изучать питон и тут такое увидел. Глаза аж загорелись!
0
nZeus #
молодец!
+1
vilgeforce #
О! А можно пару каверзных вопросов?
1) Вы делаете SIS для установки приложения в девайс?
2) В каком виде программа попадает на девайс? *.pyc или сорцы на питоне?
3) Что нужно поставить на девайс, что программа там работала?
+1
kAIST #
1) Да, именно sis, готовые к установки. Как их делать, подробно расскажу в следующем посте
2) Обычный пользователь не видит что там внутри. Что попадет в sis файл: py или pyc, можно задать в опциях при упаковке. Если интересны исходники моих проектов, на офф. сайте они выложены.
3) Как я уже и писал, нужен установленный python не ниже версии 1.9.7. Это можно сравнить с .NET framework, который нужен для работы некоторых программ под win. У многих пользователей symbian 9.4, он уже стоит…
0
vilgeforce #
Ага, то есть ненулевой шанс, что для работы питона на симбиане ничего дополнительно и ставить не придется? Спасибо большое за ответы!
0
kAIST #
Ну как сказать… Что касается symbian 9.4, где как мне кажется неплохо восполняю недостаток софта, python стоит у достаточно большого количества человек. По крайней мере брожу регулярно по сайтам, где постятся мои программы. И сейчас уже практически не спрашивают что такое python и зачем он нужен. Поставил один раз, и пользуйся всеми программами на нем написанными, изредка обновляя его версию.
Будем наедятся, что нокиа будет предлогать его установить(обновить), так же как AdobeFlashLite, например, если будет достаточно количество софта, на нем написанном.
0
vilgeforce #
Да я просто регулярно встречаю троянов под 9-ку, написанных на питоне. И было очень интересно, как же они там работают-то в итоге. Получается, что они расчитаны на тех пользователей, у которых питон уже стоит.
0
kAIST #
да, это обратная сторона медали…
написать такой «троян» очень легко…
import messaging
messaging.sms_send(u'xxxx',u'xxxx')
В свое время наблюдал волну «смс-бомберов», как их тогда называли, даже родился такой проект под symbian 7-8.1
soft.mobile-master.org/?project=smsprotect
0
vilgeforce #
Именно так все и сделано ;-)

У нас в антивирусе сейчас такой функционал как у вас по ссылке реализован :-)
0
kAIST #
Хех… Я то думал, что все эти «трояны» уже в прошлом.
Интересно наблюдать, как идин из антивирусов детектирует программу на питоне, упакованную в sis только за то что там присутствует строка sms_send :)
0
vilgeforce #
В прошлом… Если бы!

А мы честно *.pyc декомпилируем, так что надеемся эт не про нас.
0
kAIST #
Ради интереса, как, или это коммерческая тайна? :)
Дело в том, что у меня в коде в коде тоже встречается это пресловутое sms_send (те, кто хочет отправляет пожертвования). Детектировать зловредно это или нет, я думаю невозможно.
Декомпиляция pyc — задача нетривиальная. Да и в pyc открытым текстом есть этот самый sms_send. Или речь идет о перехвате системных вызовов во время исполнения программы? Хотя есть еще один способ, это мониторить outbox на наличие смс с короткими номерами и удалять при необходимости (вот вам идея, если еще не реализовано)
0
vilgeforce #
Посмотрите в сторону decompyle, кажется так продукт зовется.
0
kAIST #
Да, но с «тяжелыми» скриптами он не справляется… Повторюсь, заветную строчку sms_send можно увидеть и без декомпиляции.
0
vilgeforce #
Ну поиск строки в файле — плохой метод. Если кто-то им пользуется — ну флаг им в руки. Мы декомпилируем скрипты и создаем сигнатуру по результатам анализа.
0
kAIST #
опс, все понял… тогда мой пост выше точно не про вас.
0
Wolverine #
О, привет :) С твоими прогами знаком еще с димона (igor.kaist дада), офигенные нестандартные реализации. Хотя на смарте у меня не любовь к питону со времен седьмой оси с 7-8Мб свободной памяти
0
kAIST #
Он отжирает оперативы меньше явы со своей виртуальной машиной, хотя все зависит от приложения конечно…
0
Wolverine #
Проект Семь нот вообще шедевр
+1
kAIST #
Спасибо :)
Делал ее, когда только учился программированию на питоне :)
Очень простая программа, главное идея, как я всегда говорил :)
0
GMM #
если не трудно сделайте версию для девятки, очень хочеться попробовать
0
kAIST #
Запишу себе в блокнотик, но когда сделаю, сказать не могу :)
Да я думаю, кто нибудь быстрее сможет это повторить… Там все очень просто. Получается изображение с камеры, и анализируется среднее значение с 7 областей. Если в одной из них среднее значение суммы цветов пикселей отличается, значит в эту область попал палец.
0
GMM #
Спасибо. Может будет время сам попробую реализировать.
0
DnKrozz #
Пытался как-то написать музыкальное приложение, столкнулся с тем что задержка очень заметная при воспроизведении завука. Что как бы обламывает всю идею.
Думал pyd сделать с апи для быстрого проигрывания на основе с++ либ для игр, они вроде как обещали низкую задержку. И еще пытался апи для назначения звуков кнопок использовать. Но так ничего и не заработало :(
Как вы с этим боролись, или в новых телефонах такой проблемы нет?
Я просто для S60 9.1 писал Nokia 5700.
0
Wolverine #
В 5700 9.2 стоит :)
0
Alder #
Я бы советовал заметки развить в приложение для работы с Evernote. У них есть открытый API и в сети достаточно примеров работы с ним именно на Python. И конечно же жду статей о самом процессе разработки.
0
kAIST #
К концу этой недели будет первая статья.
По поводу Evernote, они человек уже пишет клиент для этого сервиса. Посмотрим, возможно я ему в этом помогу, хотя не люблю писать в паре с кем то, быстрее самому…
0
Alder #
Пусть пишет. И ты тоже можешь сам написать. Ведь это лучше, когда будет из чего выбрать.
0
avenu #
Ого, неужели это все работает на тачфонах Нокии? Это очень круто, и идеи тоже очень интересные. Плюс в карму.
0
coldFlame #
Жду статьи, а лучше — полезных ссылок о разработке. Для начала — хотя бы в чем вы пишете софт, какой эмулятор, где взять документацию.

Сам хожу с 5800 и расстраиваюсь скромным парком приложений, хотелось бы приложить руку к его расширению. :)
0
kAIST #
Чуть чуть терпения… Все подробно распишу :)
0
Ferroman #
А я всё думал о каком противоугоне ты на форуме говорил. Неплохо.
0
caIIIa #
Суперская статья, интересно, добавил в закладки, поправьте «на офф. сайте» одна буква лишняя
0
Phenomen #
тоже очень хочется гайдов по написанию приложений from scratch. есть 5800, есть идеи, а как реализовать толком мануалов нет…

кстати, вот пару ссылок, где можно найти новый софт\игры под него:
allnokia.ru/symbsoft/
smart60.ru/
nokia-5800-s60.ru/
touchnokia.ru/
nokia5800.ws/
0
kAIST #
скоро будет, для этого как раз я и пришел на хабр :)
P.S. К вашему списку хотел бы добавить и порекомендовать форум сайта nokia5800.ru, так много адекватных людей, и подборка софта неплохая и регулярно обновляется. Там мне подкинули идеи некоторых приложений, обзор которых вы видели. И дизайн мне делают парни из того форума.
0
ev1l #
Классная статья, проги супер, особенно XpressNote.
0
lol2Fast4U #
Еще бы XpressNote синхронизировать с Evernote… :)
0
kAIST #
Уф… С понедельника начну писать клиент под Evernote :)
0
Rsolars #
А есть ли в планах создание фотобраузера? Стандартный ой как не радует в 5800.
0
kAIST #
а nokia photo browser чем не устраивает? Его я уж точно не переплюну :)
0
Rsolars #
Да не хватает элементарного — выборочной отметки изображений. Чтобы не лазить каждый раз в меню для отметки. Например, сделал десяток снимков и передал их по bluetooth на комп и у далил, а старые снимки остались.
0
amlet #
Вот уж точно великолепная пропаганда Python'а. Просто великолепно!

Впечатлила особенно противоугонная программа — я такого ни у кого ещё не встречал. Скажите, сами идею придумали?
+1
kAIST #
Да, сам. Получилось примерно как у доктора Хауса :)
Думал, что бы такое придумать, и какие то сказанные подругой слова, натолкнули меня на мысль о столь необычном применении этого датчика :)
0
snp #
Реально круто! Подкину вам ещё идею: сделать аналог SMS Spam Manager, очень полезная программа получилась бы.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.