Witam,
Robię program do sterowania bramą wjazdową (tak w dużym uproszczeniu: można ją zamknąć i otworzyć i cały czas jest podgląd jej stanu). Transmisja z serwerem przez TCP.
Mam już aplikację na Androida w Delphi (:P) ale chcę ją napisać ponownie w Kotlinie. I mam problem z doborem logiki.
Obecnie jest tak, że program wyświetla główne okno z przyciskami (otwórz/zamknij) i etykietą (status) a w tle chodzi sobie wątek który co kilka sekund odświeża mi stan bramy. Wciśnięcie przycisku powoduje ustawienie znacznika w wątku żeby wysłał dane polecenie. I tyle.
Całość transmisji jest wyrzucona do wątku bo w zależności od jakości połączenia to działa lepiej bądź gorzej a tak nie wieszam programu.
I teraz pytanie - jak to zrobić w Kotlinie żeby było tak jak być powinno? Mam świadomość że tu program pisze się bardziej zadaniowo dlatego może bez sensu będzie powtarzanie takiej logiki jak tam. A chcę osiągnąć to samo. Transmisja jako taka nie ma znaczenia bo serwer jest mój (Delphi :P), istotne tylko żeby jakość połączenia nie wpływała na używalność programu. Ma sens zachowanie starej logiki czy lepiej przejść na rozwiązanie typu "każde polecenie tworzy osobny wątek który ma jedno zadanie, a potem znika"?
I przy okazji - czy aż Thread jest mi potrzebny? Coroutine nie będzie lepszym rozwiązaniem?