Android/iOS 모바일 애플리케이션의 최대 문자 수 및 문자 수에 대한 설계

이 글은 모바일 응용 프로그램에 텍스트를 입력할 때 다음과 같은 내용을 설명한다.
  • UTF-8의 문자 수를 정확하게 계산하기 어렵다(다른 편)
  • 입력할 수 있는 문자의 상한선을 어떻게 정의해야 하는가
  • 입력한 문자 수를 어떻게 표시해야 하는가
  • 전제 조건
  • 어플리케이션에 사용되는 웹 API의 문자 코드는 UTF-8
  • 규격으로서의 문자 계수의 난이도
    유니코드 문자열의 문자 수는 특수합니다.사용자에게 외관상 문자 계수와 일치하는 서기소 집합 계수는 이상적이지만 API의 규격과 UI 디스플레이를 서기소 집합 계수로 통일하는 것도 비현실적이다.
    계수 방식
    설명
    서기소 집계수
    모양새의 문자 수
    코드 포인트 수(UTF-8자)
    유니코드 코드point를 문자로 계산
    UTF-8 바이트 수
    UTF-8 바이트 계산
    유니코드 문자 수에 대한 자세한 설명은 아래 기사를 참조하십시오.
    최대 문자 수 입력
    최대 입력 문자 수는 웹 API 및 모바일 응용 프로그램 조합에 따라 결정됩니다.
    코드 포인트 수(UTF-8자)
    문자 수의 상한선을 코드 포인트 수로 입력하는 것을 권장합니다.
  • 모바일 애플리케이션, 서버 측 및 데이터베이스에서 UTF-8자의 숫자를 쉽게 계산할 수 있음
  • UTF-8은 최대 4bytes이기 때문에 최대 데이터 크기(bytes) = 최대 문자수 x4(bytes)
  • 계산 가능
    서기소 집계수
    문자 수 상한선을 서기소 집합 계수로 입력하는 것을 권장하지 않습니다.
  • Kotlin, Swift 등 언어에 따라 서기 셀 계수의 실현에 따라 클라이언트와 서버가 규격을 일치시킬 수 없음
  • 서기 셀룰로오스 불확정 데이터 크기의 상한선
  • UTF-8 바이트 수
    UTF-8 바이트까지 문자 수를 입력하는 것은 바람직하지 않습니다.
  • UTF-8은 1bytes~4bytes 중 임의의 것이기 때문에 상한 바이트 수를 초과할 때 마지막 문자를 표현하지 못할 때가 있다
  • 상한 문자 수가 모호하고 처리하기 어렵다
  • 애플리케이션 UI의 문자 수 표시
    웹 API 규격에 따라 코드 포인트 수를 사용하는 것을 전제로 애플리케이션 UI의 문자 수 표시를 확인합니다.
    예: Twitter 응용 프로그램
    예를 들어, 트위터 웹의 두 텍스트 입력 막대를 확인합니다.
    트위터 투고 화면
  • Twitter 버튼 옆에 문자 수 대신 표시기
  • 트위터의 문자 계수는 유니코드에 의존하지 않는 트위터만의 규칙
  • 의 나머지 입력 가능 문자가 10 이하인 경우 입력 가능 문자
  • 가 표시됩니다.
  • 입력할 수 있는 문자 수를 초과하면 초과 문자 수

  • 소개 입력 화면
  • {入力文字数} / {最大文字数} 항상
  • 트위터의 프로필 입력란의 문자 계수는 유니코드 코드 포인트 계수

  • 입력 막대 유형
    이러한 예에 따라 텍스트 입력란은 두 가지로 나누어 고려할 수 있다.
    타입
    설명
    메시지 입력 표시줄
    트위터의 트위터와 채팅 애플리케이션의 채팅 메시지 등 문자 수를 의식하지 못하게 하는 입력란
    창 입력 표시줄
    이력서 입력란과 신청서 등 입력 문자수의 상한선을 의식하면서 작성한 입력란
    메시지 입력 표시줄
    다음 내용은 정보 입력 표시줄에 속합니다.
  • 트위터 입력 표시줄
  • LINE 메시지 입력 표시줄
  • Discord 메시지 입력 표시줄
  • 슬랙의 메시지 입력 표시줄
  • 트위터에만 140자 제한이 있고, 이를 제외한 채팅 앱에는 문자 수 상한과 문자 수가 표시되지 않는다.사용자가 최대 문자 수의 UI를 인식하지 못했습니다.
    정보 입력 표시줄은 다음과 같은 UI로 설계할 수 있습니다.
  • 메시지 입력 표시줄의 문자수 상한선은 비교적 크게 정의되어 있으며 평소에 사용할 때 사용자가 문자수 상한선을 의식하지 못하게 한다
  • LINE의 최대 입력 문자 수는 1만 자입니다.
  • 입력한 문자를 초과하면 UI에 초과 문자
  • 가 표시됩니다.
    유니코드 코드 코드 포인트를 계수로 사용하여 입력할 수 있는 문자 수를 초과하는 문자를 표시하면 해당 계수가 서기소 집계 계수와 일치하지 않아 사용자가 불협화음을 느낄 수 있습니다.
    그러나 입력할 수 있는 문자를 크게 정의하면 입력할 수 있는 문자 수를 초과하는 경우는 드물다.이용자들이 느끼는 불협화감은 최소화돼 수용 가능한 범위라고 본다.
    창 입력 표시줄
    프로필과 신청서 등에서도 사용자가 입력한 문자 수의 상한선에 주의해야 한다.여기에는 문자 계수를 자주 표시해야 한다.
  • 형식 입력 표시줄의 문자 수 상한은 이 항목에 필요한 문자 수를 상한으로 정의합니다
  • 항상 입력 및 최대 입력 횟수
  • 가 표시됩니다.
    폼 입력 표시줄에 입력 문자 수를 자주 표시하면 이해하기 쉽다.그러나 유니코드의 조합 문자열과 그림 문자 등을 입력하면 서기 색인 계수와 문자 계수가 어긋나 사용자가 불협화음을 느낄 수 있다.
    이 문제에 대한 대응으로 다음과 같은 내용을 고려할 수 있다.
    만약 폼 입력 표시줄에 그림 문자를 자주 사용하지 않는다면 허용합니다
    문자 수가 잘못된 것은 유니코드 조합 문자열입니다. 이체자 선택기 문자와 그림 문자를 입력할 때 발생하는 문제입니다.
    만약 대상의 형식이 이체자 선택기 문자와 그림 문자를 빈번하게 입력하지 않는다면 너무 신경 쓸 필요가 없다.사용자가 위화감을 느끼는 빈도가 비교적 낮다고 여겨 문자 계수와 서기 셀 계수가 일치하지 않도록 허용한다.
    만약 어쨌든 사용자에게 위화감을 느끼게 하고 싶지 않다면, 서기소 집합계수를 토론하자
    양식 입력란의 문자 수에 위화감을 느끼지 않으려면 UI의 문자 수에 서기소 집계 계수만 적용하는 것을 논의하겠습니다.
    대응은 다음과 같다.
  • 웹 API는 UTF-8 문자 계수에 따라 서기 셀 계수의 입력 가능한 문자 수보다 큰 문자 수를 상한으로 정의한다
  • 응용 UI에서만 서기 셀 수 상한선을 설정하고 서기 셀 수 기반의 입력 문자 수와 입력 가능한 문자 수를 표시합니다
  • 입력할 수 있는 문자 수를 초과한 입력을 입력 오류로 간주
  • 입력 가능한 문자 수를 초과하지 않더라도 웹 API 측면의 UTF-8 문자 수를 초과하면 입력 오류로 처리
  • 이 경우 사용자에게 오류의 상세한 상황을 설명하기 어렵다.이 오류가 발생하지 않도록 웹 API의 UTF-8 문자 수를 최대한 크게 정의해야 합니다
  • .
    참조: 트위터 문자 수
    아래의 기사는 트위터의 문자 계수를 상세하게 설명해 이해하기 쉽다.
    그러나 트위터의 트윗은 유닛과 데이터 크기를 고려하지 않고 트위터만의 규칙으로 문자를 계산했다.웹 API와 애플리케이션의 규격이 결정됐다기보다는 트위터의 문자를 어떻게 인식하느냐가 결정됐다.참고만 해주세요.

    좋은 웹페이지 즐겨찾기