Here’s a detailed breakdown of the steps to create a mobile app using
Python and Kivy, along with instructions on how to upload it to APKPure.
Step 1: Set Up the Environment
1. Install Python: Make sure you have Python installed on your system. You
can download it from python.org.
2. Install Kivy: Open your terminal (Command Prompt, PowerShell, or
Terminal) and run:
pip install kivy
3. Install OpenCV and NumPy: You also need to install OpenCV and NumPy for
image processing:
pip install opencv-python numpy
Step 2: Create the App Structure
1. Create a New Directory: Make a new directory for your app:
mkdir tomato_clicker
cd tomato_clicker
2. Create Required Files: Inside the tomato_clicker directory, create the
following files:
main.py
buildozer.spec
requirements.txt
Step 3: Write the App Code
1. Edit main.py: Open main.py in a text editor and add the following code:
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.graphics import Color, Rectangle
from kivy.core.window import Window
from kivy.clock import Clock
import cv2
import numpy as np
class TomatoClicker(Widget):
def __init__(self, **kwargs):
super(TomatoClicker, self).__init__(**kwargs)
self.capture = cv2.VideoCapture(0)
Clock.schedule_interval(self.update, 1.0 / 60.0)
def update(self, dt):
ret, frame = self.capture.read()
if ret:
# Convert the frame to HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# Define the range of red color
lower_red = np.array([0, 100, 100])
upper_red = np.array([10, 255, 255])
# Threshold the HSV image to get only red colors
mask = cv2.inRange(hsv, lower_red, upper_red)
# Apply morphological operations to remove noise
kernel = np.ones((5, 5), np.uint8)
mask = cv2.erode(mask, kernel, iterations=1)
mask = cv2.dilate(mask, kernel, iterations=1)
# Find contours of the red objects
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL,
cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
# Calculate the area of the contour
area = cv2.contourArea(contour)
# Ignore small contours
if area > 100:
# Calculate the center of the contour
M = cv2.moments(contour)
cx = int(M['m10'] / M['m00'])
cy = int(M['m01'] / M['m00'])
# Draw a rectangle around the contour
cv2.rectangle(frame, (cx - 20, cy - 20), (cx + 20, cy + 20), (0,
255, 0), 2)
# Simulate a click on the contour
Window.touch_down(cx, cy)
Window.touch_up(cx, cy)
# Display the resulting frame
cv2.imshow('frame', frame)
class TomatoClickerApp(App):
def build(self):
return TomatoClicker()
if __name__ == '__main__':
TomatoClickerApp().run()
2. Edit buildozer.spec: Open buildozer.spec and add the following
configurations:
[app]
title = Tomato Clicker
package.name = tomato_clicker
package.domain = org.test
source.include_exts = py,png,jpg,kv,atlas
source.exclude_exts = spec
source.exclude_dirs = tests, bin
source.exclude_patterns = license,images/*/*.jpg
icon.filename = %(source.dir)s/data/icon.png
orientation = all
services = android.permission.INTERNET
android.sdk = 24
android.ndk = 19c
android.api = 24
android.minapi = 24
android.version = 1
android.version_code = 1
android.permissions = INTERNET
android.requirements = opencv-python, numpy
3. Create requirements.txt: In the requirements.txt, you can list the libraries
your app requires:
opencv-python
numpy
Step 4: Build the App
1. Install Buildozer: If you haven't already, install Buildozer. You may need to
install dependencies depending on your operating system. For Ubuntu, you
can run:
sudo apt install -y python3-pip python3-setuptools git
pip install buildozer
2. Initialize Buildozer: Inside your app directory, run:
buildozer init
3. Build the App: Run the following command to build the app:
buildozer -v android debug
This process may take some time as it compiles the app. If everything is set
up correctly, you will find the APK in the bin directory once the build is
complete.
Step 5: Run the App
To run the app on an Android device, connect your device via USB and enable
USB debugging. Then run:
buildozer android deploy run
Step 6: Upload to APKPure
1. Create an APKPure Account: Go to APKPure and create an account if you
don’t have one.
2. Prepare the APK: Make sure your APK file (found in bin/) is ready for
upload. It's usually named something like Tomato_Clicker-1.apk.
3. Upload the APK:
Log into your APKPure account.
Click on "Upload APK."
Follow the instructions to upload your APK file. You will need to provide
details such as the app title, description, screenshots, and any other required
information.
Submit the app for review.
4. Wait for Approval: APKPure will review your app before it gets published.
You will receive notifications regarding its status.
Additional Tips
Ensure your app complies with APKPure's guidelines.
Test your app thoroughly before uploading.
Keep your libraries up-to-date to avoid compatibility issues.
With these steps, you should be able to create your app using Kivy and
successfully upload it to APKPure. If you have any questions or need further
clarification on any step, feel free to ask!