unggu0704 / naju-busInfo

나주시 버스정보 어플 개발을 위한 저장소입니다.
https://apps.apple.com/kr/app/나주시-버스/id6459411077
MIT License
0 stars 0 forks source link

버스 시간표 볼수 있는 기능 #22

Closed unggu0704 closed 5 months ago

unggu0704 commented 8 months ago

버스가 언제 출발할지 버스 출발 시간 테이블을 볼 수 있는 기능을 추가

어떻게 구현하지?

  1. 단순히 나주시 버스 링크를 제공
  2. PDF 파일을 이미지 형식으로 어플내에 저장해 이미지 보기로 제공
  3. 전부 테이블 데이터화 해서 사용자에게 보여주기
    • 이 방식은 데이터가 제공되지 않으면 큰 노가다 예상
unggu0704 commented 8 months ago

3 번 방식은 좀 힘들거 같다

unggu0704 commented 5 months ago
unggu0704 commented 5 months ago

아래와 같은 두 문제로 인해 방식 변경

  1. PDF를 내부에 저장하고 view에 출력하는 방식으로 진행하였지만 경로 찾는 문제
  2. busNameInt로 가정하고 그에 맞는 pdf 파일을 찾는 방식 (citybus_버스번호) 으로 진행하였으나 "급행01번", "셔틀02" 같은 busName에 문자열이 섞인 노선이 발견되어 파일명 맵핑이 힘들것이라 판단

-> PDF가 제공되는 URL을 매핑하여 내부에서 저장한 뒤에 그걸 sheet 모달 View로 표시하는 방법으로 변경

unggu0704 commented 5 months ago

why?

단순히 시간표를 보고 그 뒤에 추가적인 view 이동이 없기에 view 스택을 지속적으로 쌓는 것보다는 모달형태 sheet를 사용하여 사용자가 시간표를 확인하고 이전 상태로 더욱 쉽게 돌아갈 수 있는 경험을 제공할 수 있다고 판단함

unggu0704 commented 5 months ago

PDFKit을 활용하여 View에 PDF를 띄우는 코드

struct PDFKitRepresentedView: UIViewRepresentable {
    let document: PDFDocument

    func makeUIView(context: Context) -> PDFView {
        let pdfView = PDFView()
        pdfView.document = document
        return pdfView
    }

    func updateUIView(_ uiView: PDFView, context: Context) {
        uiView.document = document
    }
}