Додаток python kivy для дієтичного різноманіття

Я вивчаю python kivy і для себе вирішив написати невеличку заявку, щоб урізноманітнити свій раціон. Вирішив поділитися. Стаття призначена для початківців у киві. Додаток займає близько 100 рядків коду.
Мета створення велопрограми:
- Уникайте частих повторень дієти. Щоб не їсти одну і ту ж страву занадто часто.
- Я не забував страви, які їв, потім забув і роками до них не повертався, бо не пам'ятав банального. Це трапляється зі мною.
Вступ
Ви не можете прочитати жодної вступної лірики.
Мені довелося жити в одній країні, в одному готелі, де їх щодня годували на сніданок яйцями і нічим більше, і через місяць він почав свербіти. Він звернувся за медичною допомогою, хоча раніше нічого подібного не страждав. Навчившись гіркого досвіду, після цього він вирішив для себе дозволити якомога менше повторень у їжі, щоб він не міг накопичувати нічого в своєму тілі. Це мій особистий досвід, я просто розповідаю, не нав'язуючи. Можливо, тут немає без винятку правил, ймовірно, вівсянку можна їсти щодня протягом десятків років.
Знімки екрана
Припустимо, моя дієта складається з 50 страв. Наприклад, сьогодні я їв омлет. Я натискаю на кнопку, і омлет стоїть на 50-му рядку в черзі, а перед ним 49 страв, які я з’їм, щоб знову дійти до омлету. Ось і вся логіка програми. (На знімках екрану страви голі, всі випадковості випадкові, вони не мають ніякого відношення до моєї реальної дієти).
Вихідний код та пояснення
Я навмисно не використовував kv-файли, оскільки код подано в навчальних цілях для людей, які знайомі з python. Все написано на голому пітоні. У поясненнях я не буду зупинятися на поясненнях коду python, а відразу перейду до специфічних особливостей Kivy.
Клас відповідає за запуск початкової сторінки програми, його можна викликати як завгодно, наприклад StartScreen. І успадковує модуль kivy Screen. Додаток складається з 3 вікон, ці вікна створені за допомогою цього модуля.
BoxLayout ділить екран на рівні частини, за замовчуванням горизонтально, я написав орієнтацію = 'вертикальний', щоб розділити вертикально
Кнопка - створює кнопки, в on_press встановлюється, яка функція запускатиметься при натисканні.- - додає кнопки до шарів та вікон
Розмітка сітки дещо схожа на тег таблиці в html, вказуючи cols - кількість стовпців або рядків - кількість рядків.
Ви можете вказати обидва параметри або один параметр.
Екран буде розділений на потрібну кількість відсіків.
RecycleView - це модуль, який створює вертикальну прокрутку в моєму додатку. Особливістю RecycleView є те, що він створює сувої з елементами однакової ширини та висоти. І це працює швидко. І є модуль ScrollView, він може будувати сувої з елементами різного розміру, але він працює повільніше, ніж RecycleView