sookim-1

번호 : 023, 작성일자: 2024-07-09

2024.07.02 ~ 2024.07.08

🪪 OCR 검토


실서비스에서 카드등록을 하는 경우 직접 입력을 할 수 있지만, 사용자의 편의성을 위해 카드 스캔 기능을 지원하기도 한다.

해당 스캔 기능의 원리는 이미지에서 텍스트를 추출하여 가져오는 것이다.

Apple에서는 자체 프레임워크인 Vision, VisionKit 프레임워크를 제공하는데 해당 프레임워크들을 사용하여 이미지에서 텍스트를 추출할 수 있다.

사용해보았는데, 현대카드처럼 세로방식의 카드에서 인식을 하지 못하고, 인식률이 높지도 않아서 다른 OCR라이브러리를 검토 중 NHN에서 CreditCardOCR을 제공해서 시도해보았는데 인식률이 좋은 것 같다.

해당 라이브러리를 사용 중 카드를 인식하는 ViewController의 Property Naming오타가 있어서 🔗PR을 올렸다.

🚀 Skip


모바일앱시장은 대표적으로 안드로이드와 iOS 두가지 OS가 인기가 있다.

따라서, 한 가지만 지원하는 것은 다른 OS의 사용자들을 포기해야 하는데 크로스플랫폼개발을 하게 되면 두가지 OS를 지원하는 것이 편리하다.

Flutter, React Native 등등 여러가지 크로스플랫폼개발이 있지만, 최근에 KMP라고 코틀린으로 개발할 수 있는 기술이 생겼다. 이와 비슷한 기술로 🔗 Skip은 Swift로 개발을 할 수 있는 기술이여서 찾아보았다.

아직 1.0이 발표되지 않았고 개발 진행 중이여서 무료로 지원해서 써보았다.

구현원리는 Swift코드를 빌드하면 Kotlin코드로 변환해주고 SwiftUI는 Compose로 변환해준 후 컴파일하기 때문에 진정한 Native로 변환해주는 원리다.

Swift언어와 SwiftUI를 사용해야 하고, 기존 프로젝트를 migrate하는 방법은 권장하지 않고 새로운 Skip프로젝트를 생성하여 개발하는 방법을 권장하고 있었다.

Firebase나 Third-party Library를 사용할 때 굉장히 불편하고, 타입추론 부분에서 많은 에러가 발생했다. 아직은 실서비스에서는 사용하기 어렵고 간단한 앱에서만 가능할 것 같다.

사용방법은 굉장히 간단했다.

  1. Skip 설치 - $brew install skiptools/skip/skip
  2. Skip 실행가능여부 확인 - skip checkup
  3. Skip 프로젝트 생성 - skip init --appid=bundle.id project-name AppName

생성된 프로젝트의 ContentView부터 작업을 진행하면 된다.

🌈 Design System


디자인시스템은 디자이너와 소프트웨어 엔지니어가 UI구현 작업속도를 높이기 위해 재사용 가능한 구성요소, 토큰 및 기타 디자인 표준의 모음인데 기존에 커스텀뷰를 사용하는 것을 좀 더 통일화시키기 위해 DS개발을 진행했다.

진행하기 전에 어떤 식으로 구현을 해야 재사용성이 높을지에 대해서 참고하기 위해 다른 DS를 찾아보았다.

가장 참고하기 좋았던 DS들은 Skyscanner의 DS와 숭실대 동아리 DS였다. 해당 오픈소스들은 샘플도 제공하고 숭실대 동아리 DS는 피그마도 제공했다.

🙋🏻‍♂️ 기타 사항


  1. viewDidAppear에서 애니메이션처리를 하였는데 애니메이션 시작이 약간 지역되어 화면이 버벅였다. viewDidAppear는 뷰가 화면에 완전히 표시된 후 호출되기 때문에 viewWillAppear에서 애니메이션처리를 하고 해결되었다.
  2. Github Blog를 올리는 workflow를 일부 수정하였다. 문서형식을 action을 시작할 때 더 받은 값을 받아서 자동화하도록 추가했다.
  3. 뷰가 변경될 때마다 유용한 프로퍼티래퍼를 찾았는데 🔗UIView.Invalidating이다.
태그: