Редактор пайтон для андроид

Полноценное Python приложение на Android

В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.

Начну рассказ пожалуй с самого приложения и завершу рассказам о том как оно делалось.

isortViewer

Мне как фотографу приходится тратить много времени на сортировку и отбор фотографий. Не всегда хочется сидеть за рабочим компьютером, когда под рукой есть ноутбук, смартфон или планшет, но копировать туда десятки гигабайт raw или jpeg файлов, а потом синхронизировать с рабочим компьютером — сомнительное удовольствие. Именно поэтому я создал программы isortManager и isortViewer, которые значительно облегчили мне работу по сортировке и отбору фотографий. Теперь заниматься отбором и сортировкой фотографий я могу лежа на пляже диване или скучая в пробке 🙂

Копипаст описания и пара скриншотов:
isortViewer — программа для фотографов, которая позволяет легко и быстрой отбирать и сортировать тысячи фотографий (raw или jpg) с фотосессий на ваших android смартфонах и планшетах. При этом, нет необходимости копировать десятки гигабайт jpg или raw файлов на устройство. Просто воспользуйтесь бесплатной программой isortManager для компьютера, которая сохранит все в один небольшой файл проекта:
1. Скачайте и запустите isortManager с официального сайта;
2. Создайте проект и добавьте папки с фотографиями. Поддерживаются форматы: jpg и raw (cr2, nef, orf и т.д.). В итоге у вас получится небольшой файл проекта (примерно 150 мб на несколько тысяч фотографий, будь то jpg или raw формат);
3. Скопируйте на ваше android устройство файл проекта, откройте в isortViewer. Вы можете помечать фотографии «на удаление», а так же, ставить рейтинги от 1 до 5 звезд;
4. После этого, скопируйте файл проекта обратно и примените изменения в isortManager. Кроме удаления выбранных фотографий, вы можете копировать или перемещать отмеченные фотографии. Например, фотографии с «5 звезд» можно скопировать в папку «шедевры», а «1 звезда» переместить в папку «хлам».

Приложение абсолютно бесплатно и доступно на google.play, однако донейты приветствуются.

Исходники доступны на официальном сайте!

Как это делалось

Так как python лучший язык программирования в мире кроме python я ничего не знаю, решено было написать приложение на python.

isortManager

С isortManager для PC проблем не возникло, создание GUI сборки под windows уже давно обкатано и работает он очень просто: с помощью dcraw выдирает jpg превьюшки из raw файлов, ресайзит из с помощью PIL и складывает в один файл с достаточно простой структурой. Был изобретен свой весолипед с контейнером для хранения фотографий и метаданных (полный путь к фотографии, отметка «на удаление» и отметка рейтинга), так как, например, zip или tar формат, не могут изменять один файл в архиве (метаданные), требую перепаковки всех файлов. Файлы просто пишутся один за другим подряд и в блоке метаданных (обычный repr питоновского словаря) в конце сохраняется смещения начала файлов, плюс в конце файла пишется размер блока метаданных. GUI написано на Tkinter (люблю я его за быстроту написания и за малый размер итоговой сборки), вот собственно скриншот:

И да, все это работает и на linux, и даже быстрее чем на windows )

Читайте также:  Цифровой ресивер для андроид
isortViewer для android

Всего я нашел два способа заставить python приложение работать как полноценное приложение на android, это pygame for android и проект kivy.
Pygame — более низкоуровневый, все UI пришлось бы рисовать вручную, что отняло бы много времени, поэтому был выбран фреймворк kivy. Итак:

Это замечательный фрейморк для написания приложение для windows, linux, MacOS, android и iOS. Поддерживается мультитач, UI рисутется через OpenGL, значит должно работать аппаратное ускорение. Увидеть работу виджетов можно установив демонстрационное приложение Kivy Showcase. Есть возможность использования некоторых платформо специфичных функций, например, вибро или акселерометр, с помощью модуля android.

Для разработки я бы рекомендовал использовать linux, тем более, apk собираются именно в этой OS.

Hello World выглядит так:

