Custom Keyboard
iOS에서 키보드를 커스터마이징 할 수 있게 된건 안드로이드 보다 상대적으로 오래 되지 않았습니다.
iOS8 버전부터 extension의 개념으로 커스텀 키보드 어플리케이션을 제작 할 수 있게 되었는데,
이미 사용자들은 아이폰의 키보드에 적응해버린 이후라 많이 활성화 되어있지는 않은 것 같습니다.
단적으로 안드로이드와 비교해보면 안드로이드 사용자들이 사용하는 키보드는 제각각 다른 반면(제조사
제공키보드, 써드파티 키보드 등) 아이폰 유저들은 상대적으로 기본 키보드 사용자가 월등히 많다고 생각합니다.
그래도 키보드를 커스터마이징 할 수 있다는 건 매우 매력적입니다. 우리가 스마트폰을 사용하면서 제일 많이 마주하는 앱은 아마도 키보드 앱 일테니깐요.
Apple Guidelines
iOS 개발을 위해서는 꼭 2가지 문서는 참고하는 것이 좋다고 생각합니다.
Apple에서 제공하는 HIG(Human Interface Guidelines)(https://developer.apple.com/design/human-interface-guidelines/) 와
developer documentation(https://developer.apple.com/documentation/) 입니다.
먼저 HIG에서 extension guide를 살펴보면 custom keyboard에 관련된 내용을 찾을 수 있습니다.(https://developer.apple.com/design/human-interface-guidelines/ios/extensions/custom-keyboards/)
Human Interface Guidelines
HIG를 읽어보시면 키보드 앱을 만들때 다음과 같은 사항을 고려해야 합니다.
1.Make sure you really need a custom keyboard
키보드 익스텐션은 사용자가 사용하는 앱 어디에서나 접근이 가능합니다.(은행,비밀번호 등 일부 보안이 필요한 섹션 제외) 따라서 정말 System-wide하게 작동되어야 할 키보드만 키보드 익스텐션으로 만들어야 합니다.
혹시 본인의 앱에서만 작동하는 키보드를 만들고 싶다면 키보드 익스텐션보단 custom inputview를 만드시는게 좋아요!
ex) - 급식체 자동 완성 키보드 (o) , - 쇼핑몰 앱 내에서 사용가능한 내 장바구니 목록 이동 키보드(x)
2.Provide an obvious and easy way to switch between keyboards.
어찌보면 당연한 이야기 입니다. 써드파티 키보드에서 다른 키보드로 전환이 불가능하다면...끔찍하네요.
가장 중요하게 구현해야 될 부분입니다. 실제로 애플의 가이드를 따라가다보면 만들어지는 아주 기본 키보드앱에도 딱 하나 구현되어있는 버튼이 'next keyboard' 버튼입니다.
3.Don't duplicate system-provided keyboard features.
2번과 다르게 구현하지 말아야 될 부분입니다. 예시에서는 이모티콘,글로벌키,받아쓰기 버튼을 볼 수 있네요. 헉 그럼 이모티콘 키보드를 만들수 없느냐? 그건 아닙니다. 다만 특정 기종(2020년 기준 비교적 최신기종) 아이폰에서는 키보드 밑에 글로벌키랑 받아쓰기, 이모지 버튼이 나타납니다. 키보드와는 독립적인 영역으로요!
만약 이 버튼을 똑같이 만들면 사용자에게 혼란을 줄 수 있기 때문에 그런것 같습니다.
4.Consider providing a keyboard tutorial in your app
키보드 앱은 설치하면 뚝딱 추가되는것이 아닌, 사용자가 직접 추가하는 과정이 필요합니다.(일반-키보드-키보드-키보드추가)
이러한 과정을 꼭 명시하는것이 좋고, 아직 익숙하지 않을 사용자를 위해 app에서 꼭 튜토리얼을 제공하는 것이 좋습니다. 만약 제대로 안하면.. 리뷰에 '작동이 안되네요'가 쌓일지도 몰라요.