Кросплатформне програмування
Мета даної дисципліни – надати студентам знання та практичні навички з розробки кросплатформних застосунків із використанням Python, розуміння архітектурних підходів, інструментів та фреймворків для створення десктопних, мобільних і веб-рішень, що можуть працювати на різних операційних системах.
Практичне значення та використання отриманих знань полягає у:
формування навичок розробки програмних продуктів, що працюють на різних операційних системах та пристроях;
опанування сучасних підходів до створення мобільних, настільних та веб-застосунків на Python;
розуміння принципів UI/UX для кросплатформних інтерфейсів, включно з адаптивним дизайном;
отримання досвіду структурування програмних проєктів, розширюваності та підтримуваності коду;
формування компетентностей у роботі з мережевими протоколами, API, та інтеграцією сервер–клієнт в одному середовищі;
засвоєння навичок роботи з віртуальними середовищами, базами даних та деплою застосунків;
підготовка до роботи у сфері стартапів, фрилансу, low-budget/MVP-продуктів, де Python – гнучкий і швидкий інструмент;
розвиток навичок тестування та пакування програмних продуктів для реального використання.
Студенти зможуть застосувати результати навчання для:
створення кросплатформних десктопних застосунків
(інструменти, утиліти, дизайн-програми, навчальні застосунки);
розробки мобільних застосунків на Python (Kivy / BeeWare);
побудови веб-сервісів і клієнт-серверних програм
(Flask, WebSockets, чат-додатки);
проєктування інтерфейсів користувача для різних платформ
(десктоп, планшет, смартфон);
створення інтерактивних мультимедійних систем
(анімовані UI, музичні й творчі застосунки, прототипи ігор);
роботи з файловими системами та ОС у прикладних проєктах
(автоматизація задач, аналіз файлів, органайзери);
підготовки та розгортання програмних продуктів
(.exe/.app/.apk/.deb пакунки, серверні додатки);
розробки ідей стартапів та власних комп’ютерних застосунків
без прив’язки до конкретної ОС.
Тематика та види навчальних занять
Для денної форми здобуття освіти
Лекційні заняття
Лекція 1 «Вступ до кросплатформного програмування».
Лекція 2 «Основи мови Python для кросплатформних проєктів».
Лекція 3 «Архітектура кросплатформних застосунків».
Лекція 4 «Робота з файлами та системними ресурсами».
Лекція 5 «Графічні інтерфейси користувача (GUI)».
Лекція 6 «Бібліотека Kivy: розробка мультимедійних застосунків».
Лекція 7 «Кросплатформна робота з мережею».
Лекція 8 «Розробка вебзастосунків на Python».
Лекція 9 «Розробка мобільних застосунків».
Лекція 10 «Кросплатформні бібліотеки для мультимедіа».
Лекція 11 «Робота з базами даних».
Лекція 12 «Кросплатформні інструменти тестування та CI/CD».
Лекція 13 «Оптимізація продуктивності застосунків».
Лекція 14 «Пакування та розгортання застосунків».
Лекція 15 «Перспективи кросплатформного програмування».
Лабораторні роботи
Лабораторна робота 1 «Середовище розробки та кросплатформні інструменти».
Мета: набути навичок роботи з інструментами кросплатформної розробки, встановити необхідне програмне забезпечення, налаштувати середовище Python та IDE, навчитися запускати та тестувати прості Python-скрипти на різних платформах.
Лабораторна робота 2 «Робота з віртуальними середовищами (venv, pipenv)».
Мета: навчитися створювати та керувати віртуальними середовищами, встановлювати та оновлювати пакети через пакетні менеджери Python, формувати requirements-файли для перенесення та відтворення робочого середовища на різних операційних системах.
Лабораторна робота 3 «Робота з файлами та ОС».
Мета роботи: вивчити механізми роботи з файловою системою у Python, навчитися виконувати файлові операції (читання, запис, копіювання, видалення), а також опрацьовувати шляхи у кросплатформний спосіб із використанням модулів os, pathlib та shutil.
Лабораторна робота 4 «Створення застосунку для управління файлами».
Мета: створити консольний або простий графічний застосунок для локального керування файлами та директоріями, застосувавши принципи кросплатформності, структурування проекту, та обробки помилок файлової системи.
Лабораторна робота 5 «GUI на Tkinter».
Мета: опрацювати базові засоби побудови графічного інтерфейсу у Python з використанням бібліотеки Tkinter, створити форму з меню та елементами керування, забезпечити коректне відображення інтерфейсу на різних ОС.
Лабораторна робота 6 «Kivy: створення застосунку з інтерфейсом».
Мета: опанувати створення графічних та мультимедійних застосунків у Kivy, розробити простий калькулятор або нотатник, реалізувати адаптивний інтерфейс, орієнтований на мобільні пристрої.
Лабораторна робота 7 «Мережева взаємодія (чат-застосунок, сокети)».
Мета: вивчити принципи роботи мережевих протоколів у Python, реалізувати базову модель клієнт-серверного обміну даними через сокети, створити простий чат-застосунок, що працює на різних ОС.
Для заочної форми здобуття освіти
Лекційні заняття
Лекція 1. «Основи смарт-технологій: концепції, архітектура та сфери застосування».
Лекція 2. «Інтернет речей (IoT) у смарт-технологіях: концепція, інфраструктура та протоколи зв’язку»
Лабораторні заняття
Лабораторне заняття 1. «Кросплатформна розробка на Python: середовище, робота з файлами, ОС та віртуальні середовища».
Мета: навчитися встановлювати та налаштовувати інструменти для кросплатформної розробки на Python, працювати з віртуальними середовищами та пакетами, а також виконувати базові операції з файловою системою у кросплатформний спосіб.
Лабораторне заняття 2. «Графічний інтерфейс і мережеві застосунки на Python: Tkinter, Kivy та сокети».
Мета: опанувати створення кросплатформних графічних інтерфейсів на Tkinter і Kivy, навчитися будувати базові мережеві застосунки з використанням сокетів (клієнт–сервер), та розуміти принципи адаптивного інтерфейсу для мобільних платформ.
Консультації здійснюються впродовж семестру згідно встановленого розкладу.
К1. Здатність програмувати на мовах, що підтримують кросплатформну розробку (наприклад, JavaScript, C#, Python). Знання особливостей їх застосування для створення кросплатформних додатків.
К2. Здатність проєктувати програмне забезпечення з урахуванням кросплатформної архітектури та принципів MVC, MVVM чи MVP, що сприяє розподілу логіки та інтерфейсу.
Алгоритмізація та програмування
Об’єктно-орієнтоване програмування
РН1. Розуміти принципи, переваги та обмеження кросплатформного підходу до розробки, а також ключові відмінності між кросплатформною та нативною розробкою.
РН2. Розробляти користувацькі інтерфейси, що адаптуються до різних розмірів екранів та специфікацій пристроїв, з урахуванням принципів UI/UX для забезпечення зручності та доступності.
РН3. Виконувати інтеграцію з рідними API платформ (камери, геолокація, датчики тощо), забезпечуючи належну взаємодію застосунка з можливостями пристроїв.