Причем этот код будет работать на всех заявленных платформах. Пропадает необходимость в тестировании приложения в эмуляторе. Достаточно запустить скрипт на исполнение в своей любимой IDE и увидеть результат на экране компьютера, без задержек на компиляцию, запуск эмулятора и пр. Если вы все же хотите увидеть как это будет выглядеть непосредственно на устройстве, просто установите Kivy Launcher, скопируйте файлы проекта на карту памяти и запустите. Дебажить при этом можно при помощи adb logcat.
Если вы используете библиотеку android, которой нет на PC, но хочется запускать приложение не только на android, воспользуйте такой конструкцией:

Сборка apk достаточно проста и описана на этой странице. После сборки релиза, достаточно подписать свое приложение (я использовал этот мануал) и выложить в google play.

Плюсы kivy:

  • Быстрая разработка под различные платформы, практически без доработки кода.
  • Доступен широкий выбор виджетов
  • Высокая скорость работы. Весь ресурсоемкий вынесен в С модули. Сам интерпретатор python на android работает нативно.
  • Фремворк включает в себя множество инструментов, например анимация, кеширование и пр.
  • upd: Доступ к камере, буферу обмена, микрофону. Написать свой видеоплеер можно буквально за 20 строк.

Минусы kivy:

  • Большой размер apk файла. Проект с 300 кб ресурсов (скрипты, графика) собирается в 7 мб apk. Хотя, думаю, есть возможность это как то оптимизировать.
  • Невозможность (пока), восстанавливать работу после сворачивания — приложение закрывается

В следующей своей статье, я расскажу более подробно о процессе написания приложения «с нуля», расжевывая каждую строчку кода.

Хотелось бы сразу пресечь холивары на тему «для android только java, python не нужен». Я считаю, не важно, какие технологии «под капотом», главное чтоб приложение было качественным.
Сфера применения kivy может быть огромной. Сейчас на моем счету несколько приложений, написанных под заказ, где python с фремворком kivy показал себя с хорошей стороны. Например, ровно за один час, было написано приложение, для сети сервисных центров. Приложение работает в режиме киоска и установлено на дешевые китайские планшеты, которые висят в холле. Клиент набирает номер заказа, далее по WiFi планшет соединяется с сервером и сообщает статус заказа.

Источник

10 лучших редакторов кода Python для Android

Звучит довольно странно, не так ли?

Писать код на смартфоне — не так уж и просто, но уже сейчас существуют продвинутые приложения для этих целей, которые могут выполнять свои задачи как на стороне клиента, так и на стороне сервера.

Android-устройства же в любом случае сегодня есть у многих.

Все хотят научиться программировать, но ограничены определенными условиями. Как минимум тем, что для изучения основ необходим персональный компьютер.

В прошлом не было другого выбора, кроме как покупать ноутбук или стационарный ПК. И в худшем случае обладатели новых устройств быстро осознавали, что программирование — это не для них.

Однако в 2021 абсолютным новичкам можно не тратить деньги, а попробовать познакомиться с миром разработки с помощью мобильных приложений.

Почему бы не использовать сайты для программирования на телефоне

Еще одна особенность изучения программирования на смартфоне — необходимость писать код прямо на сайтах. Для этого можно использовать такие ресурсы, как W3Schools, Learnpython, Codeacademy и другие.

Читайте также:  Рейтинг лаунчеров андроид для автомагнитолы

Редакторы этих сайтов достаточно продвинуты, но им все равно не хватает таких функций, как форматирование кода, отступы, подсветка синтаксиса и сохранение файлов.

В отдельных же приложениях все это есть. Они опираются на встроенные в них или онлайн-компиляторы. Такие вещи, как разные темы или подсветка синтаксиса, также доступны. Есть в них и такие функции, как расширенная клавиатура и автодополнение.

Pydroid 3

Это одна из лучших программ на сегодня, которая поддерживает интерпретатор Python 3.8, работающий целиком офлайн.

Также есть поддержка таких продвинутых библиотек, как NumPy, SciPy и matplotlib для анализа данных. Для машинного обучения есть Scikit Learn и TensorFlow. И даже для разработки приложений с графическим интерфейсом можно использовать Tkinter.

