Сказ о том, как я мессенджер на Python писал, или Краткое пособие по вызову Сатаны через Gradle
Минуту вашей эмпатии, господа. Сейчас будет история о том, как амбиции разбиваются о суровую реальность зависимостей, а психика программиста - о нежелание технологий дружить друг с другом.
Решил я как-то написать простенький мессенджер на Python. Ну, знаете, накидать бэкенд, прикрутить мобильный клиент - чисто для себя, «делов на вечер». Но когда дело дошло до сборки Apk через Android Studio... тут начался сущий ебаный ад.
Во-первых, сама по себе сборка через Gradle - это уже процесс максимально деструктивный для психики. Но настоящий квест начался, когда выяснилось, что Gradle 9 версии в упор не хочет работать с моим Python 3.14. Оказывается, эта связка просто мертва. Выясняю: всё, что выше версии 3.11, не подходит, потому что начиная с Python 3.12 из дистрибутива вырезали пакет distutils, на котором держалась вся логика сборщика. Думаете, я просто откатился на 3.11 и всё заработало? Как бы не так! 3.11 тоже отказался сотрудничать, потому что у него обновились методы сборки, конфликтовавшие с текущими скриптами. В итоге мне пришлось вызывать духа (ещё живого) Ван Россума и откатывать сам Gradle до версии 8.3.
И тут же прилетает от Java. Старая версия Gradle (чтоб её черти ебали) предсказуемо (не очень) начала конфликтовать с новой JDK. Пришлось материться, удалять всё и откатывать Java до 17-й версии. В этот момент я уже начал подозревать неладное.
Но.. После этого проект наконец-то соизволил собраться... Чтобы мгновенно закрыться сразу после запуска. Я сидел и искал логи, а их просто не было. Logcat девственно еб его мать чист. Только спустя вечность я понял: внутри приложения происходит конфликт фронтенда с бэкендом на таком раннем этапе, что приложение крашится еще до того, как инициализируется система логирования. "Пиздец" подумал я..
Кое-как поправил. Запускаю - висит на регистрации. Тыкаю кнопки - ноль реакции. Спустя сотню проверок и литры слез выясняется (через терминал на сервере): мой фронтенд отправляет данные в формате JSON, а сервер, ПИДАРАС, ждет не JSON, а FORM-DATA.. ЫАААА..
В общем, посмотрел я на эту хуебесию, плюнул на всё, снес проект.. И пошел переписывать всё с нуля на Flutter, чтобы больше никогда в жизни не видеть этот Python-пакет в контексте мобильной разработки.
