
Explore Python, a high-level versatile language prized for readability and simplicity, powering web development, data analysis, artificial intelligence, automation, games, and mobile development across platforms.
Download Python 3.9.x from python.org/downloads, install it, then install a suitable IDE such as PyCharm community edition to create a Python project and add a Python file.
Install the Kivy and KivyMD modules with pip from your terminal across Mac, Linux, Windows, or PyCharm, then hit enter and ensure internet connection to begin.
Learn the blueprint for running apps in Kivy by building a main app class, using the app object, defining a build method, and returning a label with text.
Explore styling a text label by adjusting font size, color (rgb and hex), opacity, and text effects like bold, italic, underline, with markup and line breaks.
Learn to create and customize buttons in Kiwi by importing the button class, setting text, adjusting size_hint and center x/y, and applying RGB color and a background_normal image.
Explore customizing Kiwi buttons with rgb background color, adjust font size, and use position and size hints (0 to 1) for responsive layouts rather than pixel positioning.
Learn to load images in kivy with the image class for local images and async image for web sources, and control position and size with position_hint and allow_stretch.
Create and style a Kivy text input widget by importing the text input class, configuring position, size, font, color, and hint text, including read only options.
Explore how Kivy layouts organize widgets with grid, box, float, and anchor layouts, plus Relativelayout as a responsive design approach, enabling adaptive positioning.
Handle keyboard events in kivy to move a game object with arrow keys and display pressed keys on a label, using on_key_up and handling backspace and spacebar.
Change a button’s background color in response to keyboard events, mapping keys to red, blue, green, and yellow using RGB values in a Python app.
Explore mouse events in Python with Kivy by binding on press and on release to a button, updating a label to show pressed and released states.
Explore how to bind and handle on touch down, on touch up, and on touch move events in a Python android/ios app, updating a label with touch coordinates.
Explore Python touch events such as on double tap, on triple tap, and long press, learn to bind them to a button, and update a label to reflect detected gestures.
Learn to use Kivy's clock module to schedule functions and update the user interface. Use schedule interval to repeat a function and manage time-based events, including stopping after five calls.
Learn to build an event-driven clock example that updates a label on each click, schedules a recurring timer, and demonstrates canceling or scheduling a one-time clock for real-time app behavior.
Learn to build a drop down widget in Kivy by listing languages, creating option buttons, and updating a main button with the selected language via on_release and on_select.
Learn to build checkbox widgets in Kivy with Python. Create a vertical list of language options, each with a label, bound to an active event, and customize color and spacing.
Explore implementing a file chooser in Kiwi to browse and select files on desktop or mobile, with a pop-up, scroll view, root path, and optional filters.
Learn to build a Kivy switch that toggles on and off, updates a label to show status, binds an active event, and arranges label and switch in vertical box layout.
Create and update a progress bar in Kivy by importing the progress bar, setting min 0 and max 100, and increasing the value by 10 every second, resetting at 100.
Implement a slider widget with a 0–100 range, binding value changes to update a label in a vertical box layout, and illustrate uses in music/video players and downloads.
Create a graphical calculator app in Python using Kivy, building the graphical user interface with layouts, a text input, operator buttons, and an equal function that evaluates expressions.
Explore OpenCV in Python for computer vision. Learn real-time image and video processing, screen recording, and drawing shapes with cv2.
Install numpy, the py module, and OpenCV using pip. Then set up Python 3 via the command line or PyCharm terminal to enable a mobile screen recorder.
Import kiwi md components, build a relative layout, and configure a window with a light pink rgb background scaled to 0-1, preparing the screen recorder user interface.
Create a record button in the app layout, configure its text, position, size, font, and on press binding, and outline a placeholder toggle recording function for future OpenCV screen capture.
Toggle recording starts and stops screen capture, switching the button text between record and stop recording while initializing a cv2 video writer for output.mp4 and 30 fps.
Implement a screen recording function that captures 30 screenshots per second, converts frames to RGB, assembles them into a video, and writes to output.mp4 with recording control and overwriting options.
Build a screen recorder with OpenCV and NumPy in Kivy, covering layout, 30 fps capture, and MP4 output. Create a screenshot app with a take screenshot button that saves images.
Install the pi tube module with pip to set up the YouTube download manager via Windows command line or mac or linux terminal, then proceed with kivy in Python.
Import YouTube module, build a kivy app with a relative layout and common widgets, then resize the window to 500 by 600 and set md bg color to light pink.
Demonstrates building a YouTube downloader UI in Python: display a top image, show a labeled link input, and a get link button to fetch video details for download.
Bind the get link info function to the button to read the link and fetch title, views, and length with the YouTube class, then display them in labels.
Build a video download workflow in a Python-based mobile app, adding a download button, get link info action, and a resolution dropdown for saving to a specified location.
Implement a YouTube video downloader's resolution picker by building a drop-down of mp4 options, binding selections to a main button, and downloading the chosen resolution.
Validate the user-pasted link with a Python regex, display a red error label for invalid or empty input below the get link button, and handle network errors with try-except.
Discover building an Android and iOS mobile app downloader in Python using Kivy, with a link input, fetch video title, views, and length, and download in a selected mp4 resolution.
Create a python file for a Kivy based music player, import modules, define an app class with a build method returning a relativelayout, and set window size.
Add play and stop buttons to the window using kvmd icon button, position them, attach play.png and stop.png, and add them to the layout with add_widget to display.
Build a Python-based music player by scanning a folder for mp3 files, building a song list, and playing or stopping a randomly selected track with a simple audio loader.
Create a song label and album image in the music player, position and style them, and update the label with the current song title, removing the .mp3 extension.
Demonstrates displaying a unique image per song using the song’s first character as the image name and prefixing the title with 'playing,' with a clock to auto-play the first track.
Enable clear audio control by default: disable the play button while playback starts and enable the stop button, then swap states when stopping to prevent playing a new song.
Learn how to add and update a kivy progress bar for a music player, initialize it from 0 to 100, position it, and refresh it with clock schedule_interval during playback.
Create and update current time and total time labels and progress bar for a music player, refreshing every second via a time event, using sound length, and reset on stop.
Add a horizontal volume slider to the music player, set the 0–1 range with default 0.5, and bind its value to update the music volume in real time.
Crash course introduces Python fundamentals from installation to core concepts like variables, data types, control flow, functions, and file I/O, plus modules and error handling.
Master object oriented programming in Python by learning classes and objects, constructors, and methods. Explore inheritance types, polymorphism, encapsulation, abstract classes, and modules to build reusable, maintainable code.
Welcome to “Android & iOS Mobile App Development with Kivy (Python)”, a complete step-by-step course designed to teach you how to build, design, and deploy mobile applications using nothing but Python!
If you’ve ever wanted to create mobile apps but felt intimidated by Java, Kotlin, or Swift — this course is your perfect starting point. Using the powerful Kivy framework, you’ll learn how to develop fully functional, beautiful, and cross-platform applications that run seamlessly on both Android and iOS.
We start from the very basics of Kivy, making this course ideal even if you have never built a mobile app before. You’ll learn what Kivy is, how it works, and how to set up your environment correctly on your system. Step by step, we’ll explore the core Kivy widgets, layouts, events, and the KV language, which allows you to design modern and responsive user interfaces with ease.
Once you’ve mastered the fundamentals, we’ll move into real-world app development. You’ll use Kivy to create fully functional mobile applications, each one introducing new concepts and challenges. Through these projects, you’ll gain hands-on experience with handling user input, managing screens, displaying data, creating animations, and much more. Every app you build will bring you closer to understanding how real mobile apps are structured and designed.
By the time we finish building all the apps, we’ll move into the deployment phase, where you’ll learn how to package and publish your Kivy apps on both Android and iOS. You’ll discover how to generate APK files using Buildozer, sign them, test them on your device, and even prepare them for release on the Google Play Store and Apple App Store.
Let's Get Started!