Ищу шоплист под Fremantle

Очень люблю программки, в которые могу по мере вспоминания записывать что надо купить, а потом в магазине отмечать что купил и почём. Как-то в штатных репозитариях ничего подобного не вижу. Отсюда два вопроса:
1. Не видел ли кто чего на эту тему
2. Может кто хочет попробовать написать подобное на QT ? готов поставить задачу
Может MaePad+?
https://garage.maemo.org/projects/maepad/
http://thpinfo.com/2010/maepad/
Пока он единственное что есть, но он страшно не удобен. Нет портрета, нет сортировки ни автоматической ни принудительной, на экарне размещается очень мало строк, нет калькуляции, нет категорий. Я с ним съездил в ФИнку и реально из-за его непрактичности много чего важного забыл купить. Красиво но бестолково. Да и автора понесло в другую степь. Он больше на заметки и рисунки уповает
Может этот попытаться портировать на маемо 5?
http://shopper.garage.maemo.org/
Это чуть лучше конечно, но тоже ни цен ни калькулятора. Самая лучшая была у меня на Palm
Что-то мне точно еще подобное попадалось.
Не могу вспомнить.
PS
multilist вроде бы
http://ecosl.garage.maemo.org/
Вот еще. Не пробовал за неимением n900
по последнему линку интересная программа, только почему ее нет в родных маемовских репах не очень понятно....
Не знаю в чём её интересность. У меня она выдаёт тока нередактируемый список :) Это типа снапшот что должно быть :))) ?
Kn1ght:по последнему линку интересная программа, только почему ее нет в родных маемовских репах не очень понятно....

Ватсон, это элементарно! Только потому что автор её туда не направил!
Есть ещё программка для сервиса http://www.rememberthemilk.com/

http://maemo.org/packages/view/nolazy/

Но она только в онлайне работает =(
Мне бы вот такую же, только чтобы база на телефоне хранилась.
gLobster
Я тоже ощутил острую потребность в нормальном шоплисте.
Надеюсь что и у вас эта потребность не пропала. Вы говорили что готовы поставить задачу? Я готов взяться за реализацию на Qt или GTK под Maemo 4 & 5. Мне, правда, предпочтительнее GTK, т. к. при всей своей прелести Qt все-таки чужда и неповоротлива на diablo.

Для этой задачи крайне важен удобный UI. Собственно именно из-за UI меня не устраивает ни одна из имеющихся программ. Поэтому хочется определиться с requirements и use-cases до того, как начинать рисовать какую-либо архитектуру. А я про себя знаю, что у меня составление требований получается не очень хорошо ;)
можно попробовать. Под Qt я думал из-за чисто шкурного интереса. Я всё больше подумываю свалить с Маемо, а Qt есть и под симбиан :)
Я еще потестирую Qt под Diablo, может я поспешно составил такое мнение :)
Давайте попробуем накидать требования и интерфейс. Может у вас уже есть конкретные идеи?
Mitrandir:Я еще потестирую Qt под Diablo, может я поспешно составил такое мнение :)

Имхо поспешно.... Нормально QT работает, а вот запускается QT-приложение сравнительно долго (до 10 секунд).
[spoiler]Я уже написал одну небольшую программку на PyQt, готовую к общественному тестированию, но вот как-то не доходят руки собрать пакет (не умею пока).[/spoiler]
я ими с радостью поделюсь, но попросил бы тайм-аута до вторника. Я пока в отпуске и клавишки жму в перерывах между прогулками :) А здесьь надо сесть и подумать, чтобы связно изложить с незатуманенным пивом и не опьянённым финским воздухом мозгом.
ой,раз пошла такая пьянка, не могу не обратить внимание на то, как сделать это еще и очень глобально полезным))) Причем, насколько могу судить, с не сильно усложненной задачей))

Поделюсь _удобным_ сервисом, которым пользуюсь сам. Интегрироваться с ним вполне реально, насколько я могу судить))

1. http://www.foodclub.ru/
2. http://habrahabr.ru/blogs/i_am_advertising/78917/


Два режима работы: Онлайн и оффлайн )) и разработчики фудклаба с радостью пойдут на помощь =))
PS: Если чем-то могу тоже помочь - с радостью. Нужно только мне поставить таск )