Есть и масса других вещей:

  • Интерпретатор Python 3.8
  • Доступный офлайн компилятор
  • Пакетный менеджер pip с легко импортируемым репозиторием библиотек, таких как scikit-learn для машинного обучения, NumPy, matplotlib, Panda и так далее
  • Крупные библиотеки, такие как TensorFlow
  • Примеры для быстрого изучения Python
  • Tkinter (библиотеки для разработки графических интерфейсов Python)
  • Поддержка терминала
  • Поддержка CPython
  • Встроенный компилятор C, C++ и Fortran
  • Отладчик PDB
  • Доступность графической библиотеки с SDL2
  • PyQt5 и другие библиотеки быстро устанавливаются
  • Поддержка Pygame 2

Особенности редактора

  • Автоматические отступы
  • Предсказание кода
  • Подсветка синтаксиса
  • Продвинутая навигация по коду
  • Поддержка нескольких вкладок

Стоимость

  • Базовая версия — бесплатно
  • Обновление — $13.99

Acode

Простая и легкая IDE для Android, которая работает не только с Python, но и множеством других языков.

С помощью этой программы вы сможете написать программу на Python, а также сверстать веб-страницу, используя HTML, CSS и JavaScript. Вот что еще есть в этой программе:

  • Поддержка терминала
  • Возможность редактировать файлы с любого устройства
  • Поддержка GitHub
  • Поддержка FTP
  • Это приложение с открытым исходным кодом, поэтому оно полностью бесплатное и лишено рекламы
  • Рабочий процесс простой и гибкий
  • Поддерживаются Python, PHP, Java, JavaScript, C, C++ и так далее
  • Широко настраивается
  • Есть консоль JavaScript

Особенности редактора

  • Поддержка синтаксиса для функций, классов и переменных
  • Больше 10 тем
  • Удобный интерфейс
  • Предпросмотр HTML прямо в приложении
  • Горячие клавиши
  • Нет рекламы

Стоимость

Dcoder

Еще одна мобильная IDE со встроенным компилятором и поддержкой более 50 языков, включая C, C++, Python и Java. Также поддерживаются такие фреймворки, как React.js, Angular, Django, Flask, Flutter и другие.

По производительности это приложение сравнимо с Notepad++, Sublime Text и Eclipse. Также есть встроенные алгоритмические задачи разных уровней сложности.

  • Поддерживается большинство популярных языков программирования, включая Pascal, Swift, Objective-C и так далее
  • Поддерживаются Python 2.7 и Python 3
  • Результаты компиляции легко обрабатываются
  • Доступны задачи для саморазвития
  • Поддерживаются такие фреймворки, как Python, Django, React.js, Flutter и Angular
  • Поддержка GitHub
  • Можно опубликовать проект прямо с телефона

Особенности редактора

  • Подсветка синтаксиса
  • Автоотступы и расстановка скобок
  • Отмена последнего действия
  • Рекомендации

Стоимость

Programming Hub

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

  • Иллюстрации концепций для простого изложения сложных вещей
  • Поддержка Python 2.7 и 3.7
  • Поддержка таких языков программирования, как C, C++, HTML, JavaScript и R
  • Оболочка Linux
  • Есть курсы программирования
  • Можно изучать SQL
  • Есть даже материалы по анализу данных

Особенности редактора

  • Интерактивность
  • Автоматические отступы
  • Подсказки по мере набора кода
  • Один из лучших редакторов с поддержкой искусственного интеллекта
  • Нет рекламы

Стоимость

Spck Code Editor

Это один из лучших редакторов кода на Android. Его можно установить в Google Play и сразу же начать использовать для написания кода на HTML, CSS, JavaScript, Python, Ruby, C++ или Java.

У него также есть поддержка подсветки синтаксиса для TypeScript и Emmet.

  • Легко можно клонировать и работать с репозиториями GitHub, GitLab и Bitbucket
  • Интеграция с Git
  • Продвинутый просмотр веб-страниц
  • Поддержка консоли JavaScript
  • Экспорт и импорт в формате ZIP
  • Не нужен интернет для работы
  • Поддержка основных языков программирования. А HTML, CSS и JavaScript поддерживают, в том числе и подсветку синтаксиса
  • Есть возможность делать резервные копии файлов
Читайте также:  Восстановление данных андроид после хард ресет

