앱인벤터 다이어리메모장 만들기 #6
스마트폰 유용한 기능 스마트폰의 음성 인식 기능을 활용하여 앱을 손쉽게 실행할 수 있습니다. 아래의 단계를 따라 음성 명령으로 앱을 실행해 보세요. 설정 메뉴에서 음성 액세스 혹은 음성 명령과 연관된 설정을 찾아 활성화합니다. 보통 음성 명령이나 음성 인식과 연관된 항목을 찾아봅니다. 음성 명령을 위한 워드링활성화 명령어을 설정합니다. 일반적으로 OK, 스마트폰 같은 워드링을 설정하면 됩니다. 특정 워드링을 외치면 음성 명령 모드가 활성화됩니다.
워드링을 외치고 나서 요구하는 앱의 이름을 부릅니다. 카메라 실행, 음악 앱 열기 등 요구하는 명령을 내릴 수 있습니다.
Contents
접근성 향상
일부 사람들에게 터치 조작이 어려울 수 있는데, 음성 명령을 통해 접근성을 높일 수 있습니다.
음성 명령을 활용한 현실 사례들을 살펴보겠습니다. 스마트폰의 음성 비서 기능은 여러가지 앱과 통합되어 있어 여러가지 처리를 수행할 수 있습니다. 예를 들면카카오톡으로 친구에게 문자 보내기라고 말하면, 카카오톡이 실행되고 특정 친구에게 쪽지를 보낼 수 있습니다. 내비게이션으로 목적지 설정하기라고 말하면, 내비게이션 앱이 실행되고 목적지를 설정할 수 있습니다.
음악 앱으로 플레이리스트 만들기라고 말하면, 음악 앱이 실행되고 새로운 플레이리스트를 만들 수 있습니다.
updateMemo 편집 후
사실 단순하게 생각하면 편집할 메모의 정보가 있어야 편집이나 삭제를 할 있습니다. 편집 전의 코드를 보시면 updateMemo에서 deleteMemo를 호출하는데 deleteMemo에서도 어떤 메모를 삭제해야 하는지 정보가 필요해서 데이터를 fetch 하였습니다. 그래서 제목, 내용, 시간정보를 바꿀 Memo entity와 제목, 시간 정보를 바꿀 MemoList entity를 불러왔다. 그러면 얘네한테 어떻게 새로운 데이터를 넣을 것인가? 나는 parameter 3개를 만들었다.
saveButtonPressed 편집 전
이 코드를 작성할 때는 위에서 newMemo context에 정보들을 다. 저장하니까 그걸 이용하면 되겠네? 이런 생각으로 작성했었다. 사안은 context를 새로 만들고 updateMemo를 통해 context를 저장하는게 문제입니다. 이 코드에 따른 결과는 메모장을 편집하면 편집대상 메모의 제목과 내용 그리고 시간이 편집본으로 변경되고 그와 같은 같은 메모가 새로 생성되는 기괴한 현상이 발생했다.
이게 context를 새로 생성한 문제의 결과물입니다. 이 부분에서 상당한 시간을 소요했다. 수많은 시도를 해도 새로운 메모장이 만들어지는 기괴한 현상을 피하기 어려웠지만, 이게 context생성과 연관된 문제인걸 깨달았을 때 비로소 해결법이 떠올랐습니다.
구글링을 하기 전에 todoList 프로젝트와 비교를 해봤습니다. 뭔가 다른 점이 보이는가?? 바로 Navigation Controller가 StoryBoard Entry Point 즉, 진입점으로 표시가 안 돼있었습니다. 저기 저 왼쪽에 화살표 있는 거 내가 실수로 체크를 해제했나. 어쨌든 Navigation Controller의 진입점이 없으니까 의미가 없던 Navigation Controller와 Bar 였던 것입니다.
다시 돌아와서 is Initial View Controller에 체크해주고 실행. NavigationBar가 잘 나옵니다. StatusBar까지 색이 안 입혀지는 게 불만이지만 디자인은 마지막에 수정하기로 했다.
인식 오류 대응
가끔씩 음성 인식이 제대로 되지 않을 수 있습니다. 이럴 때는 구체적인 명령어와 명료한 발음으로 명령을 다시 내려보세요. 이와 같이 음성 명령은 스마트폰 사용의 편리성을 높여주는 유용한 기능입니다. 여러가지 앱과 통합되어 있으며, 사용자의 음성을 인식하여 요구하는 처리를 수행합니다. 더 나아가 음성 명령은 스마트 홈 기기 제어부터 일정 관리, 음악 및 미디어 제어까지 여러가지 응용 분야에서 활용할 수 있습니다. 스마트폰 사용자들은 이와 같이 기능을 활용하여 생활을 더욱 손쉽게 만들 수 있습니다.
자주 묻는 질문
접근성 향상
일부 사람들에게 터치 조작이 어려울 수 있는데, 음성 명령을 통해 접근성을 높일 수 있습니다. 궁금한 내용은 본문을 참고하시기 바랍니다.
updateMemo 편집
사실 단순하게 생각하면 편집할 메모의 정보가 있어야 편집이나 삭제를 할 있습니다. 자세한 내용은 본문을 참고하시기 바랍니다.
saveButtonPressed 편집
이 코드를 작성할 때는 위에서 newMemo context에 정보들을 다. 궁금한 사항은 본문을 참고하시기 바랍니다.