Мой опыт во время первой технической ориентации в KITE

Я Марудху Паандиан К., технический энтузиаст, первокурсник Технологического института KGiSL. Я посетил вводную программу, где доктор Ашок Бактаватсалам, сэр, прочитал лекцию по инкрементному программированию и показал нам игру в угадайку с графическим интерфейсом, позже нам была дана более простая текстовая версия, шаг за шагом, чтобы научить нас основы программирования.

Я занимаюсь программированием как хобби с 8-го класса. Честно говоря, я не был большим поклонником создания пользовательского интерфейса, поскольку это немного громоздко (особенно современные интерфейсы), и я никогда не думал, что это можно сделать с помощью Python.

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

Встреча началась около 21:00 и продолжалась до 22:00. Мы начали обсуждать план действий на следующий день. Я работал над проектом, находясь на встрече. До сих пор почти не было достигнуто никакого прогресса, так как я еще не решил, какую структуру использовать.

Первой большой задачей при создании пользовательского интерфейса был выбор фреймворка. Сначала я запустил пользовательский интерфейс с Tkinter, когда мне дали задание. После создания грубого экрана только с элементами стало очевидно, что нужно что-то менять, и я отказался от того, что было сделано до сих пор, и начал искать другой фреймворк. Было около 22:20, когда я выбрал фреймворк и сделал грубый набросок того, как должен выглядеть пользовательский интерфейс. Выбранный фреймворк был customtkinter. Это хороший пакет, обертывающий Tkinter и упрощающий создание современных пользовательских интерфейсов.

Следующей большой проблемой был выбор структуры проекта. К моему удивлению, я узнал, что не существует определенного метода создания пользовательского интерфейса, в отличие от других случаев, таких как приложение для Android. Изучив некоторые ранее предложенные другими разработчиками подходы, я выбрал свой подход.
С одним основным классом и каждой страницей как функцией класса. Логика игры написана в другом файле и связана с пользовательским интерфейсом. Было около полуночи, когда я начал свой подход и сделал логику, чтобы он выглядел так, как будто пользовательский интерфейс имеет несколько экранов, сделал первые 2 страницы и решил продолжить после некоторого сна.

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

Услышав это, я вспомнил приложение, которым пользовался мой друг, оно называется Figma. Это инструмент, используемый для рисования макетов для создания веб-страниц, мобильных приложений и многого другого. Я сделал прямоугольник, представляющий размер экрана, и начал делать блоки для разных кнопок, текстовых полей и полей ввода. Был разработан грубый процесс для пользовательского интерфейса, и я скопировал координаты и значение размера полей, чтобы пользовательский интерфейс выглядел лучше. Этот процесс занял около 20–30 минут, и проект был завершен практически без остатка времени на часах.

В целом это был веселый и интересный опыт. Презентация прошла гладко благодаря команде разработчиков и персоналу. Я научился создавать пользовательский интерфейс, подключать его к логике и обеспечивать бесперебойную работу. Этот проект также заставил меня выйти из моей зоны комфорта и помог мне преодолеть страх сцены. Искренняя благодарность доктору Ашоку Бактаватсаламу, сэру, технической группе и персоналу PSPP за предоставленную мне возможность.

Все желающие могут проверить проект по ссылке ниже:
https://github.com/marudhu2004/The-Guessing-Game

Спасибо за чтение.