IT 프로그래밍-Android

[Android] 키보드 앱 만들기

godsangin 2019. 10. 25. 01:08
반응형

안녕하세요. 주니어 개발자 godsangin입니다. 취업준비로 인해 포트폴리오를 작성하려는데 그동안 해온 것도 생각이 잘 안나고 잘 정리해 놓을 필요성을 느껴 블로그를 시작하게 되었습니다 !

많이 부족한 글이더라도 좋게 봐주시면 감사하겠습니다 !!

 

산학협력 프로젝트를 할 기회가 생겨 안드로이드 키보드를 제작하게 되었습니다.

커스텀 키보드 제작을 위해서는 KeyboardView, Keyboard라는 클래스를 사용하고 각 키를 정의하는 keyboard태그를 가진 xml파일과 연동하는 과정을 거쳐 inputMethodService를 통하여 Service로 등록하고 사용할 수 있다는 것을 검색을 통해 알 수 있었습니다. 

하지만 안드로이드 공식 레퍼런스를 찾아본 결과 KeyboardView와 Keyboard클래스가 API 29 이후로 deprecate된 것을 확인할 수 있었습니다.

[출처]  https://developer.android.com/reference/android/inputmethodservice/KeyboardView

 

그 이유는

개발자가 더 동적으로 자유롭게 구현할 수 있도록 하기 위함이라고 합니다..!(영알못)

 

때문에 하는 수 없이 모든 레이아웃을 커스텀하고, inputMethodService를 통하여 각각의 버튼을 특정 이벤트와 연결하기로 결정(!)했습니다. 

키보드를 제작하는 과정에서 많은 인터넷 자료들을 찾아보았지만, deprecate되는 기능을 사용하지 않는 키보드에 대한 자료를 찾아볼 수 없었습니다.(제가 못찾은 것일지도 모릅니다...)

그래서 !! 제가 직접 고민하고 해결한 과정을 블로그로 공유드립니다.

 

[Android]Custom Keyboard제작기는 총 3부로 작성될 예정이며 1주일에 한편씩 업데이트 하도록 하겠습니다.

1부: inputMethodService에 대하여 알아보자(다른 서비스의 EditText간섭하기!), FrameLayout을 통한 한/영/특문 등 키보드 변경하기

2부: 한글 오토마타 만들기

3부: 천지인 키보드 만들기

PS. 키보드 제작 자체는 현재 완료된 상태이며 한글 오토마타(천지인)와 추가 기능 구현이 남아있는 상태입니다.