Skip to content

v1.0.1 릴리즈

Choose a tag to compare

@gaon12 gaon12 released this 07 Apr 12:30
· 8 commits to main since this release

Typoon 1.0.1 릴리즈 노트

직접 릴리즈 페이지에서 apk 파일을 다운로드 받거나, 구글 플레이 스토어에서 다운로드/업데이트하세요!

이번 업데이트는 반드시 업데이트 하시길 강력 권장합니다. 업데이트로 인해 기존 기록이 삭제/초기화 될 수 있습니다. 이번 업데이트 이후에는 그대로 유지될 것입니다.

1.0.0 이후 반영된 변경사항 (커밋/이슈 기준 전체)

  • [커밋 0ff5508] 앱 아이콘을 교체해 브랜드 식별성을 개선했습니다. 이전에는 런처에서 구분감이 약했는데, 아이콘 변경으로 앱 인지가 쉬워졌습니다.
  • [#8 / f093fcd] 문제: 릴리즈 산출물이 Git에 섞여 저장소가 오염될 수 있었습니다. 수정: .gitignore를 정리하고 추적되던 산출물을 제외 처리했습니다. 결과: 릴리즈 파일이 버전관리 품질을 해치지 않게 됐습니다.
  • [#7 / e0f0e8f] 문제: 앱 시작 시 로케일 초기화 과정에서 메인 스레드 블로킹 가능성이 있었습니다. 수정: 시작 경로에서 runBlocking 의존을 제거하고 비동기 흐름으로 전환했습니다. 결과: 콜드 스타트 안정성과 응답성이 좋아졌습니다.
  • [#6 / 92e6fb0] 문제: 설정 화면 CSV 내보내기 결과 스낵바가 실제 UI에서 보이지 않는 경로가 있었습니다. 수정: 스낵바 호스트를 Scaffold에 올바르게 연결했습니다. 결과: 성공/실패 피드백이 사용자에게 정상 노출됩니다.
  • [#5 / 1982a03] 문제: 업데이트 시 Room fallback 경로로 인해 기존 데이터가 삭제될 위험이 있었습니다(치명적). 수정: 파괴적 fallback을 제거하고 명시적 마이그레이션 경로로 전환했습니다. 결과: 업데이트 시 데이터 보존 안정성이 크게 올라갔습니다.
  • [#4 / 74c3b84] 문제: 예외 단어 중복 저장 및 키 충돌로 크래시 가능성이 있었습니다. 수정: 중복 방지 및 충돌 안전 처리를 추가했습니다. 결과: 예외 단어 관리가 더 안정적으로 동작합니다.
  • [#3 / fd516a1] 문제: 온보딩에서 콘텐츠가 잘리는 화면이 있었습니다. 수정: 온보딩 콘텐츠를 스크롤 가능하게 변경했습니다. 결과: 작은 화면/긴 텍스트에서도 온보딩이 잘리지 않습니다.
  • [#2 / f52440e] 문제: Edge-to-edge 관련 deprecated API를 사용하고 있었습니다. 수정: 최신 권장 경로로 교체했습니다. 결과: 최신 Android 동작과의 호환성이 개선됐습니다.
  • [#1 / 6e83d0d] 문제: 메인 화면군에서 safe drawing 처리 일관성이 부족해 기기별 여백/겹침 문제가 생길 수 있었습니다. 수정: 주요 화면 인셋 처리 로직을 정리했습니다. 결과: 다양한 화면/시스템바 환경에서 레이아웃 안정성이 좋아졌습니다.
  • [커밋 0f851e3] 코드 품질 파이프라인을 강화했습니다. Checkstyle/PMD/SpotBugs/ErrorProne 및 qualityGate를 추가해 정적 분석 기준을 자동화했습니다.
  • [#9 / 5c0941f] 문제: 최신 버전 확인과 릴리즈 노트 표시 기능이 제한적이었습니다. 수정: GitHub 릴리즈 조회, 언어별 노트 파싱(<!-- lang:ko -->, <!-- lang:en -->), 업데이트 권장 다이얼로그를 구현했습니다. 결과: 앱 안에서 최신 변경사항과 업데이트 안내를 더 명확히 확인할 수 있습니다.
  • [#10 / 787db64] 문제: ConversionEngine 책임이 뭉쳐 유지보수 난도가 높았습니다. 수정: 엔진 내부 책임을 분리하고 불필요 suppress 의존을 줄였습니다. 결과: 코드 가독성과 변경 안정성이 향상됐습니다.
  • [#11 / 787db64] 문제: 리스트 indexOf 중심 조회로 변환 경로 성능 저하 여지가 있었습니다. 수정: 핵심 조회를 O(1) 룩업 중심으로 바꿨습니다. 결과: 변환 처리 성능이 개선됐습니다.
  • [#12 / 787db64] 문제: 하드코딩된 단어 데이터가 코드와 강하게 결합되어 있었습니다. 수정: 데이터/상수를 외부 구조로 분리했습니다. 결과: 데이터 유지보수와 확장이 쉬워졌습니다.
  • [#13 / 787db64] 문제: 복합 자모(겹받침/복합 모음) 엣지 케이스 정확도가 부족했습니다. 수정: 한글 조합/복원 로직을 보강했습니다. 결과: 난이도 높은 입력에서 복원 정확도가 개선됐습니다.
  • [#14 / 787db64] 문제: apple안녕처럼 붙은 혼합 토큰 처리 품질이 기대에 못 미쳤습니다. 수정: 혼합 문자열 분해/스코어링 경로를 개선했습니다. 결과: 붙어 있는 영한 텍스트 변환 품질이 올라갔습니다.
  • [#15 / 787db64] 문제: Dynamic Color 옵션이 있어도 실제 적용이 약했습니다. 수정: Android 12+에서 dynamicDarkColorScheme/dynamicLightColorScheme를 실적용하고 하위 버전은 fallback 팔레트를 사용하도록 정리했습니다. 결과: 시스템 테마와 색상 일관성이 개선됐습니다.
  • [#20 / 787db64] 문제: 저신뢰 변환 결과에 대한 사용자 가이드가 약했습니다. 수정: confidence 기반 경고/가이드를 결과 UI에 반영했습니다. 결과: 사용자가 결과를 더 안전하게 검토할 수 있습니다.
  • [#22 / 787db64] 문제: Quick Settings Tile 접근성 안내가 부족했습니다. 수정: label/description/상태 안내 문구를 보강했습니다. 결과: 접근성 서비스 사용 시 문맥 전달이 좋아졌습니다.
  • [#23 / 787db64 + 5ed1d7a] 문제: 기록 저장 원자성, direction 파싱 안전성, 외부 인텐트 처리 안정성, 시스템바/레이아웃 경계 이슈가 복합적으로 존재했습니다. 수정: 저장/파싱/오프로딩 경로를 하드닝하고, 스플래시·서브페이지·상하단 인셋·배너 표시를 재정렬했습니다. 결과: 전체 앱 안정성과 화면 일관성이 크게 향상됐습니다.
  • [#9/#23 / 5ed1d7a] 문제: 릴리즈 노트가 길면 읽기 어려웠고, 일부 화면에서 하단 시스템바 겹침/광고 다크모드 미반영이 있었습니다. 수정: 릴리즈 노트 다이얼로그 스크롤 보강, 서브 페이지 safe inset 처리, 광고 배너 다크 리소스 선택 로직 개선 및 투명 여백 트리밍을 적용했습니다. 결과: 읽기성/시각 품질/레이아웃 완성도가 좋아졌습니다.
  • [#17 / d8ca72a] 문제: 클립보드 오타 의심 텍스트를 선제적으로 제안하는 UX가 부족했습니다. 수정: 홈 화면 추천 카드(적용/닫기), 오탐 완화 휴리스틱, 설정 ON/OFF를 추가했습니다. 결과: 홈 플로우를 방해하지 않으면서 빠른 복구 제안을 받을 수 있습니다.
  • [#19 / d8ca72a] 문제: 검색에서 한글/초성/특수문자 입력 안정성이 부족했습니다. 수정: 안전한 FTS prefix 쿼리, LIKE fallback(와일드카드 이스케이프), 초성 전용 매칭 경로, 결과 병합/중복제거를 구현했습니다. 결과: 검색 정확도와 예외 입력 안정성이 향상됐습니다.
  • [#18 / d8ca72a] 문제: 테스트가 엔진 중심으로 편중되어 데이터 계층 회귀 탐지가 약했습니다. 수정: HistoryRepositoryImpl, HistorySearchPolicy, TextPayloadSanitizer, CsvExporter, AppPreferences 테스트를 추가하고 GitHub Actions unit-test 워크플로우를 구성했습니다. 결과: 회귀 탐지 범위와 CI 신뢰성이 강화됐습니다.
  • [빌드/품질 / d8ca72a+5ed1d7a] 빌드 스크립트 경고(redundant qualifier)를 정리하고 테스트 의존성을 확장해 빌드 가독성과 유지보수를 개선했습니다.

Close 되었지만 1.0.1 기능으로는 포함하지 않은 항목

  • [#16] 접근성 서비스 기반 전역 텍스트 즉시 변환은 프라이버시 민감도, 정책 심사 리스크, 오탐 운영비용을 고려해 이번 버전에서는 비채택으로 close 처리했습니다.
  • [#21] 이슈는 close 상태이나, 1.0.1 기준으로 별도 신규 migration instrumented 테스트 파일 추가는 포함되지 않았습니다(대신 unit test/CI 강화는 #18에 반영).

Typoon 1.0.1 Release Notes

You can download the apk file directly from the release page, or download/update it from the Google Play Store!

This update is strongly recommended and should be installed without fail. Due to this update, existing records may be deleted/reset. After this update, they will be preserved as is.

Complete Changes Since 1.0.0 (Commit/Issue Based)

  • [commit 0ff5508] Updated the app icon for better visual identity and launcher recognition.
  • [#8 / f093fcd] Problem: release artifacts could pollute source control. Fix: tightened .gitignore and untracked build outputs. Result: cleaner repository hygiene.
  • [#7 / e0f0e8f] Problem: app startup had potential main-thread blocking during locale initialization. Fix: removed startup runBlocking dependency and switched to async flow. Result: smoother cold start and better responsiveness.
  • [#6 / 92e6fb0] Problem: CSV export snackbar feedback in Settings could fail to appear. Fix: correctly wired snackbar host into Scaffold. Result: success/failure feedback now consistently visible.
  • [#5 / 1982a03] Problem: update path risked data loss due to destructive Room fallback (critical). Fix: replaced destructive fallback with explicit migrations. Result: much safer data preservation on updates.
  • [#4 / 74c3b84] Problem: duplicate exception-word inserts and key collisions could cause crashes. Fix: added duplicate prevention and collision-safe handling. Result: more stable dictionary/exception management.
  • [#3 / fd516a1] Problem: onboarding content could be clipped on some screens. Fix: made onboarding content scrollable. Result: no clipping on small screens or long text.
  • [#2 / f52440e] Problem: deprecated edge-to-edge API path was in use. Fix: migrated to current recommended API path. Result: improved platform compatibility.
  • [#1 / 6e83d0d] Problem: inconsistent safe-drawing behavior across major screens could cause overlap/spacing issues. Fix: normalized inset handling across main UI surfaces. Result: more predictable layout across devices.
  • [commit 0f851e3] Added stronger static analysis gates: Checkstyle/PMD/SpotBugs/ErrorProne and a unified qualityGate.
  • [#9 / 5c0941f] Problem: latest-version and release-note UX was limited. Fix: added GitHub release fetch, localized note parsing (<!-- lang:ko -->, <!-- lang:en -->), and update recommendation dialog. Result: clearer in-app update visibility.
  • [#10 / 787db64] Problem: ConversionEngine responsibilities were tightly coupled. Fix: refactored into clearer responsibilities and reduced suppression-heavy structure. Result: improved maintainability.
  • [#11 / 787db64] Problem: list indexOf-style lookups could degrade performance. Fix: moved key lookup paths to O(1)-oriented structures. Result: faster conversion paths.
  • [#12 / 787db64] Problem: hardcoded conversion data was tightly coupled to logic. Fix: separated data/constants from core logic. Result: easier updates and cleaner architecture.
  • [#13 / 787db64] Problem: edge cases with complex Hangul composition (double finals/compound vowels) reduced accuracy. Fix: reinforced Hangul composition/recovery logic. Result: better recovery quality on difficult inputs.
  • [#14 / 787db64] Problem: mixed-token strings like apple안녕 were not handled accurately enough. Fix: improved token split/scoring pipeline. Result: better mixed Korean/English conversion quality.
  • [#15 / 787db64] Problem: Dynamic Color setting existed but wasn’t fully applied. Fix: applied dynamicDarkColorScheme/dynamicLightColorScheme on Android 12+ with fallback palettes below. Result: better theme consistency with system colors.
  • [#20 / 787db64] Problem: low-confidence output lacked actionable UI guidance. Fix: added confidence-based warnings and user guidance in Result UI. Result: safer interpretation of uncertain outputs.
  • [#22 / 787db64] Problem: Quick Settings Tile accessibility context was limited. Fix: improved label/description/state messaging. Result: better accessibility clarity.
  • [#23 / 787db64 + 5ed1d7a] Problem: combined stability concerns around atomic history writes, direction parsing safety, external intent processing, and edge-to-edge behavior. Fix: hardened write/parse/off-main-thread paths and reworked splash/sub-page/system-bar/bottom-area layout handling. Result: stronger runtime stability and visual consistency.
  • [#9/#23 / 5ed1d7a] Problem: long release notes were hard to read; some pages had bottom-system-bar overlap; dark-mode ad banner selection had inconsistencies. Fix: improved release-note dialog scrolling, applied safe bottom inset on non-bottom-nav pages, and fixed dark-resource ad banner selection with transparent-edge trimming. Result: better readability and polished UI behavior.
  • [#17 / d8ca72a] Problem: no proactive typo suggestion for suspicious clipboard text. Fix: added a non-intrusive home suggestion card (Apply/Dismiss), heuristic filtering, and Settings toggle. Result: faster recovery without disrupting the home flow.
  • [#19 / d8ca72a] Problem: history search stability/quality for Hangul/choseong/special chars needed improvement. Fix: added safe FTS prefix builder, LIKE fallback with escaping, choseong-only matching path, and merged deduplicated result strategy. Result: better search quality and safer handling of edge inputs.
  • [#18 / d8ca72a] Problem: tests were too concentrated on engine logic, leaving data-layer regressions less protected. Fix: added tests for HistoryRepositoryImpl, HistorySearchPolicy, TextPayloadSanitizer, CsvExporter, and AppPreferences, plus GitHub Actions unit-test workflow. Result: stronger regression detection and CI reliability.
  • [build/quality / d8ca72a+5ed1d7a] Cleaned Gradle warnings (redundant qualifier) and expanded test dependencies for better build maintainability.

Closed But Not Shipped as 1.0.1 Features

  • [#16] Accessibility-service-based global instant conversion was closed as out-of-scope for this release due to privacy sensitivity, policy review risk, and false-trigger operational cost.
  • [#21] Issue is closed in tracking, but 1.0.1 does not include a newly added migration instrumented test file (unit-test and CI expansion is included under #18).