Grupa niezależnych entuzjastów opublikowała projekt Monogram, rozwijający nowego otwartego klienta komunikatora Telegram dla mobilnej platformy Android. Projekt napisany jest w języku Kotlin z wykorzystaniem deklaratywnego frameworka UI Jetpack Compose. Kod jest otwarty na licencji GPLv3 (projekt ma również swój kanał Telegram).
Głównym motywem stworzenia alternatywnej aplikacji jest potrzeba zapewnienia przejrzystości procesu rozwoju oraz rozwiązanie nagromadzonych problemów oryginalnego klienta. Autorzy projektu zauważają, że baza kodowa oficjalnej aplikacji Telegram dla Androida z biegiem czasu przekształciła się w złożony monolit, w zapętlonym kodzie którego zewnętrzni programiści mają praktycznie niemożliwe do zrozumienia. Ponadto, krytyce poddano obecną praktykę twórców komunikatora, objawiającą się w systematycznym opóźnianiu publikacji kodu źródłowego, w którym zmiany w otwartych repozytoriach pojawiają się z dużym opóźnieniem po wydaniu wersji binarnych w katalogach aplikacji.
Dodatkowym katalizatorem rozwoju niezależnego projektu była liczna krytyka niedawnego redesignu oficjalnej wersji na Androida, w której programiści zaczęli agresywnie wprowadzać wizualne elementy charakterystyczne dla iOS (takie jak efekty rozmycia tła i półprzezroczystość w stylu „Liquid Glass”), ignorując przy tym zalecenia dotyczące projektowania Androida.
Za interakcje sieciowe, pracę z protokołem MTProto i szyfrowanie end-to-end w nowym kliencie odpowiada oficjalnie dostarczana biblioteka TDLib (Telegram Database Library), której rdzeń został zaimplementowany w języku C++. Sama praca nad częścią kliencką prowadzona jest z naciskiem na wykorzystanie nowoczesnych wbudowanych narzędzi platformy, wysoką wydajność oraz minimalizację zużycia zasobów systemowych.
Wśród kluczowych cech projektu wyróżniają się:
- Interfejs użytkownika zbudowany w ścisłej zgodności z koncepcją Material Design 3, będącą standardem natywnego wizualnego stylu Androida, w połączeniu z wykorzystaniem wbudowanych komponentów platformy do pracy z plikami multimedialnymi, co pozwala osiągnąć wysoką płynność i wyraźnie zmniejszyć zużycie zasobów telefonu.
- Integracja swobodnego stosu map MapLibre do renderowania danych geograficznych i zarządzania lokalizacjami.
- Wsparcie dla podstawowych zabezpieczeń sesji, w tym możliwość blokowania aplikacji przy użyciu systemowej biometrii.
Źródło: opennet.ru
