Lekcje z naprawy Bluetooth w dyktafonie SpeechZap
To jest wpis z serii 1 sukces dziennie.
W tej serii publikuję codziennie jeden sukces, który osiągnąłem poprzedniego dnia. To praktyczna implementacja podejścia z książki Show Your Work!
Codziennie zapisuję swoje postępy w SlowTracker – aplikacji do zapisywania sukcesów. Następnego dnia rano wybieram jeden lub kilka i tworzę z nich krótki post.
Odkryłem błąd w aplikacji SpeechZap: aplikacja zbierała dźwięk jedynie z mikrofonu urządzenia, bez znaczenia, czy połączyłem się z zestawem głośnomówiącym, czy nie. Trochę lipa, skoro ma to być apka dedykowana dla osób będących w ruchu.
Naprawiłem to na Android, ale niestety na iOS to nie zadziałało od kopa. Na szczęście udało mi się i tu znaleźć rozwiązanie, choć wymagało to kilkudziesięciu prób, a nie mam iPhone’a do testów.
Rozwiązanie - dla programistów
Do tej pory korzystałem z wtyczki capacitor-voice-recorder ↗. Próbowałem ją zhakować, żeby samodzielnie dodać kod do nagrywania przez zestaw głośnomówiący, ale to nie działało. Nie wiem czemu, bo nawet prostszy kod działa w innej wtyczce: capacitor-plugin-headset ↗.
Metodą prób i błędów udało mi się znaleźć rozwiązanie dla Android:
// w momencie rozpoczęcia nagrywania
await HeadsetPlugin.toggleBluetoothSco({
scoOn: true,
});
Ale to nie wystarczyło dla iOS. Tam znów metodą prób i błędów (dzięki uprzejmości kolegi, bo ja nie mam jeszcze iPhone’a do testów), udało mi się znaleźć trochę brzydkie, ale działające rozwiązanie:
await HeadsetPlugin.toggleBluetoothSco({
scoOn: true,
});
setTimeout(() => {
HeadsetPlugin.toggleBluetoothSco({
scoOn: true,
});
}, 0);
Musiałem jednak zrobić jedną rzecz: dodać kod Swift do uruchomienia tej metody na iOS, bo wtyczkę zaimplementowano jedynie na Android.
Kod znajdziesz tutaj ↗.
Dla przedsiębiorców
Początkowo rozważałem zakup iPhone’a, chociaż nie uśmiecha mi się wydawać teraz na coś, czego potrzebuję jedynie do testów raz w tygodniu. Nie chciałem jednak prosić nikogo o pomoc, bo co to za programista aplikacji mobilnych, co nie ma swojego urządzenia.
Nie chciałem też zderzać się z obawą znajomych o udostępnienie mi urządzenia i zajęcie go na kilka godzin (tyle trwały testy na Android, nie oczekiwałem, że z iOS pójdzie szybciej).
Potem podzwoniłem i okazało się, że kolega ma nieużywany, ale nieco uszkodzony iPhone 7. Po kilku godzinach, gdy dostałem urządzenie do ręki, okazało się, że nie mogę na nim zainstalować aplikacji.
W międzyczasie poszukałem bliżej. Pracownik restauracji w hotelu rodziców miał nowszego iPhone’a i zgodził się udostępnić mi go na testy. A że w tym czasie pracował, to i tak nie potrzebował telefonu. Dał mi nawet swój PIN!
Dzięki temu, że schowałem dumę do kieszeni i poprosiłem go o pomoc, to mogłem porządnie przetestować aplikację i błyskawicznie dostać informację zwrotną (kluczowe!). Nie musiałem polegać na testach znajomych, bo to zdecydowanie zbyt długi proces. (Oprócz zbudowania apki trzeba poczekać kilka godzin na akceptację wersji testowej przez Apple 🤦)
Podsumowanie
SpeechZap ma już nagrywanie przez zestaw głośnomówiący, co było jedną z największych przeszkód technicznych dla aplikacji, która jest dedykowana osobom będącym w ruchu (spacer, samochód, rower) 🚀
Nawiązałem kontakt z innymi, miałem okazję opowiedzieć o swojej aplikacji i bez wydawania pieniędzy pokonać przeszkody. Ta krótka historia to przykład, którego mogę użyć, aby nauczyć zaradności swoje dzieci.
Wydanie pieniędzy jest szybkim sposobem, ale kosztownym 😉
P.S. Okazało się, że kolega miał jeszcze jeden telefon i pożyczył mi go do kolejnych testów. Jak dyktafon zacznie zarabiać, to sobie wreszcie kupię. Pomożesz mi w tym? 😇 Przetestuj na speechzap.com ↗