인프런 커뮤니티 질문&답변

(알 수 없음)님의 프로필 이미지
(알 수 없음)

작성한 질문수

Part1: 진짜 왕초보 iOS 배우기(SwiftUI, SwiftData, 2024)

강의 자료를 모아보는 프로그램을 제작해보려고 합니다!

해결된 질문

작성

·

83

·

수정됨

0

안녕하세요! 다름이 아니라 강의 자료를 모아보는 앱을 하나 만드려고 하는 상황입니다

이 앱을 만들기 위해 애구마님 강의도 열심히 들을 예정입니다ㅎㅎ

 

예를 들어 1강부터~ 12강까지 강의가 있고 각각 pdf나 ppt 등의 강의 자료가 있다고 가정했을 때

스위프트UI의 List 기능을 이용해서 리스트로 만들어 자료를 쉽게 찾아볼 수 있도록 만들고 싶습니다

다만 지금 막힌 부분이 일단 List의 각각의 제목을 작성해줘야 하는데 제목을 파일명에서 긁어오고 싶습니다

그리고 막힌 부분이 하나 더 있는데 파일을 불러오는 코드를 작성하고 싶은데 잘 모르겠습니다 구글링을 해보니까 PDFKIT이라는 라이브러리가 있는 것 같은데 제가 자료를 못 찾은 건지 UIKIT으로 작성된 예제 코드들 뿐이어서 파일 불러오기부터 막힌 상황입니다...! 혹시 괜찮으시다면 번거로우시겠지만 도와주실 수 있으실까요??

 

구현하고자 하는 앱의 구조는 대강 아래와 같습니다

  1. 일단 앱을 설치하면 아이폰이나 아이패드 내부에 해당 앱에서 볼 강의 자료 파일들을 담을 폴더가 자동으로 생성

  2. 각각의 강의 자료들을 폴더로 옮김

  3. 폴더에 파일이 들어올 때마다 순서대로 List에 추가(파일 이름에 1강 or 1. 등 순서를 구분할 수 있는 인덱스를 포함할 예정)

  4. 실제로 뷰에서 보이는 List의 각각의 이름들은 파일 이름을 그대로 긁어오고 싶음

 

이 정도입니다..! 아 참고로 아주 기본적인 내용 뿐이지만 Text 뷰나 Button, (V, H, Z)Stack 등 아주 아주 기본적인 내용은 이해하고 있는 상황입니다 ㅎㅎ

 

아직 강의를 초반까지 밖에 듣지 않았지만 굉장히 쉽게 설명해주시려고 노력하는 부분이 저 같은 초심자에게는 굉장히 크게 와닿는 것 같습니다 남은 강의도 열공 해보겠습니다 좋은 하루 보내세요! 감사합니다!

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

스위프트UI를 사용하여 강의 자료를 모아보는 앱을 만드는 프로젝트는 매우 흥미로운 프로젝트로 보입니다. 파일 명을 긁어오는 부분과 PDF 파일을 불러오는 코드 작성에 대해 막혀 계신다고 하셨군요.

스위프트UI에서 List를 사용하여 파일 명을 동적으로 불러와 표시하는 방법과 PDFKit를 활용하는 기본적인 방법을 설명드리겠습니다.

  1. 파일 명 불러오기:

    • 먼저, 특정 디렉토리(예를 들어 앱 내 문서 폴더)에 위치한 파일들의 목록을 가져오는 것부터 시작합니다. FileManager를 사용하여 해당 디렉토리의 파일 목록을 가져올 수 있습니다.
    • 코드 예시:
    let fileManager = FileManager.default
    do {
       let documentsURL = try fileManager.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
       let files = try fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
       // files 배열을 사용하여 List에 표시
    } catch {
       print(error)
    }
    

    이 배열을 List에 바인딩하여 파일명을 표시할 수 있습니다.

  2. PDF 파일 불러오기:

    • PDFKit 라이브러리를 사용하여 PDF 파일을 불러오고 표시할 수 있습니다. 먼저, PDFKit을 프로젝트에 임포트한 후, PDFView를 사용하여 PDF 파일을 렌더링할 수 있습니다.
    • 코드 예시:

    ”`swift
    import PDFKit

let pdfView = PDFView()
if let documentURL = Bundle.main.url(forResource: “sample”, withExtension: “pdf”),
let document = PDFDocument(url: documentURL) {
pdfView.document = document
}
위 방법으로 PDF 파일을 불러와 보여줄 수 있습니다.PDFView는 UIKit 컴포넌트이므로 스위프트UI에서 사용하기 위해서는UIViewRepresentable` 프로토콜을 적용한 래퍼 뷰를 만들어 사용해야 합니다.

이 설명이 프로젝트 진행에 도움이 되길 바랍니다. 강의 수강을 통해 더 많은 지식을 습득하시길 바라며, 프로젝트 성공적으로 완성하시길 응원하겠습니다. 좋은 하루 보내세요!

(알 수 없음)님의 프로필 이미지
(알 수 없음)

작성한 질문수

질문하기