왕논의 연구실

[개발한 앱] 큐알 판독기! 본문

개발한 앱

[개발한 앱] 큐알 판독기!

ywangnon 2022. 3. 16. 16:36

앱스토어 링크

https://apps.apple.com/us/app/큐알-판독기/id1505772234?l=ko&ls=1 

 

‎큐알 판독기!!!

‎QR 코드를 읽고 기록하는 어플입니다. 읽어들인 내용을 복사하고 주소로 검색할 수 있게 합니다. - QR code Scan - QR code 생성 - 기록 관리 - QR code 복사, 주소 연결

apps.apple.com

기획 의도

QR코드를 사용하게 되는 경우가 종종 있었습니다. 내가 원하는 내용을 QR코드로 만들거나 QR코드의 내용을 직접적으로 보고, 그것들을 저장해놓고 싶었습니다.

목표

  • 새롭게 SwiftUI를 사용하여 UI를 만들도록 하였습니다.
  • CoreData를 이용하여 데이터를 CRUD 해보았습니다.
  • SwiftPackageManager를 사용하여 라이브러리를 사용해 보았습니다.
  • CocoaPod등의 외부 도움없이 xcode만을 사용해서 앱을 만들어본다.(외부 라이브러리는 SwiftPackageManager로 관리)

주요 기능

 

  • QR 히스토리
  • QR 인식
  • QR 만들기
    • QR코드 복사
  • QR 데이터와 연관된 사이트 이동
    • 관련 링크 사이트 있으면, 그 사이트로 이동
    • 관련 링크 사이트가 없으면, 구글로 이동

후기

SwiftUI를 사용해보고 싶었습니다.

UI를 만드는데 있어서 애플의 새로운 패러다임을 경험해보고 싶었습니다.

UI를 만들때마다 스토리보드가 좋으냐 코드가 좋으냐 매번 말이 많았습니다. 회사에서도 개발자는 코드로 만들고 싶어했고, 다른 사람들은 시각적으로 볼 수 있는 스토리보드로 개발하기를 바랬습니다. 세미나 같은 곳을 가도 개발자끼리도 빠르게 만들수 있는 스토리보드와 가볍고 깔끔하게 관리하기 편한 코드 사이에 의견이 갈렸습니다.

그래서 이런 문제를 애플은 어떻게 해결했나 궁금했습니다.

그래서 마침 QR인식에 대한 공부를 해야하는 상황에서 카메라를 이용하여 QR인식을 하고 기존에 찍어뒀던 

제가 느낀 SwiftUI는 스토리보드와 코드의 장점만을 합친 완벽한 해결책이었습니다. 기존 스토리보드는 UI파일을 xml로만 볼 수 있었습니다. 게다가 코드로 본다고 쉽게 파악하기가 어려웠습니다. 또한 코드는 UI가 어떻게 만들어질지 빠르게 파악하기가 어려웠습니다. 그런데 SwiftUI는 오브젝트를 올리거나 코드를 작성하면, 코드와 UI가 연동되서 보여줍니다. 게다가 코드도 명시적으로 바뀜으로써 기존 코드로 작성하는 것보다 길이도 짧아졌습니다. 이로인해 코드로 개발하는 개발자와 스토리보드로 개발하는 개발자 모두를 만족시킬 수 있는 해결책이 되었다고 생각됩니다.

 

CoreData를 사용해보았습니다.

외부 라이브러리 사용을 최소화하고 싶었기때문에 애플이 자체적으로 제공하는 프레임워크들을 찾아보았습니다. 그 중 들어만 보았던 코어데이터를 다뤄보고 싶었습니다. 공부한 지금도 정확히 어떤 것이다 라고 정의하긴 쉽지 않습니다. 저는 로컬 데이터베이스로써 사용했는데, 어디서는 데이터베이스가 아니다라고 하기도 하고 좀 더 공부가 필요한 것 같습니다. 그러나 코어데이터가 기본적인 데이터 저장기능이 있고 이를 사용하기 위한 CRUD 만은 제대로 사용해보고 싶었습니다.

코어데이터만도 어려운데 만들 당시 SwiftUI에서 코어데이터를 사용하는 것에 대한 자료는 거의 없다보니 많은 시도를 하였습니다. SwiftUI에서 사용하는 것에 대한 자료가 거의 없었고, 코어데이터를 알고 있는 사람들에게 어떻게 적용할지에 대한 자료만 나오는 등 자료찾기가 어려웠습니다. 그래서 코어데이터에 대한 기본적인 지식은 UIKit을 사용할때 작성되었던 코드로 공부하고, SwiftUI에서 사용하는 방법에 대해서는 사용법만 익혔습니다.

완벽하다 할 수는 없지만 코어데이터에 대한 기본적인 공부를 하였다는 것에 뿌듯함을 느꼈습니다.

 

SwiftPackageManager를 사용하였습니다.

xcode에서 시작해서 xcode로 끝내고 싶었습니다. 가능하면 외부라이브러리까지 사용하지 않고 싶었으나, QR코드 인식은 외부라이브러리를 사용하였습니다. 그래서 SwiftPackageManager를 이용해서 라이브러리를 관리하도록 하였습니다. 애플에서 제공하는 시스템을 이용하여 가볍고 안정적인 느낌을 받을 수 있었습니다.

 

사용자보다도 개발공부를 위한 앱이다보니 디자인은 전혀 신경쓰지 않았습니다.

SwiftUI를 통해 일반적으로 많이 사용하는 테이블뷰 구조 + 외부 라이브러리를 xcode를 통해 관리하는 프로그램을 만드는 것이 가장 큰 목표였던 앱이었습니다.

 

 

 

 

 

 

 

'개발한 앱' 카테고리의 다른 글

[개발한 앱] 필잇!  (0) 2022.03.16
[개발한 앱] 띡똑 카운터  (0) 2022.03.16
[개발한 앱] 점수판!  (0) 2022.03.16