{"id":32722899,"url":"https://github.com/sdilias/drawing-android-app","last_synced_at":"2026-05-17T15:02:02.819Z","repository":{"id":319691489,"uuid":"973792781","full_name":"SdIlias/Drawing-Android-App","owner":"SdIlias","description":"A native Android drawing application built with Java, demonstrating proficiency with Android's Canvas and Paint APIs for touch-responsive, freehand graphical rendering and path management.","archived":false,"fork":false,"pushed_at":"2025-10-19T16:14:29.000Z","size":103,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-20T00:28:54.823Z","etag":null,"topics":["android","android-development","android-studio","canvas","drawing-app","java","mobile-app"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SdIlias.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-27T18:43:26.000Z","updated_at":"2025-10-19T16:16:54.000Z","dependencies_parsed_at":"2025-10-20T00:28:58.286Z","dependency_job_id":null,"html_url":"https://github.com/SdIlias/Drawing-Android-App","commit_stats":null,"previous_names":["sdilias/drawing-android-app"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/SdIlias/Drawing-Android-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SdIlias%2FDrawing-Android-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SdIlias%2FDrawing-Android-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SdIlias%2FDrawing-Android-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SdIlias%2FDrawing-Android-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SdIlias","download_url":"https://codeload.github.com/SdIlias/Drawing-Android-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SdIlias%2FDrawing-Android-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":282365373,"owners_count":26657259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-02T02:00:06.609Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-development","android-studio","canvas","drawing-app","java","mobile-app"],"created_at":"2025-11-02T22:02:02.799Z","updated_at":"2025-11-02T22:02:28.004Z","avatar_url":"https://github.com/SdIlias.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"#  Drawing-Android-App\n\n###  **Technology:** Java (Android Development)\n###  **Platform:** Android\n\n---\n\n##  Project Overview\n\nThe **Drawing-Android-App** is a simple yet robust mobile application developed in **Java** that allows users to create freehand drawings directly on their Android devices. This project serves as a clear demonstration of core Android development skills, specifically mastering the **Canvas** and **Paint** APIs for graphical rendering.\n\nIt provides an intuitive interface for drawing, making it an excellent foundation for more complex graphical editors or note-taking applications.\n\n##  Technical Features \u0026 Implementation\n\nThe application is built entirely using native Android components and Java programming, focusing on efficiency and responsiveness for a smooth drawing experience.\n\n### 1. Canvas and Paint Architecture\n\n*   **Custom View:** Implements a custom `View` component to override the `onDraw()` method, creating a dedicated drawing surface (the Canvas).\n*   **Touch Handling:** Utilizes the `onTouchEvent()` listener to accurately capture user input, translating screen coordinates (X, Y) into smooth drawing strokes.\n*   **Path Tracking:** Employs the `Path` object to store and represent the sequence of points for each stroke, ensuring lines are drawn correctly as a continuous movement rather than individual dots.\n*   **Styling (Paint Object):** Manages the visual properties of the strokes using the `Paint` object, allowing for dynamic control over color, stroke width, and smoothness (anti-aliasing).\n\n### 2. Core Functionality\n\n*   **Freehand Drawing:** Allows users to draw fluid lines using touch or stylus input.\n*   **Color Selection:** Provides a mechanism (e.g., color picker or button options) to easily change the brush color.\n*   **Stroke Width Control:** Enables users to adjust the thickness of the drawing line (brush size).\n*   **Erasing Capability:** Implements an \"eraser\" function by setting the brush color to match the canvas background or using specific blending modes.\n*   **Undo/Redo (Potential):** Designed with an architecture that can be easily extended to implement full undo/redo functionality by maintaining a history stack of the `Path` objects.\n\n##  Future Enhancements\n\n*   **Persistence:** Implement features to save the drawing as an image file (e.g., JPEG or PNG) to the device's storage.\n*   **Shape Tools:** Add options for drawing predefined shapes like circles, rectangles, and lines.\n*   **Palette:** Introduce a more advanced, customizable color palette or HSB/RGB selection tool.\n\n##  Getting Started\n\n### Prerequisites\n\n*   Android Studio\n*   Android SDK (Target API Level 21+)\n\n### Installation\n\n1.  **Clone the repository:**\n    ```bash\n    git clone https://github.com/SdIlias/Drawing-Android-App.git\n    ```\n2.  **Open in Android Studio:**\n    Open the cloned directory as a new Android Studio project.\n3.  **Build and Run:**\n    Sync the Gradle files and run the application on an Android Emulator or a physical device.\n\n---\n\n## 📂 Project Structure\n\nThe project follows a standard Android application structure:\n\n```\nDrawing-Android-App/\n├── app/                  # Main application module\n│   ├── src/\n│   │   ├── main/\n│   │   │   ├── java/\n│   │   │   │   └── com.example.drawingapp/ # Your Java source code\n│   │   │   │       └── ...\n│   │   │   └── res/      # Resources (layouts, drawables, etc.)\n│   └── build.gradle      # Module-level Gradle configuration\n├── .gitignore\n├── build.gradle          # Top-level Gradle configuration\n└── settings.gradle       # Defines project modules\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdilias%2Fdrawing-android-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsdilias%2Fdrawing-android-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsdilias%2Fdrawing-android-app/lists"}