Pull to refresh

Изи freestyle android приложения на Kivy (Python), Google colab и ваш не любимый ChatGPT

Level of difficultyEasy
Reading time6 min
Views4.6K

Или этапы разработки первого Android-приложения для обучения

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

Дисклеймер:

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

Почему freestyle?

Дело в том, что я не создавал никаких макетов, не рисовал экраны, не продумывал логику и всего остального. Просто добавлял разные элементы в процессе создания, чувствуя себя художником с обилием возможностей. Например, такие микро-фишечки, как рандом, автопереход, статистика. Конечно, в голове генерировалось много всего интересного, что хотелось делать и воплощать. Однако я не хотел затягивать создание приложения более крупным функционалом, так как моя цель заключалась в том, чтобы создать что-то быстро с минимальными проблемами. В результате я пришел к решению, что для начала подойдет минимальный функционал.

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

Версия ПК (снизу версия для Android)
Версия ПК (снизу версия для Android)

Начало

Всё началось с того, что я искал обучающие приложения по программированию. Как ни странно, в русскоязычном сегменте почти отсутствуют подходящие приложения, а многие из них представляют справочники в виде книг. Мне же хотелось иметь приложение в виде вопросника (quiz), чтобы можно было использовать в свободное время, откладывая точную информацию в виде ответов на заданные вопросы.

Подумав, почему бы не попробовать создать своё приложение, я начал искать информацию о том, как создать приложение на Python. Наткнувшись на Kivy (про Kivy я уже знал, но не вникал), я затем обнаружил KivyMD. Дизайн и возможности KivyMD мне сразу понравились. После прочтения нескольких статей и просмотра видеороликов на youtube (вы можете найти это в интернете, всё легко находится), я решил попробовать.

Этап первый: поиск нужного функционала

Так как я не программист, не знав с чего начать, я начал искать уроки в надежде найти нужный мне функционал для реализации своего замысла. Прокликав разные запросы во всех поисковиках, я обнаружил необходимый функционал, хоть и ограничивался только начальным этапом (но даже это уже хорошо: первый экран – старт и второй экран с четырьмя окнами ответов на вопросы калькулятора (сейчас даже улыбает), на скринах, думаю, будет понятно, о чем идет речь).

Проработав от А до Я какое-либо приложение, разметка KIVY становиться интуитивно понятна (хотя это скорее всего не для всех, но всё же).

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

Этап второй: подключения ChatGPT

Пользоваться ChatGPT я начал в начале весны 2023 года, как через его API (сделав своего телеграм бота в пару строк), так и через браузерную версию, понимая, что этот инструмент является отличным помощником почти во всем. Я предполагал, что он поможет мне и в написании кода. После первого этапа, когда дописывать код с урока уже не было релевантно моим задачам, я начал загружать куски кода и просить GPT (для справки: использовалась версия 3.5) доделывать нужный функционал, с чем он почти всегда успешно справлялся.

Как пользоваться GPT подробно описывать не буду. Недавно обнаружил статью, посвященную созданию приложений с использованием ChatGPT, что добавляет интересный аспект к моему опыту. Заметил это уже после создания своего приложения. Посмотреть можно тут/клик.

p.s. Заметил что в комментариях часто спрашивают каким образом использовать ChatGPT и какой бот использовать, так вот есть телеграм бот (ссылка/клик) использует все официальные, обновлённым APi: gpt-3.5-turbo; gpt-4; gpt-4-1106-preview; gpt-4-vision-preview.

Этап третий: сборка apk

Доделав приложение до необходимого функционала, мне хотелось как можно быстрее скомпилировать его в apk, чтобы пощелкать свое творение на телефоне и затем допилить нужные детали (хотя, строго говоря, первоначальный замысел уже был готов на этом этапе). На своем пк мне не хотелось устанавливать какие-либо дополнительные программы и разбираться с технической частью, так как в процессе поисков я часто сталкивался с утверждением, что сборка – одна из самых проблемных вещей (на этом этапе у многих новичков возникают проблемы и ошибки). Подумав, что если это действительно сложно и тяжело, то я могу перейти на другой способ, но все же решил попробовать. Я начал заново искать информацию и разбираться, как выполнить сборку, и обнаружил, что можно воспользоваться Google Colab (что меня очень обрадовало).

Этап четвертый: сборка apk в Google Colab

