Kolekti Punkton was developed to address a need: extracting data points from graphs that do not provide a corresponding numerical table. Manually reading dozens of points is slow, repetitive, and often impractical.
This Android app allows you to load a graph image, mark points in a semi‑automatic workflow, and quickly generate a data table. The resulting table is displayed in the app and can be exported as a CSV file for use in external software.
Click the thumbnail below to watch the most recent demonstration of the app:
To ensure long‑term scalability, maintainability, and performance, the following improvements are planned:
- Migrate from global constants to ViewModel + SavedStateHandle and Preferences DataStore.
- Adopt MVVM architecture, moving calculations and database operations into ViewModels.
- Replace legacy Activities used solely as dialogs with DialogFragment or Navigation Component dialog destinations.
- Replace Threads / Handlers with Kotlin Coroutines.
- Improve bitmap handling: avoid repeated creation in GraficoFragment, reuse bitmaps, or adopt a layered drawing library.
- Integrate Coil for efficient image loading with caching.
- Add Subsampling Scale Image View to support smooth zooming and a “Crosshair” mode or a toggle between navigation and editing modes.
- Migrate from raw SQLite to Room Database.
- Redesign the schema: instead of creating one table per project, use a single points table with a project identifier column.
- Implement View Binding to replace findViewById.
- Refactor deprecated permission‑handling APIs.
- Replace deprecated drawingCache with Canvas on a mutable Bitmap or PixelCopy for view capture.
- Improve UX of project creation: current CriarProjActivity acts only as a wrapper for a dialog; move to DialogFragment (?).
- Remove legacy methods and simplify Kotlin syntax.
- Consolidate duplicated logic across fragments and activities.
- Improve error handling for extreme graph aspect ratios.


