Skip to content
Anto426-ProjectPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

UniApp icon

UniApp

Kotlin Multiplatform Jetpack Compose Android iOS

divider

UniApp per gli studenti dell'Universita degli Studi del Molise.
Sviluppata da Anto426 con Kotlin Multiplatform, Compose Multiplatform e Material 3.

In sviluppo Feedback

about UniApp

UniApp nasce da un progetto indipendente con l'obiettivo di offrire agli studenti dell'Universita degli Studi del Molise un accesso piu semplice, ordinato e immediato ai principali servizi universitari. L'app riunisce in un'unica esperienza le funzioni piu utili per la vita universitaria:

  • gestione della carriera e consultazione del libretto
  • visualizzazione di esami, appelli e prenotazioni
  • accesso alle informazioni dello studente e al QR badge
  • consultazione di questionari e compilazione multi-pagina
  • gestione delle prenotazioni e delle cancellazioni dei trasporti
  • una base tecnica pensata per supportare l'evoluzione dell'app e le future distribuzioni

UniApp e sviluppata e mantenuta in modo indipendente e non e affiliata ufficialmente all'Universita degli Studi del Molise.

stack Stack

root@anto426: ~/UniApp (main⚡)$ stack --list

> language:
  - Kotlin 2.4.20

> ui:
  - Compose Multiplatform 1.12.0
  - Material 3

> platform:
  - Android (min SDK 29)
  - iOS (arm64, simulator arm64)
  - Desktop JVM (Linux, Windows, macOS)

> tools:
  - Gradle
  - Android Studio
  - Xcode

modules SDK precompilati

Gli SDK vivono in repository separati. I loro workflow pubblicano le dipendenze Maven per Gradle su GitHub Packages e un archivio Maven nelle GitHub Releases, con AAR Android ottimizzati da R8, metadati Kotlin Multiplatform e KLIB iOS. Ogni push sul branch principale dello SDK produce una versione 1.0.<run_number>.

Modulo Funzione Repository
liquid-monet Componenti Compose, tema Monet e superfici optical glass Anto426-Project/Liquid-Monet
uni-sdk Client KMP per API Cineca, backend UniApp, aggiornamenti e trasporti Modulo interno
secure-storage-sdk Persistenza sicura multipiattaforma per credenziali e token Modulo interno
firebase-connector-sdk Push notification e integrazione Firebase/FCM Modulo interno

UniApp usa esclusivamente SDK precompilati, come normali dipendenze Maven con versione esplicita in gradle/libs.versions.toml. Ogni SDK ha un repository, una build e una versione indipendenti. Il resolver scarica la Release v<versione> dichiarata nel catalogo, verifica gli hash e prepara .sdk-binaries/maven; non seleziona mai latest e non include i sorgenti dei repository vicini. .sdk-binaries/resolved.properties registra le versioni e revisioni effettivamente installate, senza sovrascrivere il catalogo.

Per preparare un checkout, con Python 3.11 o successivo, JDK 21 e un GITHUB_TOKEN o GH_TOKEN che possa leggere i repository privati degli SDK:

python3 scripts/fetch_sdk_binaries.py
./gradlew :composeApp:testAndroidHostTest :androidApp:assembleDebug

Per aggiornare uno SDK, cambiare soltanto la sua versione nella sezione [versions] del catalogo e rieseguire python3 scripts/fetch_sdk_binaries.py. Per Liquid Monet l'alias è liquid-monet-sdk (libs.liquid.monet.sdk in Gradle). Il download fallisce se quella Release non esiste o contiene una versione diversa. Dopo un cambio di versione, Gradle segnala eventuali binari locali obsoleti e richiede di ripetere il download.

Il contenitore generale AppNavigationHost applica una sola transizione Liquid Monet alle pagine, alle sottopagine e al ritorno indietro. In Tema, la sezione unica "Sfondo, fisica e animazioni" raccoglie sfondo Liquid, movimento ridotto e preferenze di transizione. Si possono scegliere gli otto preset animati dell'SDK; la preferenza è salvata per l'intera app. Dissolvenza orizzontale (DirectionalHorizontal) è il valore predefinito. Il solo controllo globale "Riduci movimento" gestisce la disattivazione. UniMotion distribuisce la scelta ai contenitori condivisi; l'SDK gestisce temporizzazione e movimento ridotto. I cambi di sessione restano immediati perché invalidano la pagina precedente. Le schermate e le sezioni usano layout statici; gli indicatori e i controlli mantengono il movimento previsto dai componenti dell'SDK. python3 scripts/check_motion_ownership.py verifica che non vengano introdotte nuove animazioni locali o preset diversi nelle schermate. Tutto usa la scena Liquid Glass già presente nell'app.

La guida alle build descrive toolchain, runner, integrazione Xcode e verifiche degli SDK indipendenti. La guida a badge e biglietti descrive generazione artistica, lettura dei codici e conservazione degli originali.

Nei runner Android e iOS il resolver usa il secret SDK_READ_TOKEN, oppure DEPLOY_TOKEN se il primo non è configurato. Il token deve avere accesso in lettura ai contenuti di tutti e quattro i repository; il GITHUB_TOKEN automatico di UniApp non basta per gli SDK privati. I checksum vengono verificati anche quando gli archivi sono già nella cache .sdk-downloads/.

La build dell'app si avvia manualmente da GitHub Actions. Il sito ha un workflow separato. Per usare gli SDK direttamente da GitHub Packages in altri progetti, configurare il repository https://maven.pkg.github.com/anto426-project/<repository-sdk>, credenziali con read:packages e una versione Maven pubblicata esplicita.

structure Struttura

androidApp/                 Launcher Android e manifest
composeApp/                 Codice condiviso Compose Multiplatform
  src/commonMain/           UI e logica condivisa
  src/androidMain/          Integrazioni Android
  src/iosMain/              Integrazioni iOS
androidApp/src/main/        Entry point Android
.sdk-binaries/              Repository Maven locale generato, escluso da Git
assets/                     Asset grafici del README
scripts/                    Utility di versioning e deploy
iosApp/                     Host application iOS
docs/                       Documentazione del progetto

divider

Contributi e feedback

Per segnalazioni, idee o problemi, consulta la guida al feedback. Prima di aprire una segnalazione verifica che il problema sia riproducibile sull'ultima build disponibile.

Desktop

La versione PC usa desktopApp e binari JVM degli SDK con versioni indipendenti. Vedi compilazione, avvio e funzioni disponibili.

Android, iOS, Windows, Linux e macOS hanno build e pubblicazioni indipendenti. Build All avvia le build specifiche; ogni piattaforma pubblica una sola versione.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages