Pull to refresh

Comments 45

Полезная вещь:)
Не думали прикрутить поддержку Lightroom?
Думал, но как то лень было разбираться с форматом их каталога ) Тем более, пришлось бы сначала импортировать фотографии в лайтрум, потом импортировать этот каталог в isortManager, потом обратно. Напрямую — не очень хорошая идея, так как придется копировать на устройство тысячи файлов каталога.
Прикрутил поддержку экспорта в xmp, теперь лайтрум при импорте подхватывает рейтинги.
Получилось неплохо. Но есть вопрос — все необходимые библиотеки в apk помещены или что-то необходимо залить на устройство до установки apk?
похоже все в apk, иначе в Google Play бы не пропустили.
Если так, то вообще отлично. Жду следующей статьи с описанием процесса сборки
Да да, все в apk, включая python runtime.
При необходимости можно использовать еще кое какие библиотека, хотя с sqlite3 у меня, например, ничего не вышло.
Полный список здесь github.com/kivy/python-for-android/tree/master/recipes
Боюсь, прямая ссылка на веб-сайт с кучей веб-кошельков + просьбы доната чреваты «Автор переместил свой пост в черновики»…

А вообще, очень бы не помешали хотя бы скрины, как рисуется GUI, внешний вид IDE (кстати, какой?), простейший пример точки входа (аналога onCreate в Android Java).
А что плохого что на официальном сайте программы, распространяющейся с открытыми исходниками есть возможность отправить донейт проекту?
Простейший пример «точки входа», я привел в топике ( пример Hello World).
IDE любая, вплоть до блокнота, так как мы пишем обычный питон скрипт, и запускаем обычным для питона способом.
Простейший пример «точки входа», я привел в топике ( пример Hello World).
IDE любая, вплоть до блокнота, так как мы пишем обычный питон скрипт, и запускаем обычным для питона способом.


