Genwise is an Android demographic classification and life-stage intelligence application designed to deliver real-time generational cohort evaluation through clean UI states, ViewBinding, and Material 3 design.
Categorizing demographic data and understanding human generational life stages is fundamental across personalized UX onboarding, health assessments, and educational profiling.
Genwise provides a lightweight, responsive native Android implementation for evaluating age-based cohort criteria. Featuring ViewBinding, custom stroke input styling, and integrated IME keyboard action listeners, the app validates inputs, evaluates life-stage bounds, and dynamically renders personalized greetings and cohort classifications.
flowchart TD
subgraph Input ["User Input & Trigger"]
NI["Name Input Field"]
AI["Age Input Field"]
DoneBtn["IME Done Action / Submit Button"]
end
subgraph Validation ["Validation Engine"]
CheckValid{"Non-empty Name & Valid Integer >= 0?"}
ToastErr["Show Toast Feedback & Retain Focus"]
end
subgraph Classifier ["Life-Stage Evaluator (MainActivity)"]
MatchAge{"Evaluate Age Bracket"}
Child["πΆ Child (< 13)"]
Teen["π Teenager (13 - 19)"]
Adult["πΌ Adult (20 - 59)"]
Senior["π§ Senior (60+)"]
end
subgraph UI ["Dynamic State Rendering"]
Greet["binding.greetingText.apply { text = 'Hello, {Name}!' }"]
Result["binding.ageGroupText.apply { text = 'You are a {Cohort}.' }"]
Clear["binding.nameInput.clearFocus() & ageInput.clearFocus()"]
end
NI --> DoneBtn
AI --> DoneBtn
DoneBtn --> CheckValid
CheckValid -- No --> ToastErr
CheckValid -- Yes --> MatchAge
MatchAge -->|< 13| Child
MatchAge -->|13..19| Teen
MatchAge -->|20..59| Adult
MatchAge -->|>= 60| Senior
Child --> Greet
Teen --> Greet
Adult --> Greet
Senior --> Greet
Greet --> Result
Result --> Clear
- π― Accurate Life-Stage Classification: Multi-tier evaluation logic parsing input into distinct biological and social cohorts:
Child,Teenager,Adult, andSenior. - β‘ Seamless IME Done Action: Directly trigger classification from the soft keyboard's
IME_ACTION_DONEkey for frictionless single-handed operation. - π‘οΈ Robust Input Sanitization: Form validation guarding against non-numeric entries, empty text buffers, and negative values with instant Toast diagnostics.
- π¨ Material 3 Design System: Styled text input layouts with custom color states, focus strokes, and dynamic visibility transitions.
- π§© ViewBinding Architecture: Complete elimination of
findViewByIdboilerplate for type-safe, null-safe view references.
| Cohort Category | Age Span | Clinical & Demographic Description |
|---|---|---|
| πΆ Child | < 13 years |
Early developmental stage focusing on pediatric growth and foundational learning |
| π Teenager | 13 β 19 years |
Adolescent transition characterized by rapid cognitive and physical maturation |
| πΌ Adult | 20 β 59 years |
Prime working age cohort involved in professional, family, and civic life |
| π§ Senior | 60+ years |
Elder life-stage with focus on healthy longevity, retirement, and legacy |
| Layer / Component | Technology | Version | Purpose |
|---|---|---|---|
| Platform | Android | API 24 β 35 | Native Android runtime |
| Language | Kotlin | 2.0+ |
Clean, concise application logic |
| UI Framework | ViewBinding + ConstraintLayout | 2.1.4 |
Responsive constraint-based view hierarchy |
| Design System | Google Material Components | 1.12.0 |
Material 3 themes and surface styling |
| Build System | Gradle (Kotlin DSL) | AGP 8.x |
Modern build automation |
- Android Studio Ladybug or newer.
- JDK 11 or JDK 17.
- Android SDK 35.
- Clone the repository:
git clone https://github.com/shayann07/Genwise.git cd Genwise - Open in Android Studio and sync Gradle.
- Build the debug APK:
./gradlew assembleDebug
- Run on an Android emulator or physical device.
This project is licensed under the MIT License β Copyright (c) 2026 shayann07.