안드로이드 키보드 7

[RPG 키보드] 나만의 키보드를 특별하게!

안녕하세요. godsangin입니다. 오늘은 드디어 제가 그동안 개발일지를 작성했던 키보드 애플리케이션을 소개하는 날입니다. 키보드 앱을 개발하면서 여러가지 다른 키보드 앱을 다운받아 사용해 보았지만, 주로 키 패드 뒤로 나타나는 이모티콘이나, 오타 보정, 이모티콘 보내기(사진으로 보내기) 등의 기능을 가진 키보드들이 많았습니다. 그래서 저는 키 패드 자체에 애니메이션 효과를 가진 키보드를 만들어 보면 어떨까? 하는 생각을 할 수 있었습니다. 안드로이드에서 분리된 기능은 KeyboardView에서는 키 패드를 누를 경우 정적인 Preview를 고정시키는 기능을 가지고 있었지만 '직접 커스텀한 키보드로는 정적인 view보다는 동적인 애니메이션을 사용할 수 있겠구나'가 주된 아이디어였습니다. 그래서 이미지와..

내가만든앱 2019.11.22

[Android] 키보드 앱 만들기 후기

안녕하세요 godsangin입니다. 약 3주에 거쳐 키보드 앱 개발하는 과정을 포스팅하게 되었는데요. 블로그 글은 처음 써본 관계로 여러가지 시행착오가 많았던 것 같습니다. 처음 InputMethodService에서 InputConnection을 가져오는 과정에서부터 직접 만든 한글, 영어, 특수문자 등의 키보드에 직접 적용시키는 것 까지. 여러분들은 본인만의 키보드를 잘 만들 수 있었나요 ?? 만약 힘드셨다면 저에게 피드백을 남겨주세요..ㅠㅠ 저 또한 키보드에 대해 공부하면서 개발하였기 때문에 아직까지도 코드가 깔끔하지 않고, 천지인 키보드 같은 경우에는 낯선 문자가 발견되거나, 널문자가 포함되어 카톡을 보내거나 인터넷 검색을 할 경우에 이상한 유니코드가 발견되는 등 많은 수정해야할 사항이 존재합니다...

[Android]커스텀 키보드 만들기(4/4) - 천지인 키보드 만들기

드디어 마지막 시간입니다..! 오늘은 지난번에 정의했던 HangulMaker를 이용하여 ChunjiinMaker를 만들어보도록 하겠습니다. 우선 이전 키보드들과 마찬가지로 KeyboardChunjiin을 작성합니다. val firstLineText = listOf("ㅣ", "·", "ㅡ","DEL") val secondLineText = listOf("ㄱㅋ", "ㄴㄹ", "ㄷㅌ", "Enter") val thirdLineText = listOf("ㅂㅍ","ㅅㅎ","ㅈㅊ",".,?!") val fourthLineText = listOf("한/영", "ㅇㅁ", "space", "!#1") 지금까지 잘 따라오셨다면 KeyboardEnglish 또는 KeyboardKorean을 참고하여 작성하실 수 있으리라 믿..

[Android] 커스텀 키보드 만들기(3/4) - 쿼티 키보드 만들기

지난 시간에 이어 오늘은 한글 오토마타를 생성하여 한글 키보드를 만들어 보도록 하겠습니다. 한글 키보드는 대부분의 키보드가 쿼티 키보드를 기반으로 하기 때문에 쿼티 키보드 제작을 기반으로 하였습니다. 영어 키보드와 마찬가지로 작성한 코드에 commit할 때 HangulMaker라는 커스텀 클래스를 만들어 사용하는 방법입니다. val numpadText = listOf("1","2","3","4","5","6","7","8","9","0") val firstLineText = listOf("ㅂ","ㅈ","ㄷ","ㄱ","ㅅ","ㅛ","ㅕ","ㅑ","ㅐ","ㅔ") val secondLineText = listOf("ㅁ","ㄴ","ㅇ","ㄹ","ㅎ","ㅗ","ㅓ","ㅏ","ㅣ") val thirdLineText..

[Android] 커스텀 키보드 만들기(2/4) - 영문 키보드 만들기

앞서 말씀드렸듯이 KeyboardView와 Keyboard를 사용하지 않기 위하여 새로운 레이아웃을 정의하고 바인드하는 작업이 필요합니다. 첫번째로 Layout을 작성해야합니다. 키 패드는 재활용 가능성이 다분하기 때문에 키패드 레이아웃을 따로 작성하였습니다. 키 패드는 실제로 키 버튼이 들어갈 Button과 Button 오른쪽 위로 롱 클릭 시 작성될 특수문자, DELETE 버튼에 사용될 ImageView로 구성되어있습니다.(레이아웃 이름은 keyboard_item입니다) 그리고 이 키 패드를 include하는 실제 keyboardView를 작성합니다.(레이아웃 이름은 keyboard_action입니다) 위와 같이 4개의 큰 LinearLayout으로 정의되어 있습니다. 다음으로 코드를 작성해 보겠습니..

[Android]커스텀 키보드 만들기(1/4) - InputMethodService

preview에 이어서 안드로이드 커스텀 키보드 만들기 1부를 시작하겠습니다. 3부작으로 작성하려고 노력하였지만 글이 너무 길어져서 4부작으로 늘린 점 죄송합니다 ㅠㅠ 1부에서 주로 다룰 내용은 서비스를 통하여 다른 애플리케이션에서 EditText로 인한 키보드 호출 시 커스텀 키보드를 출력하고 커스텀 키보드의 이벤트를 inputMethodService를 이용하여 다시 EditText를 작성할 수 있도록 만드는 것이 목표입니다. 앞서 말씀드렸듯이 Keyboard객체와 KeyboardView객체를 사용하지 않는 것이 큰 특징이고, 그로 인해 각각의 버튼을 모두 따로 바인드 해야 한다는 번거로움이 존재합니다.(다른 방법이 있다면 알려주세요...ㅠㅠ) 우선 첫번째로 키보드로 정의하기 위한 서비스를 작성합니다...

[Android] 키보드 앱 만들기

안녕하세요. 주니어 개발자 godsangin입니다. 취업준비로 인해 포트폴리오를 작성하려는데 그동안 해온 것도 생각이 잘 안나고 잘 정리해 놓을 필요성을 느껴 블로그를 시작하게 되었습니다 ! 많이 부족한 글이더라도 좋게 봐주시면 감사하겠습니다 !! 산학협력 프로젝트를 할 기회가 생겨 안드로이드 키보드를 제작하게 되었습니다. 커스텀 키보드 제작을 위해서는 KeyboardView, Keyboard라는 클래스를 사용하고 각 키를 정의하는 keyboard태그를 가진 xml파일과 연동하는 과정을 거쳐 inputMethodService를 통하여 Service로 등록하고 사용할 수 있다는 것을 검색을 통해 알 수 있었습니다. 하지만 안드로이드 공식 레퍼런스를 찾아본 결과 KeyboardView와 Keyboard클래스..