하늘땅사람 개발 기록
상위 문서: 하늘땅사람 참고
2022-12-19
아이폰 천지인 자판 프로젝트의 실현 가능성 연구를 통해 제작이 충분히 가능함을 확인. 다음과 같이 기술 개념 증명 완료.
기술의 구현 방향
일단 ViewController
내에 버튼과 로직을 때려박아 개발하는 것은 쉬워보임.
다만 코드를 분산시키고 좋은 품질을 유지하기 위해 SwiftUI를 사용하는 방안을 연구 중.
이런 문서를 볼 때
UIKit ViewController 안에서도 SwiftUI View를 이용하는 것이 가능해보임.
2020년에 소개된 SwiftUI Grid Layout을 활용하면 깔끔한 구현체를 만들 수 있을 것으로 기대.
CloudKit Persistence를 이용하여 사용자 설정이 iCloud를 통해 동기화되도록 구현할 예정. 부가적인 기능 없이 MVP로 천지인 입력이 가능한 키보드로 구현할 생각.
있으면 좋을
- 간단한 맞춤법 검사
( •_•)
⊹⋛⋋( ՞ਊ ՞)⋌⋚⊹)
와 같은 이모티콘. 네이버 스마트 키보드의 기능 중 꽤 좋은 기능이었다.- 네이버 스마트 키보드에 있던 오타 보정. 발표 자료, 발표 영상.
2022-12-20
Grid 대신 VStack과 HStack으로 충분하다고 판단하여 개발함.
버튼을 눌렀을 때 간단한 동작을 하도록 구현.
숫자 버튼을 눌렀을 때 키보드를 변환하도록 만들기 위해 2가지 뷰를 바뀌도록 해야할 듯?
System 색을 맞추는 것에 약간의 시간이 들었다.
예상과 다르게 아이폰의 키보드 컬러는 Color(uiColor: UIColor.system...)
에서의 어떤 Semantic Color와도 일치하지 않았다.
그래서 일단 눈대중으로 다크모드와 라이트모드에 적당히 괜찮은 색깔을 보여주도록 하드코딩해두었다.
이렇게 할 경우 접근성의 면에서 문제가 발생할 수 있다 (예: 사용자가 High Contrast를 켜놓은 경우 등.)
일단 MVP 개발까지를 위해 이 정도로 타협하기로 했다.
잠깐 타이핑의 로직을 생각해보았는데, 적당히 골치 아프겠다. 엣지케이스가 꽤 많다.
2022-12-27
천지인 로직 구현 시작. 키보드를 제작하는 것에는 raywenderlich가 참고하기 좋았다.
NSRange
와 setMarkedText
를 사용하여 마지막 텍스트를 선택할 수 있는 방법에 대해서 연구해보고 있었는데, 아무래도 기대와 조금 다르게 동작하여 사용에 어려움이 있다.
let range = NSRange(location: 1, length: 0)
proxy.setMarkedText(text, selectedRange: range)
ㅇ
근처 배경에 회색 배경이 있음을 확인하자.
그리고 이거는 보니까 중국어처럼 글자 조합 후에 글씨가 입력되는 경우를 위한 것 같다.
타이핑 도중에는 검색이 안 된다.
천지인 로직을 그냥 선처리해놓고 json