A simple tool for building apps—even easier than Kivy and KivyMD!
Project description
Easyapp 0.2.1 Welcome to the Easyapp Library! ——————– Part 1: Introduction to Easyapp ——————– 1. What is Easyapp? [1] Easyapp is a simple library designed for Python beginners. Its core dependencies are Kivy and KivyMD. [2] The current version of Easyapp is 0.2.1, which is relatively stable. This is the first version I have released publicly, but it is actually the third version I developed. [3] The previous two versions were highly unstable with limited functionality. However, this version offers rich features and stable performance, suitable for most needs. It simplifies 99% of the code and is now available for free! [4] Easyapp was developed by Lü YanHua on August 12, 2025. It is patented and protected by intellectual property laws. [5] Easyapp was primarily developed to address the excessive complexity of Kivy and KivyMD code. It can be fully integrated with Kivy and KivyMD for use. [6] Easyapp is entirely built on Kivy and KivyMD with no other dependencies. It relies on Python standard libraries such as typing, sys, os, and queue. 2. What is the purpose of developing Easyapp? [1] To simplify code for beginners, reduce coding overhead, make programming easier, and significantly save development time. [2] To enable the creation of simple applications while minimizing all costs. 3. What are the dependencies and requirements for Easyapp? [1] Dependencies are Kivy and KivyMD, with minimum version requirements: Kivy 2.3.0 and KivyMD 1.2.0. [2] It requires the Python language, with a minimum version of Python 3.7.9. 4. How to install Easyapp? First, ensure you have Python installed with a version ≥ 3.7.9. If not, download Python from the link below: https://www.python.org/ (1) On Windows computers: [1] Press Win+R on your keyboard to open the “Run” dialog, type cmd, and open Command Prompt. [2] In Command Prompt, enter the command pip install easyapp to install the Easyapp library. [3] If your download speed is extremely slow or the download fails, enter the following command: pip install easyapp -i https://mirrors.tuna.tsinghua.edu.cn/ (2) On mobile phones: [1] If you have a Python IDE or other compiler, open it. [2] Click {My}, then click {Install Module}, and enter the library name: easyapp to install. Alternatively, open its Python console and enter: pip install easyapp [3] If your download speed is extremely slow or the download fails, enter the following: pip install easyapp -i https://mirrors.tuna.tsinghua.edu.cn/ 5. What features does Easyapp offer? [1] Similar to the EasyGUI library, it enables application creation and simple GUI development. [2] Image upload functionality: Images can be displayed in the application as long as they are in the same directory as the code file. [3] Create tools like questionnaires or answer sheets, reducing code volume by 99%. 6. What is the basic information of Easyapp? [1] Version number: 0.2.1 [2] Author: Lü YanHua [3] Publisher: Individual [4] Website: file:///C:/Users/27128/Desktop/EasyApp_chinses_version.html ——————– Part 2: Easyapp Usage Guide ——————– 1. What app-related functions does Easyapp provide? [1] msg() function: Displays a window with text, title, OK, and Cancel buttons. A prompt box automatically pops up when the window is closed. [2] esmsg() function: Displays multiple text contents, inheriting features from the msg() function. [3] fillmsg() function: Inherits from esmsg() and adds selection boxes, enabling answer sheet and questionnaire functionality. [4] btn() function: Inherits from msg() but replaces the default OK and Cancel buttons with a customizable button list. [5] esbtn() function: Inherits from esmsg() and uses a button list instead of default OK/Cancel buttons, supporting multiple text contents. [6] fillbtn() function: Inherits from fillmsg() and replaces OK/Cancel with a button list, featuring text and selection buttons. [7] ent() function: Inherits from msg() and adds an input box to capture user input. [8] esent() function: Combines features from esmsg() and ent(), supporting multiple text contents and multiple input boxes. [9] fillent() function: Integrates features from fillmsg() and esent(), adding selection button lists to multi-text and input box setups, suitable for all answer sheets (though image upload is not supported). [10] img() function: Inherits from msg() and adds image support, which can be set as background images. [11] fill_img() function: Combines img() and fillmsg(), adding selection buttons to images, fully implementing answer sheet functionality with return values. [12] btn_img() function: Integrates img() and btn(), adding image buttons for customizable button styles. [13] fill_btn_img() function: Combines fill_img() and btn_img(), featuring both image buttons and image selection buttons (clicking an image toggles it, with return values). [14] page() function: Integrates all previous functions but only displays a single page. [15] pages() function: Note the distinction from page()—it creates multipage interfaces without image support, ideal for users without image materials. [16] img_pages() function: Builds on pages() by adding image support, being the most powerful but complex function in Easyapp, still reducing code by 80%. 2. What parameters do these Easyapp functions have? [1] msg(): (1) t: Short for “text”, representing text information in the app page. It is a list structured as: [page text content (automatically converted to string), text center position]. The text center position is a tuple/list of 2 numbers between 0 and 1 (proportions within the parent container). The position can be omitted, defaulting to the page center (0.5, 0.5). (2) tie: Short for “title”. On Windows, this displays the window title (not shown on mobile), so it can sometimes be omitted. It accepts any type and is automatically converted to a string. (3) color: Short for “background_color”, representing the background color as an RGBA tuple with 4 elements. Import Easyapp (import easyapp) to use its color tools. Colors are denoted by uppercase names with numbers (e.g., RED8 for red, BLUE1 for blue), where the number indicates shade (larger numbers = darker). Available colors include: RED, GREEN, BLUE, YELLOW, ORANGE, INDIGO, PURPLE, BLACK, WHITE, GREY, PINK, BROWN, CYAN, SILVER, GOLD, etc. (4) theme: Represents the page theme (light/dark). Import Easyapp to use LIGHT (black text) or DARK (white text) modes. Themes do not affect screen brightness. (5) ok: Represents the OK button as a list: [button text, button color (using color modules), button size, button position, close page on click]. The last element is a boolean (default True). Simplify to [“Button Text”] to save time, or use [] to disable the button. (6) cal: Short for “cancel”, with the same structure as ok. (7) tip: A dictionary for the prompt box after closing. Set to {} to disable it. Secondary parameters include: ((1)). “txt: Prompt text (auto-converted to string). ((2)). “tie: Prompt title (auto-converted to string). ((3)). “ok: OK button as [text, color] (simplify to [text], default: “Yes”). ((4)). “cal: Cancel button (default text: “No”). (8) Return value: True (OK clicked), False (Cancel clicked), or None (window closed with tip={}). [2] esmsg(): (1) ts: Short for “texts”, a 2D list of texts: [[“Text 1”, position tuple], [“Text 2”, position tuple], …]. Positions default to (0.5, 0.5) but should be specified to avoid overlap. (2) Other parameters (including return value): Same as msg(). [3] fillmsg(): (1) fs: Short for “fill_buttons”, a 2D list for answer sheets: [[“text”, color, post-click color, size, position], …]. Collects selection data for questionnaires/answer sheets. (2) Other parameters (excluding return value): Same as msg(). (3) Return value: [boolean/None, [indices of selected buttons]]. E.g., selecting the 2nd option and clicking OK returns [True, [1]]. [4] btn(): (1) bs: Short for “buttons”, a 2D list of buttons: [[“text”, color, size, position], …]. Clicking a button closes the page and returns its index. (2) Other parameters (excluding return value): Same as above. (3) Return value: Index of the clicked button. [5] esbtn(): Parameters: Same as above. Return value: Same as btn(). [6] fillbtn(): Parameters: Same as above. Return value: [index of clicked button, [indices of selected buttons]]. [7] ent(): (1) e: Short for “enter”, a single input box: [prompt text, size, position] for user input. (2) Other parameters: Same as above. (3) Return value: [boolean/None, user input string]. [8] esent(): Parameters: Same as above. Return value: [boolean/None, [list of user inputs]]. Special parameter: es: Extended input boxes as a 2D list: [[prompt, size, position], …]. [9] fillent(): (1) Parameters: Same as above. (2) Return value: [boolean/None, [user inputs], [selected button indices]]. [10] img(): (1) i: Short for “images”, a 2D list of images: [[path (relative recommended), size, position, transparency], …] (for backgrounds; images cannot act as buttons). (2) Other parameters: Same as above. (3) Return value: Same as msg(). [11] fill_img(): (1) Parameters: Same as above. (2) Return value: Same as fillmsg(). [12] btn_msg(): (1) bi: Short for “button_images”, image buttons: [[“path”, size, position, transparency], …]. Clicking returns the image index. (2) Other parameters: Same as above. (3) Return value: True (OK), False (Cancel), image index (image clicked), or None (window closed with tip={}). [13] fill_btn_img(): (1) fi: Short for “fill_images_buttons”, image-based selection buttons: [[path, post-click path, size, position], …]. (2) Other parameters: Same as above. (3) Return value: [boolean/None, [fs selection indices], [fi selection indices]]. [14] page(): (1) Parameters: Same as above. (2) Return value: [button index, [user inputs], [fs indices], [fi indices]]. (3) Note: bi indices follow bs indices (e.g., 3 bs buttons → first bi index = 3). [15] pages(): (1) ps: Short for “pages”, a dictionary for multipage interfaces without images. See easyapp.supermarket.tools.Checker’s p_mode for examples. [16] img_pages(): (1) ps: Short for “images_pages”, a dictionary for multipage interfaces with images. Users without materials can copy the easyapp.images folder to their code directory. See easyapp.supermarket.tools.Checker’s i_mode for examples. ——————– Part 3: Easyapp Notes ——————– 1. What are common issues with Easyapp and their solutions? [1] UserWarning: The most common warning, caused by: (1) Incorrect parameter types (e.g., using a string instead of a list). Warnings appear but no errors—defaults are used, but correction is recommended. (2) Using non-tuples for size/position, or colors not from Easyapp’s color library. (3) Incomplete parameters in 2D lists (e.g., [“Button1”] instead of [“Button1”, RED8, (0.1, 0.1), (0.5, 0.5)]). [2] Missing components or oversized buttons/images: Caused by incorrect size/position settings. Kivy uses proportions (0–1) relative to the parent container. Values >1 cause overflow. Adjust to decimals between 0 and 1. [3] Images not displaying: Check the Windows terminal for [ERROR] Not found “image path”. This indicates an incorrect/missing image path (follow Kivy’s image rules). [4] Other issues: Contact me at at034000@outlook.com. Avoid contacting during school semesters (delayed replies); vacations are best. ——————– Part 4: About Us - Easyapp 0.2.1 ——————– 1. What is the background of the Easyapp library? On August 15, 2025, developer Lü YanHua created this library during summer vacation, frustrated by the complexity of Kivy and KivyMD syntax. The goal was to simplify code, expand functionality, enhance practicality, and make it freely available. Easyapp addresses these issues and expands the applicability of EasyGUI (a computer-only library with limited functionality and no back-navigation). Images in the library are AI-generated for user convenience. 2. What is the original intention of Easyapp? To help developers reduce repetitive coding, save time, accelerate development, lower costs, solve excessive Kivy/KivyMD code issues, simplify development, reduce barriers to app creation, and free developers from tedious work to build personalized interfaces! 3. What are the improvement directions for Easyapp? [1] The latest version is 0.2.1. Future versions (0.2.2–0.3.0) will enhance mobile compatibility. Version 0.2.1 works well on mobile but lacks visible prompts/warnings. [2] Version 0.2.1 lacks scrollbars for overflow text—this will be added in 0.3+. [3] Version 0.2.1 does not support videos/music due to outdated ffmpeg. Future updates will add image/music support and fix network image uploads. [4] For suggestions, email at034000@outlook.com (avoid school semesters/winter vacations; summer is best). 4. What are the advantages of Easyapp? [1] Reduces code volume and saves time on repetitive tasks. [2] Lowers development barriers for beginners by converting app components into familiar lists/dictionaries. [3] High flexibility for 99% of needs (e.g., e-novels with pages(), electronic answer sheets, personalized images). [4] Easy to use with no extra dependencies (Kivy/KivyMD are installed automatically). 5. What is the core philosophy of Easyapp? Reduce code volume, lower app development barriers, improve efficiency, and cut costs. 6. What is the developer information for Easyapp? [1] Nationality: Mainland China [2] Species: Human [3] Occupation: Middle school student [4] Location: Observable Universe → Milky Way → Solar System → Earth-Moon System → Earth → Biosphere [5] Programming field: Hobby [6] Other info: Contact me at at034000@outlook.com next summer vacation! 7. Acknowledgments Thanks to my users, parents, teachers, and everyone using Easyapp. Please leave a positive review and follow for updates! ——————– Part 5: Easyapp Privacy Policy ——————– I. Statement and Scope of Application This agreement explains the usage, operation, and processing rules of the Easyapp library (hereinafter “the Library”) and protects the right to know of developers and end-users. This agreement applies to all developers integrating the Library and end-users using functions through Library-integrated applications (hereinafter “Sub-applications”). The Library only provides technical support as a functional component and does not independently collect, store, or transmit user data. Data processing is performed by Sub-applications per their privacy policies. II. Data Processing and Usage Rules No Active Data Collection: The Library does not actively collect, store, upload, or process user personal information (e.g., name, phone number, device ID, location). It does not require Sub-applications to provide such information. Data breaches are the responsibility of Sub-applications, not the Library. Data Processing: To enable image processing, the Library stores image materials in a folder named images under the Easyapp directory. This folder contains no personal information, only image materials, and must not be used for profit. No Data Sharing: The Library does not share processed data with third parties or transmit data to any server. III. Data Security Assurance The Library runs entirely locally on the user’s device. All data processing and image uploads occur on the device with no network transmission, reducing leakage risks. Developers integrating the Library should enhance Sub-application security, comply with laws, and handle user data responsibly. IV. Third-Party Service Statement The Library does not integrate third-party SDKs, analytics tools, or services, and there are no third-party data processing activities. V. User Rights and Developer Responsibilities User Rights: End-users with data processing questions should refer to the Sub-application’s privacy policy or contact its developer directly. Developer Responsibilities: Developers integrating the Library must clearly state its use in their privacy policies and inform end-users of data processing rules to ensure legal compliance. VI. Agreement Updates and Effectiveness This agreement takes effect upon release. Changes to data processing rules due to Library updates will be 公示 via official channels (website, update logs). Updated agreements take effect on their 发布 date. Continued use of the Library constitutes acceptance of this agreement and future updates. VII. Contact Us For questions about this agreement, contact: at034000@outlook.com VIII. Other Provisions The final interpretation right of the Library belongs to Lü YanHua.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file easyapp_don-0.2.1.tar.gz.
File metadata
- Download URL: easyapp_don-0.2.1.tar.gz
- Upload date:
- Size: 67.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af3e3558ab2f8ffdf34cfc3ed0ab1c6cdd4ac4e9260a3f86fc5d5888c277868f
|
|
| MD5 |
7fa660153c149366348111623ad0a439
|
|
| BLAKE2b-256 |
5c1bd00e8e94096be8c09af808de3ac042fce26ab7a58c56f850aa02ec992460
|
File details
Details for the file easyapp_don-0.2.1-py3-none-any.whl.
File metadata
- Download URL: easyapp_don-0.2.1-py3-none-any.whl
- Upload date:
- Size: 95.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7975f6c838ac2c22c82217a026c549e7501437c627df4764628d1d7ffe241f8d
|
|
| MD5 |
3e9d5e11b65abe0e31c5df046d9461ad
|
|
| BLAKE2b-256 |
06c56124ae2cbbbc26907081010d9b983daaaeaa6e98f81d07623ca3ddaa71d6
|