이 프로젝트는 모아키를 오픈 소스로 재구현하는 프로젝트입니다.
원본 Android 버전 저장소는 AiOO/OpenMoa이며, 이 저장소는 그 구현을 iOS 커스텀 키보드로 포팅하는 작업을 위한 저장소입니다.
모아키는 삼성전자가 개발한 터치 디바이스에서의 입력 방식입니다. 자음을 누른 뒤 조합을 원하는 모음이 가리키는 방향(예를 들어 'ㅏ'의 경우 오른쪽)으로 드래그하면 누른 자음과 드래그한 방향의 모음이 조합된 한글이 입력되는 동작이 대표적인 특징입니다. 자세한 동작 영상은 공식 유튜브 영상을 참조하세요.
삼성전자의 모아키는 한때 구글 플레이에서 기기의 종류에 상관 없이 다운로드를 받을 수 있었습니다. 그러나 이 글을 작성하는 시점에는 구글 플레이에서 다운로드가 불가능합니다. 이로 인해 지금은 모아키를 사용하려면 삼성 키보드가 내장된 삼성전자 출시 스마트폰을 사용해야만 합니다. 저는 현재 삼성전자의 스마트폰을 사용하지 않고 있기 때문에 모아키를 제 스마트폰에서 사용할 수 있는 방법이 필요했습니다.
이 저장소는 그 재구현 작업을 iOS 환경으로 옮겨 계속 진행하기 위한 기반을 담고 있습니다. 실제 입력기는 iOS 커스텀 키보드 익스텐션으로 동작하고, 함께 포함된 호스트 앱은 키보드 설치와 활성화 절차를 안내합니다.
삼성전자의 모아키 입력 방식은 터치 디바이스에서 문자 입력 방법 및 장치라는 특허로 등록되어 보호되고 있습니다. 이 저장소를 공개하는 행위와 저장소에 MIT 라이선스를 적용하는 행위는 명시적으로든 암시적으로든 특허의 실시권을 가지지 않은 자의 특허 실시가 가능함을 의미하지 않습니다. 코드를 빌드하여 사용하실 분은 개인의 책임 하에 특허법을 반드시 준수해주시기 바랍니다.
현재 iOS 포트는 한국어 제스처 키보드, 문장부호 키보드, 숫자 키보드,
전화번호 패드, 이모지 키보드를 포함합니다. 다른 키보드로의 전환은 iOS 방식에 맞춰
지구본 키로 처리하며, 하단 !#1 키는 한글 -> 문장부호 -> 숫자 순으로 순환합니다.
iOS 커스텀 키보드 제약 안에서 실사용이 가능하도록 구현하는 것을 목표로 하고 있으며,
의도대로 동작하지 않는다면 구현상의 버그입니다. 사용 중 문제가 발생한다면 이슈를 남겨주세요.
다만 iOS의 커스텀 키보드는 플랫폼 제약이 있습니다. 보안 입력 필드에서는 시스템 키보드가 대신 표시될 수 있고, 텍스트 선택과 일부 편집 동작은 호스트 앱 제어 영역이기 때문에 완전히 동일하게 재현하기 어렵습니다.
설치 후에는 iOS 설정 앱에서 다음 항목을 조정할 수 있습니다.
- 세로 키보드 높이
- 가로 키보드 너비
- 가로 키보드 높이
- 한글 키보드 좌측 보조 키 4개 문자
- 스페이스 왼쪽 하단 보조 키 문자
Xcode를 설치하신 후 이 프로젝트를 직접 빌드하여 사용하실 수 있습니다. 빌드 또는 사용하시기 전에 특허에 대하여 섹션을 반드시 읽어주세요.
공유 한글 조합 엔진 테스트:
swift test시뮬레이터용 호스트 앱 빌드:
xcodebuild -project OpenMoa.xcodeproj \
-target OpenMoaKeyboardHost \
-sdk iphonesimulator \
CODE_SIGNING_ALLOWED=NO build앱을 설치한 뒤에는 iOS에서 설정 > 일반 > 키보드 > 키보드 > 새로운 키보드 추가
경로로 이동해 OpenMoa를 추가하고, 텍스트 입력창에서 지구본 키를 눌러
전환해 사용할 수 있습니다.
키보드별 세부 설정은 iOS에서 설정 > 앱 > OpenMoa로 들어가 조정할 수 있습니다.
기여는 언제나 환영입니다! 이 프로젝트는 모아키 및 쿼티 키보드의 기본적인 동작을 안정적으로 구현하는 것을 목표로 하고 있기 때문에, 이에 대한 기여를 받고 싶습니다. 기본적인 동작이 모두 구현된 이후에는 이모지 입력기나 자동 완성과 같은 구글 플레이 배포본에서 구현되지 않았던 최신 입력기의 기능을 구현하려고 합니다. 모아키의 기본적인 동작에서 크게 벗어난 완전히 새로운 입력 방법을 구현하는 것은 현재로서는 목표가 아님을 이해해주시기 바랍니다.
이 프로젝트는 다음 오픈 소스 프로젝트의 코드를 포함합니다:
- HangulParser (MIT License)