Open-source clients for UNES, a companion app for students at UEFS (Universidade Estadual de Feira de Santana). UNES connects to your official academic portal (SAGRES) and organizes grades, schedule, classes, messages, and enrollment into a fast, native experience.
This repository holds the client applications — Android, iOS, and the marketing site. The backend service they talk to is a separate, closed-source project.
Its history runs continuously from the 2018 restart of the single-app Android project through the current multi-platform rewrite, so the whole lineage is browsable here even though the current tree is the v2 clients. The project itself is older: UNES began in November 2017 as Pineapple, the original Android app this repository grew out of.
| Path | What |
|---|---|
apps/android |
Native Android app (Kotlin + Jetpack Compose) |
apps/ios |
Native iOS app (Swift + SwiftUI + The Composable Architecture) |
apps/landing |
Marketing site (Astro) |
packages/shared-kmp |
Shared business logic (Kotlin Multiplatform) — XCFramework for iOS, lib for Android |
build-logic |
Gradle convention plugins shared across the JVM projects |
Tooling versions are pinned with mise:
mise install # JDK, Gradle, Bun- Android:
./gradlew :apps:android:app:assembleDebug - Shared KMP XCFramework:
./gradlew :packages:shared-kmp:umbrella:assembleUmbrellaReleaseXCFramework - iOS: open
apps/iosin Xcode - Landing:
cd apps/landing && bun install && bun run dev
The apps expect their own Firebase configuration and a backend endpoint. If you are
building your own fork, supply your own google-services.json /
GoogleService-Info.plist and point the apps at your own server.
See verification commands and merge evidence for repository,
Android, native iOS and landing checks. Agents can run the isolated synthetic
account with bun run android:scenario home.populated --serial DEVICE_SERIAL;
no production account is needed. Android performance
documents the separate physical-device benchmark and Baseline Profile commands.
The original single-app Android incarnation is also preserved as standalone refs:
- Tag:
v1-legacy-android - Branch:
legacy/android-v1