8. W czym to zbudować?
• AngularJS, knockout.js, React or whatever
• HTML5 API
• WebSocket
• webRTC
9. W czym to zbudować?
• AngularJS, knockout.js, React or whatever
• HTML5 API
• WebSocket
• webRTC
My zrobiliśmy
to w tym
10. Co nam to dało?
• skalowalność rozwiązania
• niezależność od implementacji serwerowej
• efekt WOW
• dostęp np. do interfejsu głosowego
11. Co nam to dało?
• skalowalność rozwiązania
• niezależność od implementacji serwerowej
• efekt WOW
• dostęp np. do interfejsu głosowego
webRTC
12. Czym jest webRTC?
• projekt OpenSource
• wzbogaca współczesne przeglądarki o proste API
do komunikacji real-time
• getUserMedia i MediaStream
Źródło: webrtc.org
13. Czym jest webRTC?
• projekt OpenSource
• wzbogaca współczesne przeglądarki o proste API
do komunikacji real-time
• getUserMedia i MediaStream
Źródło: webrtc.org
14. Liczący się gracze wspierają
webRTC
• Mozilla Firefox
• Google Chrome
• Opera
Również w wersjach mobilnych
caniuse.com/#search=webrtc
iswebrtcreadyyet.com
Źródło: iswebrtcreadyyet.com
17. Jak to zrealizowaliśmy?
• dostęp do mikrofonu za pomocą getUserMedia
• rozpoczęcie nagrywania z wykorzystaniem
Recorder.js
• wygenerowanie Blob’a WAV z zapisem dźwięku
i konwersja na base64
18. Jak to zrealizowaliśmy?
• analiza przez serwer i uruchomienie żądanych
procesów
• głosowa odpowiedź przez WebSocket i reakcja
aplikacji
19. Co napsuło nam krwi?
• częstotliwość nagrywania
• stand-by urządzeń mobilnych i usypianie
procesów przeglądarki
• jednoczesne nagrywanie dźwięku i działanie
komunikacji po WebSocket’ach
• kompresja nagranego dźwięku
20. W jaki sposób testowaliśmy?
• aplikacja serwerowa miała pełne testy
jednostkowe i behawioralne
• SPA posiadało testy z wyjątkiem części
odpowiedzialnej za dźwięk, która testowana była
„ręcznie”
21. Co przez to osiągnęliśmy?
• responsywna aplikacja webowa -
desktop / tablet / smartphone
• obsługa przez komendy głosowe
• uruchamianie tzw. Scen
• Ambient Assisted Living z przeznaczeniem np.
dla osób starzejących się