Найти в Дзене
Разработчик Егор

Начало. Телеграм боты WebApp ч. 1

Оглавление

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

Что же мы будем делать?

Обычно, когда я изучаю новую для себя технологию, я придумываю какой-нибудь маленький проект который я смогу реализовать на этой технологии, параллельно изучая её. И этот случай не станет исключением. Это будет бот использующий API по собакам. Вот ссылка на него. Основная задача состоит в создании web интерфейса. Я хочу наполнить его различными анимациями, и потренироваться создавать списки контента. Ведь WebApp по сути решают большинство проблем и закрывают недостатки обычных ботов, такие как: отсутствие анимаций, и невозможность показывать список контента.

Что нам понадобиться?

Во-первых нужно изучить HTML и CSS, это понадобиться чтобы сделать разметку web интерфейса. Во-вторых необходимо разобраться с WebApp API. Это часть Bot API использует для инициализации WebApp, получения событий, и для отправки ответов на действия пользователя.

План работ

Давайте составим план работ. Выполнение каждого пункта плана будет сопровождаться выходом статьи. После выполнение всех пунктов плана, мы получим готовый WebApp, который я даже запущу на сервере, так чтобы все могли опробывать конечный результат!

Вот собственно сам план:

  1. Создание web интерфейса
  2. Подключение этого интерфейса к боту и получение событий
  3. Добавление анимаций
  4. Внедрение дополнительных функций в WebApp
  5. Загрузка бота на сервер

Как я уже и сказал, процесс работы над каждым пунктом будет отражён в соотвествующий статье. Статьи будут выходить у меня в канале раз в неделю по выходным. Приступим к работе.

Знакомство с HTML

Мне повезло, я буду работать с HTML не впервые. HTML использовался мною для форматирования текстов в android приложениях. Основной функцией моего WebApp будет показ картинки с собакой, и возможность поставить ей “лайк” или “дизлайк”. Эту возможность я реализую с помощью этого API. Но в этой статье не будет материала об этом. В рамках этого выпуска, я просто сделаю web интерфейс.

И так я хочу сделать вот такой интерфейс:

Дизайн того что я планирую сделать
Дизайн того что я планирую сделать

Выглядит просто, как раз подойдёт чтобы ознакомиться с HTML и CSS. HTML нужен чтобы наметить основные элементы. А CSS позволит дополнить этот каркас приятным оформлением. Здесь я не буду обучать вас этому. В этой статье я буду показываться процесс работы. Я только лишь оставлю ссылку на видео по которому я разбирался со всем этим. Вот оно. Кстати я буду писать код в IntelliJ IDEA. Я выбрал её, потому что она мне хорошо знакома. Есть и другие IDE в которых можно реализовать подобный проект. Например, SublimeText, Atom, VisualStudio Code и другие. Если собирётесь работать вместе со мной, выбирать тот, который вам больше нравиться.

Я написал разметку и подключил шрифты, но пока не использовал их. Вот что у меня получилось:

Слева HTML код, а справа отображается препросмотр
Слева HTML код, а справа отображается препросмотр

Это голый HTML - каркас нашего будущего web интерфейса.

Знакомство с CSS

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

Итоговый результат
Итоговый результат

Я узнал, что процесс создания web интерфейсов, называется вёрстка. Это радикально отличается от того с чем мне приходилось работать до этого. Но мне понравилось.

Заключение

Было не просто разобраться с вёрсткой. Да, я и не разобрался до конца. Ещё многому предстоит научиться. В будущим я планирую делать WebApp Bots часто, поэтому с вёрсткой следует разобраться хорошо. Что-то для меня было понятно, ведь я пришёл из мира Android, и многие концепции схожи. Но есть кардинальные различия, из-за этого придётся приложить много усилий к освоению web вёрстке.

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

Ссылка на мой телеграм