Особенности редактора

  • Расширения клавиатуры для ускорения процесса набора кода
  • Автодополнения
  • Автоматические отступы (js-beautify)
  • Поддержка светлой и темной тем
  • Поддержка Emmet

Стоимость

Creative IDE

Это не просто среда разработки, но еще и обучающая платформа. Приложение поддерживает десятки языков программирования и столько же фреймворков. Работает без интернета и поддерживает Python 2.7 и Python 3.

Отличная программа, в том числе и для начинающих разработчиков. Помимо редактора кода включает некоторые продвинутые функции.

  • Работает без интернета
  • Подходит для начинающих
  • При работе с кодом не возникает проблем производительности (можно работать более чем с сотнями строк кода)
  • Ошибки легко разрешаются
  • Благодаря отладчику все ошибки легко решаются
  • Есть встроенный браузер в стиле Chrome с инструментами для разработчика, инспектором, консолью и возможностью посмотреть исходный код веб-страницы
  • Занимает немного места и отлично работает на бюджетных устройствах

Особенности редактора

  • Есть поддержка темной темы
  • Можно использовать неограниченное количество вкладок и терминалов
  • Расширенная клавиатура
  • Есть подсветка синтаксиса для функций, классов и методов
  • Есть поддержка таких функций, как буфер обмена, палитра цветов и так далее

Стоимость

QPython 3L

Еще один производительный и удобный редактор на Android — QPython 3L. У него есть такие встроенные функции, как QPYI, интерпретатор, среда выполнения и поддержка SL4A.

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

  • Есть поддержка QPYI и SL4A
  • Приложение с открытым исходным кодом — бесплатное и без рекламы
  • Интерпретатор Python работает офлайн
  • Поддерживает работу нескольких программ одновременно: веб-приложение, консольное, SL4A и так далее
  • Поддерживаются такие библиотеки, как NumPy, SciPy, matplotlib, scikit-learn
  • Есть документация для всего
  • Поддержка GitHub

Особенности редактора

  • Простой интерфейс
  • Подсветка кода и автоматические отступы

Стоимость

Online Compiler

Это одно из лучших приложений, которое вполне может выступать в качестве редактора кода Python. Оно поддерживает больше 23 языков, работая без зависаний. Одно из основных отличий — работе в облаке, что позволило снизить размер самого приложения до 1,7 МБ.

  • Поддерживает более 23 языков
  • Поддерживается оболочка Linux
  • Поддержка GCC-компилятора C, C++, C++ 14, C++ 17 и компилятора для C#
  • Поддержка Python 2.7 и 3.0
  • Размер приложения всего 1,7 МБ (но интернет-соединение является обязательным)
  • Файлы можно запросто импортировать из локального хранилища

Особенности редактора

  • Подсветка синтаксиса разными цветами
  • Функция автосохранения

Стоимость

Code Editor от Rythm Software

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

  • Поддерживаются более 110 языков программирования, включая разные версии Python
  • Есть встроенная консоль JavaScript
  • Можно получить доступ к файлам из Google Drive, Dropbox и OneDrive
  • Можно создавать неограниченное количество вкладок и переключаться между ними
  • Поиск и замена

Особенности редактора

  • Автодополнение, которое значительно ускоряет процесс набора
  • Отмена и восстановление последних изменений
  • Расширенная клавиатура
  • Автоматические отступы
  • Предпросмотр HTML и Markdown
  • Есть 3 темы
  • Подсветка синтаксиса

Стоимость

DroidEdit

Это редактор кода для смартфонов и планшетов на Android. Поддерживает несколько языков, включая разные версии Python. Лучше всего работает со внешними клавиатурами, как, например, у ASUS Transformer.

Есть бесплатная версия и платный вариант с поддержкой SSH и SFTP.

  • Поддерживает более десятка языков, включая C, C++, Java, Python и других
  • HTML-файлы можно открывать прямо в браузере
  • Можно импортировать файлы из Dropbox
  • Поддерживается SL4A
  • Есть поддержка кодировки
  • Платная версия предлагает защищенный терминал, root, поддержку Dropbox и других хранилищ, а также SFTP/FTP

Источник

Оцените статью