Mechanizmy wewnętrzne, pozabiznesowe, jakie?

0

Hejka
Jakie mechanizmy pozabiznesowe powinna mieć aplikacja mobilna?

Chodzi mi o wszelkie pomiary, zapisywanie działań użytkownika, Crashlytics, Performance itp. Co stosujecie w aplikacjach biznesowych (zamówienia+)?

3

"Jakie mechanizmy pozabiznesowe powinna mieć aplikacja mobilna?" pozabiznesowe? Żadnych.

Crashlytics, Performance należą do KPI dla aplikacji i są dodane w apce.

https://saintgimp.org/2009/03/11/source-code-is-a-liability-not-an-asset/

0

@lubie_programowac: Nie rozumiem czy Ty się czepiasz terminologii?

Crashlytics, Performance należą do KPI dla aplikacji i są dodane w apce.

Możesz wyjaśnić co to znaczy, że żadnych biznesowych nie powinno być a KPI powinno być dodane w apce? Chodzi Ci o to, że KPI nie należy do biznesowych?

4
jacek.placek napisał(a):

@lubie_programowac: Nie rozumiem czy Ty się czepiasz terminologii?

Raportowanie błędów, to też jest mechanizm biznesowy, który można urozmaicać na różne sposoby i może wpływać na to, jak aplikacja się zachowuje. Podobnie jak mierzenie wydajności, monitorowanie sieci, logi, analityka, itp. Przecież nikt nie powinien tego dodawać, jeśli nie ma takiej potrzeby. Więc ciężko jest odpowiedzieć na pytanie, kiedy nie wiadomo o co Ci chodzi.

0

No może i ciężko. Nie chcę nikogo urazić, ale jak ktoś chce się skupiać na programistycznych bon motach to pewnie ciężko.
Przykład. Chcę mieć aplikację do składania zamówień. Katalog towarów, dodawanie pozycji do zamówienia itp. To jest biznes. Nie mam (lub nie znam) dodatkowych wymagań. I teraz ewentualny wykonawca mówi mi, że oprócz tego, z punktu widzenia poprawności działania, monitoringu, jakości powinno być w aplikacji jeszcze to, to i to. Nie chodzi mi o jakieś mechanizmy marketingowe tylko czysto techniczne związane z działaniem/utrzymaniem aplikacji.

4

No ale to wykonawca Ci powiedział, że oczekuje też monitoringu, więc jest to wymaganie od klienta. Ale chyba wiem o co Ci chodzi. Masz na myśli praktyki, o których zazwyczaj nie myślą klienci, a które pomagają w rozwijaniu aplikacji albo które wypada zrobić, żeby nie mieć problemów? Jeśli tak to taka lista z głowy na szybko.

  • Raportowanie błędów. Najpopularniejsze jest Crashlytics aczkolwiek ja wolę Bugsnag.
  • Analityka w postaci Firebase Analytics (ciężko o lepszą alternatywę, chyba że ma się swój backend).
  • Jeśli jest komunikacja z backendem to wysyłanie np. w nagłówkach HTTP wersji aplikacji, żeby na wszelki wypadek można było wymusić aktualizację. Należy wtedy oczywiście dodać w aplikacji obsługę takiego wymuszenia ze strony backendu.
  • Feature flagi do wyłączania funkcji aplikacji gdyby okazało się, że są w nich błędy. Takie flagi najlepiej jakby były konfigurowane poprzez backend, żeby nie trzeba było czekać tydzień z wyłączeniem czegoś.
  • Monitorowanie sieci. Jak długo trwają zapytania, jak dużo nasza apka pobiera danych, itd.
  • Wysyłanie logów. Wymaga to najpierw odpowiedniego utrzymywania robienia logów i korzystania z poprawnych typów logów (a nie wszędzie tylko debug albo error). Często łączy się tę funkcję z raportowaniem błędów.
  • Powiadomienia push. Warto dodać, żeby można było w razie czego wysłać do wszystkich użytkownik wiadomość w stylu Hej, od jutra jest obniżka 50% na kiełbasę w naszej aplikacji.
  • Zawarcie w aplikacji licencji do korzystanych bibliotek, jeśli licencje tego wymagają (np. Apache 2.0 czy MIT).
  • Możliwość zgłaszania bugów przez użytkowników. Najlepiej z opcjonalną możliwością dodania logów i zrzutu ekranu, które są dodawane automatycznie.
  • Na Androidzie konfiguracja R8. Nie chodzi mi o zaciemnianie kodu (bo to zazwyczaj nie ma znaczenia) tylko o optymalizacje wielkości aplikacji i szybkości kodu.
  • ANR jest automatycznie załatwiany przez konsolę na Androidzie (nie wiem jak iOS), ale też można dodać wykrywanie tego na własną rękę, jeśli jest akurat potrzeba (sam nigdy nie miałem).

W przypadku logów bardzo ważna rzecz – należy upewnić się, że w logach nie wyciekają dane użytkowników. Czyli jak poleci jakiś wyjątek, to żeby w toString() klas nie było czegoś w stylu email albo password.

Poza aplikacją produkcyjną to dodatkowe rzeczy:

  • Osobna wersja aplikacji tylko do testów. Powinna często zawierać dostęp do dodatkowych debugowych narzędzi w jakiejś zakładce. Głównie do podglądu/edycji rzeczy wymienionych wyżej, ale nie tylko. W zasadzie może tam być czego tylko dusza zapragnie.
  • Konfiguracja CI razem ze statyczną analizą kodu, testami, itd.
  • Konfiguracja CD, żeby aplikacja testowa była wrzucana na bieżąco np. na AppCenter i produkcyjna na sklep.
0

Dzięki, dokładnie ot o mi chodziło.

0

Dodam od siebie sprawdzanie aktualizacji i info dla Usera z linkiem do sklepu.
Jeśli ktoś coś jeszcze to zapraszam.

1

Aplikacja powinna mieć to za co klient zapłaci. Ni mniej niż więcej.

A wszystko podparte analizą prawniczą, regulaminami i zgodami RODO.

1 użytkowników online, w tym zalogowanych: 0, gości: 1