[spoiler]Слушайте.. А ни у кого инвайтик на Хабр попросить нельзя? =)) Все будет серьезно и ответственно, работаю в DST, ток у нас все тут жадные или кармы не имеют =([/spoiler]
DarkTroll:а вот запускается QT-приложение сравнительно долго (до 10 секунд).

Я как раз об этом. На самом деле я большой фанат Qt, и много писал на нем и для PC и для встроенных девайсов. Но даже на embedded-linux-системе со 160MHz-процессором и 16мб RAM я не видел чтобы Qt-приложение запускалось 10 секунд.

Впрочем, я думаю, что можно начать с Qt-версии. Все-таки на Qt и быстрее и приятнее писать. А потом, если скорость не устроит, написать клон на Gtk :)

gLobster
С удовольствием подождем до вторника :)
[spoiler]
Mitrandir:я не видел чтобы Qt-приложение запускалось 10 секунд.

Да, я не учел что ты говоришь про чистый QT... :) А вот для PyQt, на котором я балуюсь, 6-7 секунд запуска на таблетке - легко.
Ладно, не будем офтопить. ;)[/spoiler]
[spoiler]
Ага, а я тоже не сообразил что ты про PyQT :) Но все же на диабле даже маленькая тестовая программка у меня запускается четыре секунды. Это опять таки \"чистый\" Qt, на С++.
Но даже три-четыре секунды меня напрягают. А уж 10 секунд с PyQT.... Знаете, напоминает старую рекламу: \"Мы с другом выпили еще фанты и тормознули самолёт\". Тормознуть можно любое железо -- надо все-таки выбирать подходящий инструмент :) Повторюсь, я большой любитель и Qt и питона. Но я очень большой нелюбитель тормозов, особенно в программах, которые должны работать в режиме \"вытащил из кармана -- запустил/посмотрел -- убрал в карман\".
Именно из-за скорости работы на diablo я начал недавно изучать ненавистный мне раннее GTK
[/spoiler]
Вот некоторые мои соображение относительно функциональности программы. Писал сегодня по пути в офис, что в голову пришло, поэтому список, разумеется не полный:

Дома:
[list=*]
[*]Составление списка нужных покупок[/*]
[*]Разбиение их по категориям/отделам/магазинам[/*]
[*]Запоминание использованных наименований для быстрого выбора в будущем[/*]
[/list]


В магазине:
[list=*]
[*]Отображение покупок по категориям/отделам/магазинам[/*]
[*]Ввод купленного количества и цены (или стоимости)[/*]
[/list]

Статистика:
[list=*]
[*]Ведение статистики[/*]
[*]Создание различных отчетов[/*]
[*]Экспорт данных о покупках[/*]
[/list]

Usability:
[list=*]
[*]При создании списка покупок не заставлять пользователя делать лишние действия и заполнять необязательные поля (обязательным должно быть только название товара). Для добавления товара должно быть достаточным набрать его название и нажать Enter[/*]
[*]Аналогично в полевом режиме - минимум действий[/*]
[*]При вводе чисел (количества и цены) не должно быть необходимости зажимать кнопку Fn[/*]
[*]Для ввода цифр возможно стоит сделать экранную цифровую клавиатуру, чтобы не было необходимости в полевом режиме открывать слайдер на N900/N810 или доставать стилус на N800.[/*]
[/list]
А под диабло будет? ^^
А у меня ничего кроме диабло и нет ;)
Я надеюсь сделать нечто портируемое
Mitrandir
Ттогда я желаю вам всяческих успехов, так как давно нечто подобное ххотел =)
kolm
Ну кроме пожеланий нам еще можно помочь идеями :)
Я например, даже приблизительно не могу пока представить себе интерфейс программы так, чтобы он был удобен
Да и список требований еще пилить и пилить. И конкретизировать
Ок, если чего надумаю - напишу.
Mitrandir В общем, появились некоторые идеи.
Как вы уже предложили, сделать три отдельных режима: дома, полевой (т.е. в магазине) и статистика. Перекличение между \"в магазине\" и \"дома\" назначить на кнопки зума или на джойстик (пользователи N800 поймут =/), а \"сттатистику\" назначит на отдельную кнопку, чтобы не мешался , так как подразумеваеется, что этот режим будет использовать реже других.
Еще неплохо было бы добавить функцию изменения ориентации, так как дома держать таблетку горизонтально не составит проблем, а вот в магазине надежнее держать ее вертикально.
Ест-но, \"в магазине\" должен быть finger-friendly, а вот \"дома\" можно ссделлать и под стилус, дабы больше всякого поместилось.
Кстати, \"в магазине можно сделать управление жестами, а тто пальцем можно и случайно тыкнуть в экран.
Как видите, идеи у меня пока только по интерфейсу. Надеюсь, что-нибудь пригодится =)
kolm:Перекличение между \"в магазине\" и \"дома\" назначить на кнопки зума или на джойстик

Да вообщем-то переключение нужно тоже только один раз в день максимум.
Но то, что кнопки нужно экономить - это точно... [spoiler]Я уже сам удивляюсь, как я мог обходиться без клавиатуры на n800 всего-то пару месяцев назад, до того, как сменил ее на n810 :)[/spoiler]

kolm:Еще неплохо было бы добавить функцию изменения ориентации, так как дома держать таблетку горизонтально не составит проблем, а вот в магазине надежнее держать ее вертикально

Очень точно подмечено! Тут правда появятся разные сложности в реализации, по крайней мере на Diablo

kolm:Ест-но, \"в магазине\" должен быть finger-friendly, а вот \"дома\"  можно ссделлать и под стилус, дабы больше всякого поместилось.

Тоже верно

kolm: Кстати, \"в магазине\" можно сделать управление жестами, а тто пальцем можно и случайно тыкнуть в экран

Ммм... А какие жесты вы себе представляете? Я просто недолюбливаю жесты из-за того, что будучи неудачно реализованными, они только добавляют неудобств. Я не против жестов, только если их делать, то делать удобными.

kolm:Надеюсь, что-нибудь пригодится

Обязательно :)

gLobster
Вернулись из отпуска? ;)
вернулся читаю, но тут меня поджидал аврал - писать не успеваю
чуть всунусь. Какие кнопки задействовать - это не функционал. Это имплементация. Примерно как идя на охоту за медведем обсуждать какой когть в какую ноздрю вдевать.

Кнопки вообще даолжны быть натраиваемы и на уровне шоткатов. Главное - чтобы через меню переключалось. А как \"ыстро - это, поверьте, третично
gLobster:Какие кнопки задействовать - это не функционал. Это имплементация

Согласен

Поэтому я и начал с общего видения программы. А какое оно у вас?
Ну Вы почти всё перечислили. Тока мне статистику не надо :)
Два режима.
1 - создание списка \"что купить\". При записи надо иметь возможность указать количество (штук или вес или литры) цену или сумму, котроткое примечание и соотнести с разными группами. Не с одной. Типа \"продукты\", \"финляндия\", \"Конкретный магазин\". Список на экране чтобы можно было фильтровать по этим группам. То, что раз вносилось - неплохо бы если бы запомниалось в справочнике.
2. Собственно отоваривание. По сути тот же список, но можно поставив галку \"куплено\". При этом ихз списка исчезает и перехродит в другой - покупленных. (типа ещё две предопределённых группы \"желаемое и купленное\".

В приницпе режим может быть и один, поскольку очень часто в момент покупки вспоминаешь ещё что-то и хочется его доьбавить сразу. Так что наверно я вообще за один списко на экране. С фильтрацией, сортировкой и итого.
няня, я за iphone-подобное ))


+ очень хочется то, чтобы после покупки можно было вбить в стоимость покупки - ее финальную стоимость из чека руками. так оно сведет все в одно и можно будет отследить несколько трат.

По поводу \"страничек\" . хочется иметь несколько \"категорий\", которые можно назвать как хочешь и из них выбирать нужный с покупками. что имею ввиду:
1 категория: \"продуктовый магазин\"
2 разделы: \"овощной\" , \"молочный\" , \"мясо-рыба\", \"сладкое\".
3 уже список продуктов в каждом отделе.

Вот подобного вида иерархия. Причем, для того, чтобы меньше телодвижений было - в некоторых магазинах не обязательно создавать \"разделы\", достаточно в категории записать все что нужно .\" магазин инструментов\" - \"лопата\".
А вот категория \"МЕТРО\" или \"АШАН\" или \"ИКЕЯ\" - разделы будут уже по категориям, особенно если закупаться глобально. и в каждом разделе по 3-4-5 товаров можно вписать.
Еще в идеале, к каждому профилю (которые будут храниться) можно дать \"доп.инфо\". там просто заметку от себя можно добавить, в вольной форме. Аля: адрес, время работы, телефон, есть или нет дисконт.

в вариантивном на будущее: добавить/экспортировать из csv файла \"категория магазина, название, адрес, время работы, есть ли дисконтная карта и %\". Причем если есть дисконтка, то при добавлении \"нужных\" покупок дома в категорию \"продукты\", будет список магазинов, вверху отображаться будут те, где есть скидки.

Все вышесказанное реализуется на уровне \"доп.опции\". Считаю что он нужен, но основным должен быть режим просто \"добавить покупку\" и она сразу появилась в меню, без категорий. и только по желанию (если сегодня покупок много) - оно разбивается на категории.


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


Ну да. Но такой режим, имхо, должен дополнительно включаться. все равно часто бывает такое, что нужно просто \"-что-то-не-забыть-купить-\"

Ну и еще было бы отлично иметь один список - \"неплохо бы купить\". Это из разряда того, что нужно, но не жизненно.

ps: про \"неплохо бы купить\", это к слову о том, что списки оч удобно было бы иметь)

^__^
chudesaty:Если есть необходимость, могу подробнее описать, ближе к тз

Безусловно есть :)

Все изложенные идеи правильные и полезные, но я после прочтения уже никак не могу себе представить как это все должно выглядеть :) Было бы здорово конкретизировать:
[list=1]
[*]примерный UI[/*]
[*]последовательность действий пользователя для различных юз-кейсов. То есть какие кнопки я должен нажать для выполнения различных действий:
[list=1]
[*]Добавления будущей покупки (с указанием стоимости и количества и без)[/*]
[*]Фильтрации покупок по нужным мне параметрам (находясь в магазине)[/*]
[*]Совершение покупки (с указанием стоимости и количества и без)[/*]
[/list]
[/*]
[/list]
chudesaty:Ну и еще было бы отлично иметь один список - \"неплохо бы купить\". Это из разряда того, что нужно, но не жизненно.

В шоп- и лист-менеджерах это делается при помощи поля \"приоритет\".
И нужна простая но гибкая система фильтров, для выбора отображаемых позиций. Из обязательных: приоритет < N
Из желательных: категории (несколько), магазин (один?)
Продвинутый: выделенный на всё бюджет.
Сортировку ИМХО не стоит делать. Я после многолетнего применения пришёл к такой технике - при заказе позиции (снятие галочки КУПЛЕНО) вручную поднимаю её на одну позицию вверх. Постепенно самые популярные позиции всплывают вверх. На Палме это позволяет делать ListPro - list- и outline-manager, который я использую ещё и как shopper.
Пара аналогичных программ для iPhone
http://www.youtube.com/watch?v=PgETf_70tks
http://www.youtube.com/watch?v=5e1wkLbCHig

У iNeedStuff мне понравилось угадывание магазина по GPS: он определяет в каком магазине я нахожусь и фильтрует список, исходя из того, что мы в этом магазине уже покупали.
Хотя для этого придется включать GPS -- наверное неудобно
Почитал еще как работает iNeedStuff. Я думаю что процесс составления списка в ней сделан самым удобным образом.
Плюс понравилась идея автоматической привязки товара к магазину при первой покупки этого товара в этом магазине. В результате вручную эти привязки делать вообще не нужно. Удобно.
Вот только категорий, кроме как по магазинам, в этой программе нет. Нужно придумать как прикрутить категории и фильтрацию к процессу покупки
Mitrandir:Но даже на embedded-linux-системе со 160MHz-процессором и 16мб RAM я не видел чтобы Qt-приложение запускалось 10 секунд.

Я таки понял почему Qt на diablo аномально долго запускается! Все из-за QGtkStyle -- темы, отрисовывающей Qt-виджеты с помощью Gtk-движка.
Если запускать с ключом -style plastique, то qt-программа стартует практически мгновенно! Правда при этом теряет схожесть интерфейса с Gtk, в частности страдают шрифты, которые становятся вдвое меньше. Но это легко лечится.

Ура, честь Qt оправдана. А то я уж было начал сомневаться в Qt :)
[spoiler]
Mitrandir:Если запускать с ключом -style plastique, то qt-программа стартует практически мгновенно!

Ускорение для 2-ух моих PyQt-программ составило всего 2 секунды. Стоит ли геморрой с интерфейсом этих 2-ух секунд?[/spoiler]
[spoiler]
Ну для моей C++ программы этот ключ уменьшает время запуска с 4-5 секунд до <=1 секунды.
По-видимому оставшаяся задержка в твоем случае -- это питон. Питон вообще достаточно тормозно подгружает биндинги как Qt, так и Gtk
[/spoiler]
Mitrandir:Я таки понял почему Qt на diablo аномально долго запускается!
А можещь улучшить уже существующий QT приложения? В частности @scene запускается убийственно медлено.
Kroll, ну так запускай с ключем -style plastique.
[spoiler]
Mitrandir:Питон вообще достаточно тормозно подгружает биндинги как Qt, так и Gtk

Блин, ну ради быстрого запуска так не хочется учить GTK....[/spoiler]
У меня в телефоне стояла простенькая, без финансовой части, ява-програмулька Shopper2
При всей своей примитивности довольно удобная, с готовым и разбитым на категории набором товаров, с возможностью добавления/удаления товаров и категорий. Вот, собственно оно в аттаче, можете поставить на телефон и покрутить, может, какие-то идеи навеет...

P.S. Ой, наверное это я не втему. Тут у вас такие серьезные требования, мне такое и не снилось...
Т.к. брейншторм сам собой застопорился, то я решил заняться написанием прототипа, чтобы дать конкретную пищу для обсуждений.

Пока всё примитивно. Сделано по мотивам iNeedStuff. Имеется два режима - режим составления списка и режим \"в магазине\". Добавить пункт в список можно введя его название. Когда-либо раннее введенные пункты запоминаются в списке, в следующий раз можно просто нажать на нужной позиции \"плюс\". Плюс можно нажимать несколько раз, задавая тем самым нужное количество.
В режиме \"магазин\" в списке отображаются только выбранные наименования. Кнопка \"Buy\" удаляет пункт из списка покупок.
Вообщем-то без дополнительных рюшек программа уже работоспособна и применима. Главное, на чем я старался сосредоточиться -- минимизация необходимых движений пользователя для выполнения простых вещей.

Вопрос: как добавить в эту схему дифференциацию [s]штанов[/s] товаров по магазинам и категориям?
По магазинам, я думаю, можно опять таки стащить идею у iNeedStuff -- при переходе в режим магазина спросить у пользователя название магазина, и разбить покупки на две группы -- раннее покупавшиеся в этом магазине, и не покупавшиеся. А привязку товара к магазину делать автоматически по факту ее покупки в этом магазине.
Хотя проблему с большими магазинами с кучей отделов это не решает...
Хотя... Можно сделать возможность быстро сменить текущий магазин, и разные отделы считать разными магазинами. Или сделать два уровня вложенности Магазин->Отдел.

Вообщем, с нетерпением жду комментариев, пожеланий и критики.

Вот тут бинарник:
http://skriblovsky.net/maemo/ShopListPrototype1

Требует libqt4-gui, libqt4-sql и libqt4-sql-sqlite

Бинарник нужно положить на ext2-раздел, сделать ему chmod +x ShopListPrototype1 и запустить: ./ShopListPrototype1
Хм, неплохо. Просто и удобно! Ничего лишнего! Как по мне, так не хватает тока фулскрина. :)
А нужны ли 2 режима? ИМХО просто список. Ставишь галочку \"Куплено\". Ну и при этом можно цвет поменять.
Хорошо бы чтобы столбцы были по выбору:
Цена, кол-во, ед. измерения, сумма, категория, примечание...
И еще. Чем проще, тем лучше. Всякие навороты: магазин, отдел и прочее - опция.
Все ИМХО.
DarkTroll
Спасибо, про фуллскрин я как-то забыл...

svs57
Два режима просто для того, чтобы в процессе покупки не мешались те пункты, которые не были добавлены в список.
Можно, конечно, сделать так, чтобы купленные пункты совсем удалялись, но тогда придется каждый раз набирать названия с нуля, а так можно просто тыкать в кнопочки плюс/минус на наименованиях, которые раньше уже использовались.

Стопроцентно согласен, что навороты типа категорий, магазинов и единиц измерения должны быть опциональны и не мешаться тем, кому они не нужны. Интерфейс должен быть прост насколько это возможно.

Но в этом я как раз и прошу идей: как бы добавить к этому все эти дополнительные функции, не усложнив при этом интерфейс? Чтобы они не мешались тем, кому не нужны, но были легко доступны тем, кому нужны?
Есть у кого идеи?
Так списков м.б. несколько. Выбираете нужный и используете. Поэтому и не нужны 2 режима. Не нужно удалять купленные из списка. Просто отмечать как-нибудь.
Хорошо бы чтобы товары запоминались, чтобы при новом списке можно было выбрать из запомненных или ввести новый товар.