BabyGrowthApp is a dual-platform (Android & iOS) experience for tracking child growth metrics, visualizing percentiles, and exporting reports for caregivers and health professionals. The repository hosts native Kotlin and Swift codebases that share product goals and feature parity while following platform-first best practices.
- Record and review child profiles, measurements, and health notes.
- Visualize growth trends with LMS-powered percentile charts.
- Export data for sharing with doctors or caregivers.
- Manage in-app settings such as units, locales, and backup preferences.
.
├── Android/BabyGrowth
│ ├── app # Compose UI shell and DI setup
│ ├── core # Shared model/data/ui modules
│ ├── feature # Child, measurement, export, settings flows
│ ├── lms # Growth curve calculations
│ ├── test | ui-test # Shared unit & instrumentation scaffolding
│ └── benchmark # Performance harness
└── iOS/BabyGrowth
├── BabyGrowth # SwiftUI MVVM application code
├── Tests | UITests # XCTest and UI automation targets
└── Resources # Assets, strings, and configuration
- Android Studio Koala (or newer) with Android SDK 26–35 and JDK 17
- Xcode 15.x with an iOS 17+ simulator
- Ruby bundler (optional) if your workflow adds Fastlane or CocoaPods
cd Android/BabyGrowth
./gradlew :app:assembleDebug # build debug APK
./gradlew testDebugUnitTest # JVM unit tests
./gradlew connectedAndroidTest # instrumentation/UI tests (requires device)Open the Android/BabyGrowth folder in Android Studio and select the app run configuration.
cd iOS/BabyGrowth
xcodebuild -scheme BabyGrowth \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 15' build
xcodebuild -scheme BabyGrowth \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 15' testLaunch BabyGrowth.xcodeproj (or GrowthApp.xcodeproj if you prefer the legacy target) in Xcode for IDE-driven workflows.
- Android lint checks:
./gradlew lint - UI benchmarks:
./gradlew :benchmark:connectedCheck - Reuse helpers in
Android/BabyGrowth/testto keep mocks DRY. - Keep XCTest async expectations under two seconds and reset app state in
setUp.
Follow the guidance in AGENTS.md for module conventions, testing expectations, and pull-request etiquette. Use the commit format <area>: <imperative summary> and attach logs or screenshots for UI-affecting changes.
This project is distributed under the terms of the LICENSE file.