Соответственно, на данном этапе у меня тоже возникали ошибки, и я не особо знал, как их решать, и что с ними делать. В надежде на успешную сборку я передавал их GPT, тестировал и пробовал различные варианты. Сразу скажу, что этот процесс удобнее и легче осуществлять на ПК. Я обратился к парням в телеграм-чате по разработке (находится тут/клик), начал задавать им вопросы, где-то они мне помогли, где-то я продолжил исследовать информацию самостоятельно, и в итоге смог скомпилировать свое первое приложение, что вызвало у меня максимальную радость. Сразу же загрузил его на телефон, но, к удивлению, оно не работало. Проблема заключалась в том, что я сам сделал что-то неправильно – это уже отдельная история, связанная с моим нубством. Помощь мне оказал парень из чата (привет, Павел).

Что нам нужно для сборки в Google Colab:

  • аккаунт в Google;

  • немного технических знаний (главное);

  • самое главное: наш прилично оформленный код приложения;

  • в принципе, больше ничего и не нужно.

Для удобства я составил инструкцию, чтобы быстро проверять. Делюсь с вами:

Сборка мобильного приложения на KIVY для Android через Google Colab

  1. Просмотрите это видео

  2. Далее переходите к файлу buildozer

Файлы исключения для buildozer:

source.include_exts = добавить используемые форматы в коде, например mp3, ttf

Все используемые библиотеки для buildozer:

requirements = python3,kivy,kivymd (если используется kivymd, пишем обязательно; встроенные модули не писать, например, не писать: random, json)

Сборка конфигурации:

android.archs = armeabi-v7a

Остальное для первого раза можно оставить по умолчанию.

  1. Примечание: следуйте указанным командам для Google Colab, здесь они представлены.

Таким образом, вы сможете эффективно использовать Google Colab для сборки мобильного приложения на KIVY для Android. Но всё всегда меняется в том числе данный туториал, так что это работает на 02.02.2024, а лучше используйте сразу пк.

Заключительный этап:

Закинув приложение на телефон, я провел тестирование и вновь испытал радость от успешного результата. И приступил к завершению своих микрофишек, о которых упоминал в самом начале статьи. На этом можно было бы заканчивать, так как я завершил разработку приложения, но возник один нюанс. После того, как весь функционал был создан, на компьютере всё работало отлично: статистика функционировала, результаты quiz'а сохранялись в формате JSON. Но после сборки на Android результаты не сохранялись, и это стало для меня вызовом, так как на компьютере всё успешно сохранялось, а на телефоне результаты обнулялись после перезапуска. На этом этапе я снова начал искать информацию и обратился за помощью в чат. Там мне посоветовали установить ADB (Android Debug Bridge). Я продолжил поиск информации, перечитывая, вероятно, всё, что есть в интернете, как полезное, так и бесполезное. Снова в чат, и снова мне сказали установить ADB.

Затем приложение было адаптировано для сохранения в формате INI (что также не помогло). Я думал переписать в формат TXT, чистый JSON или использовать TinyDB. Откровенно говоря, к этому моменту у меня уже не оставалось сил разбираться с ADB. Я попросил участника чата проверить приложение в ADB (Привет, Павел, если ты читаешь - то ещё раз привет), но он ничего не обнаружил. Затем в чате на мои умоляющие обращения отозвался парень по имени Алексей (привет, Алексей, спасибо за помощь, если читаешь). Я ему отправил свой проект и код, он провёл проверку и нашёл ошибки, указав меня на них. Хотя на самом деле это были не ошибки, а просто упущения в коде - пропущены два вызова функции сохранения. Ну вот и всё, приложение готово, и теперь вы можете ознакомиться с ним ниже?.

Экран 1
Экран 1
Экран 2
Экран 2
Экран 3
Экран 3
Экран 4
Экран 4


Мой канал, для тестирования хабр эффекта.

Выводы

  • Kivy и KivyMD – это отличные инструменты, которые меня впечатлили. Подходит как для новичков, так и для профессионалов. С их помощью новичок может легко создать простое или средней сложности приложение, в то время как опытные программисты могут разработать мощное и красивое приложение. Существует обилие примеров, что делает их использование ещё более привлекательным.

  • Рекомендую избегать повторения моего опыта и сразу начинать работать на пк. Хотя, для первоначального опыта можно воспользоваться Google Colab.

  • Если вы решите заниматься созданием приложений для Android, учтите, что вам придется установить Android Debug Bridge (ADB).

  • Независимо от того, что говорят, от работы с ChatGPT не стоит отмахиваться. Этот инструмент – отличный помощник, который быстро и почти всегда предоставляет необходимую информацию (соответственно на данный момент в рамках разумного).

Tags:
Hubs:
Total votes 12: ↑11 and ↓1+13
Comments2

Articles