비전공자 독학 3개월차 ? 앱 완성했습니다!! (결과물 첨부)
하..
너무 행복합니다.
저는 본업을 호텔업을 하고있는 자영업자이고
개인시간이 많이 남는터라, 남는시간에 코딩에 빠져 지냈습니다
한 3개월정도 코딩 독학을 하였고 그리고 결국엔 라디오 스트리밍 어플을 완성하였습니다.
일단 앱개발을 시작하기에 앞서, 객체지향 언어 에 대한 개념만 살짝 느껴보고자 JAVA 언어를 한 2주정도 하루 8시간정도 열심히 유튜브 공부하였었고요
그후로는 flutter & dart + 안드로이드 스튜디오 를 이용하여 , 본격적인 앱개발을 시작하였습니다
그러니까 총 앱개발 기간은 약 2개월정도 걸리지 않았나 싶습니다.
일단
앱을 실행하면 바로 채널 목록이 나오고
해당채널을 누른후 재생버튼을 누르면, 바로 라디오가 재생되는 방식입니다.
앱개발을 해보면서 느낀점
스트리밍 URL을 json 방식으로 get 해오는것이 너무 어려웠습니다.
KBS SBS MBC 의경우 주기적으로 스트리밍 URL이 변경되더라고요,
해서 해당 방송사의 경우, json 형태로 받은 스트리밍 url 을 , body 부분만 추출해서,
버튼을 누를때마다 최신상태의 라디오 스트리밍 URL을 가져오겠금 코드 하였습니다.
위경우 문제가 있었는데
일정시간이 지나면, 라디오 스트리밍 URL 주소가 다른주소로 변경이 되어서 ,오랫동안 켜두면 왠지 스티리밍이 중단될것같은 느낌이 있었습니다
해서 해결책으로
1시간마다 스트리밍 URL을 재할당하여 최신상태의 URL로 재생되겠금 하였고요
이과정에서 1시간마다 최신 상태의 URL로 업데이트 되면서 중간에 소리가 충첩되는 부분? 이있다고 해야할까 ? 하는 문제점이 생기긴하더라고요 (이부분은 앞으로 해결해야 할 과제) 여튼 라디오 스트리밍은 정상적으로 오랜시간 잘 출력 되었습니다.
그렇게 해당어플을 사용중 다른문제에 또 직면하였는데요
라디오 스트리밍 재생버튼을 눌러서 재생하는것까지는 기능구현을 완료하였으나
사운드가 0.5배속으로 재생되어지는것같은 ? 느낌이 있어서 해당부분을 알아보니 버퍼링 기능을 너어줘야 하는 문제점을 발견하였고
이부분은 버퍼링 관련 패키지 를 설치하고 기능구현함으로서 해결하였고요
그와 다른 문제점으로
스마트폰의 디스플레이가 꺼지면, 제가 만든 어플리케이션이 백그라운드상에서 중지가 되는 문제가 있었습니다
해서 검색을 해보니
https://pub.dev/ 사이트에서 flutter_background_service 라는 패키지를 설치한후 해결하였고요
이부분이 가장 어려웠던 부분인데
백그라운드 상에서 암만 api문서대로 작성해도 기능 구현이 안되길래 매우 오랜시간 고생한듯 하였습니다만
결국 제가 해당 문서를 정확하게 이해하지 못한것이 문제였던것을 알았습니다.
결과적으로 재생버튼을 눌렀을 경우 FlutterBackgroundService().invoke("setAsForeground"); 를 호출? 해줘야 해당기능이 작동하는것을 알아냈고
결국에 모든 프로젝트를 완성하였습니다.
결과물을 영상으로 첨부합니다.
정말 너무행복합니다, 정말 정말 너무 행복합니다 ㅠㅠ 하 ㅠㅠㅠㅠㅠ
