Skip to content
This repository has been archived by the owner on Jul 6, 2024. It is now read-only.

mklkj/kommunicator

Repository files navigation

Kommunicator — aplikacja multiplatformowa w Kotlin Multiplatform

Bitrise Download latest apk

Założeniem projektu (nazwa kodowa "Kommunicator") jest stworzenie komunikatora w formie aplikacji mobilnej na Androida i iOS przy wykorzystaniu technologii Kotlin Multiplatform. Aplikacja będzie wykorzystywać REST API udostępniane przez cześć serwerową wykonaną we frameworku Ktor. Dane wszystkich użytkowników z wiadomościami przechowywane będą w bazie danych PostgreSQL. Sposobem na zabezpieczenie komunikacji między klientem a serwerem oprócz SSL będzie JWT.

Podstawowe funkcjonalności komunikatora:

  • rejestracja i logowanie
  • dodawanie kontaktów
  • wysyłanie i odbieranie wiadomości tekstowych
  • statusy (odczytana wiadomość, pisanie)
  • historia wiadomości dostępna offline
  • powiadomienia push

Uruchomienie projektu

Serwer

Do zbudowania serwera z działającą wysyłką powiadomień wymagane jest podanie w zmiennej GOOGLE_APPLICATION_CREDENTIALS w pliku .env ścieżki do pliku .json z danymi dostępowymi do Google Cloud, które można wygenerować tak, jak pisano na stronie: https://firebase.google.com/docs/admin/setup#initialize_the_sdk_in_non-google_environments.

UWAGA: Żeby powiadomienia działały, aplikacje muszą być połączone z tym samym projektem Firebase.

$ cp .env.example .env # skopiowanie domyślnych ustawień
$ docker-compose up    # utworzenie obrazów z serwerem i bazą danych oraz ich uruchomienie

Aplikacja

Important

Do zbudowania aplikacji wymagane jest co najmniej JDK 17.

Note

Aplikacja domyślnie buduje się z adresem API ustawionym na http://192.168.227.5:8080/. Należy go dostosować do adresu hosta z postawionym w poprzednim kroku serwerem w pliku ./composeApp/build.gradle w bloku targetConfigs.

Android

$ ./gradlew assembleDebug # zbudowanie apk

Tip

Plik .apk będzie znajdował się w ./composeApp/build/outputs/apk/debug/

iOS

Do zbudowania aplikacji z działającymi powiadomieniami potrzebny jest Provisioning Profile, a więc i konto Apple ID z Apple Developer Program membership.

W pliku Config.xcconfig ustawia się TEAM_ID używany przy budowaniu aplikacji. Można zostawić pusty (jak w Config.xcconfig.example), ale wtedy nie będą działać powiadomienia.

$ cp iosApp/Configuration/Config.xcconfig.example iosApp/Configuration/Config.xcconfig