визуально код Hello World совсем не похож на то, что делается под Android, значит ничего платформо-зависимого в этом фреймворке нет? Т.е. мы не знаем об Activity, Intent и пр?
В блокноте как-то не удобно рисовать GUI, а в статье сказано, что kivy был выбран из-за удобства создания GUI. В чем же все рисовалось? Покажите процесс разработки хотябы…
Да, платформозависимого в этом фреймворке нет. Кое что по мелочи есть в модуле android
В этом есть своя прелесть, так как один и тот же код можно запустить на разных платформах, без доработок.
GUI билдеров нет, то есть нет возможности рисовать UI приложения, все делается «ручками». Прямо в коде, либо используя специальный kivy language. Все достаточно просто.
А вот то, что GUI делается ручками, печально.
Давно присматриваюсь к этой библиотеке, но все-таки 7 мегабайт за простенькое приложение это много. Но это и понятно, оно по-идее полностью весь Python с библиотеками копирует в приложение. Если выпилить лишние библиотеки из самого Python то оно их и не запакует в приложение.
Да, размер это минус, но для специфичных приложений в отличии от сто первого калькулятора для android, думаю пользователям не так критичен размер.
Когда на телефоне мало внутренней памяти для приложений это очень критично. Как вспомню, как боролся за каждый мегабайт на своем HTC Legend… Но с Вами согласен, если приложение полезное, то занимаемые мегабайты не совсем мешают.
7МБ — цветочки. Мне Titanium Appcelerator когда-то выдал Hello World на 12 Мб без возможности вынести на SD. Возможно, конечно, сейчас что-то и изменилось, но тогда такой объем меня сильно опечалил.
Идеальной, с моей точки зрения, видится возможность устанавливать рантайм отдельно, как это сделано для AIR приложений. Экономия дискового пространства, при наличии нескольких приложений на одной платформе, в таком случае значительная.
Так можно было делать на symbian, причем при попытке установить приложение на python без установленного runtime, предлагалось скачать его из нокиевского «репозитария».
Для важного корпоративного софта отдельный рантайм для платформы еще понятно, но попробуй простому юзеру объяснить что ему надо ставить одно приложение чтобы работало другое :) Все-таки правильнее паковать нужные ресурсы внутрь приложения, пока окружение не популярно. Когда на телефоне хотя бы каждое 10е приложение будет написано на Python — вот тогда одна общая среда будет оправдана.
можно ведь сделать два apk — один полный (7МБ), второй маленький со ссылкой на рантайм (или для тех кто уже установил RTM). Кстати если приложению все равно нужен интернет, то рантайм можно зделать загружаемым при первом запуске проверять наличие и если нет — что-то типа: для корректной работы нужен питон… загружаю… взлет!).
Подскажите дураку где можно узнать побольше о выпиливании лишних модулей из python?
Когда сделаете ./distribute.sh, загляните в папку dist, там есть файл blacklist.txt, там будет список модулей, который не нужно включать в проект, а дальше уже методом научного тыка )
а хотя бы примерное дерево зависимостей для модулей питона есть в природе?
Вопрос интересный, но я не думаю что это даст большой выигрыш, так как основной размер, это не pure python модули, сишные расширения и сам интерпретатор, которые жизненно необходимы, и даже unicodedata.pyd, который я обычно выкидываю из виндовых сборок, используется в kivy.
Я смотрел бы немного в другую сторону:
В windows я в два раза уменьшаю размер дистрибутива, прогоняя pyd и dll файлы через upx (python27.dll из 2.5 мб превращается в 800 кб), но для платформы arm я не нашел подобного (
dirануть рабочий проект и поудалять что не надо религия не позволяет?
Эммм… А вот что именно не нужно как выяснять?
Спасибо, буду копать. Возможно получится патчик написать для «сборщика».
Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase.


Размер Kivy Showcase 4.6M, что как бы < 7M.
Видимо они предприняли ряд мер по сокращению размера. Анализ?
Да, кстати, плюс еще пару демонстрашек имеют размер такой же, надо будет посмотреть в чем различия.
Если Kivy такой кросс-платформенный, почему вы не сделали заодно десктопный компонент на нём?
Так уж сложилось ) Сначала написал isortManager и isortViewer для PC на Tkinter, который я знаю практически идеально (много проектов писал на нем), а потом можно сказать портировал isortViewer на android, взяв около 70% кода с PC-шной версии.
Вот интересен был бы обзор GUI на Tkinter, wxPython, PyQt (PySide) и PyGTK. Боюсь получится холивар, правда.
Tkinter хорош тем, что он почти нативный в Python, а wxPython делает GUI нативными для каждой платформы, что как бы не пугает пользователя. Qt — эмулирует все GUI чтобы они были похожи на нативные и вообще он монстраидален тут.

В описание к Tkinter сказано что используя темы можно добиться изображения GUI близкого к платформе, как с этим дело обстоит? Старые tk виджеты как бы могут легко распугать виндовз пользователей (IMHO).
Нет нет, Tkinter это вообще обертка над Tcl/Tk и в сборке приходится таскать интерпретатор этого языка с собой, хотя размер получается меньше чем с другими тулкитами.
Насчет внешнего вида — посмотрите на скриншот виндового приложения в топике — выглядит вполне нативно, да и темы виндовые подхватываются. Начиная с python 2.6 в комплекте идет tile, который как раз таки заботится об этом.
Вот с linux беда — мне никак не удалось заставить Tkinter выглядеть не убого.
Другими GUI тулкитами не пользовался, на 100% хватало ткинтер, делал более сложные GUI на нем.
Кстати, приложение на pygame тоже будет весить около 7MB, ведь также надо с собой интерпретатор python носить и все необходимые либы?
Нет, раза в два меньше. У меня есть одно приложение сделанное с помощью pygame (все руки не доходят закончить), оно занимает 3.6 мб.
Дело в том что kivy сам по себе использует pygame, плюс еще кучу разного. За простоту разработки и за мощные «батарейки» приходиться платить размером. Выше уже писал, что, например, реализация видеоплеера займет 20 строк.
Да я смотрел, значит нельзя. Это еще один минус.
чет на официального сайте я не нашел исходников ((( можете дать линк на них?
а я вот сам не догадался ))

Not Found

The requested URL /static/isort_source.zip was not found on this server.
Сорри, забыл файлик кинуть. Сейчас все нормально.
Sign up to leave a comment.

Articles