inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

해결된 질문

179

(알 수 없음)

작성한 질문수 23

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 등 아주 아주 기본적인 내용은 이해하고 있는 상황입니다 ㅎㅎ

 

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

ios swift swiftui swift5.5

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 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` 프로토콜을 적용한 래퍼 뷰를 만들어 사용해야 합니다.

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

확인 버튼 만들 때 폰트 색상 화이트 주는 위치 문의드려요.

1

64

2

Button(action: label:)이 강의와 달라요!

1

60

2

HStack과 VStack에서 alignment와 spacing 방향이 이해가 잘 안갑니다.

1

68

2

modifiers 창이 안보여요.

1

97

2

showAlert 변수 mvi 패턴에서의 사용법

1

53

2

swift vs swiftUI

1

64

1

끝말잇기 로직 구현 중 ios 16 (iphone 16) 시뮬레이터 영어 입력 불가

1

81

1

@Binding된 객체는 자동으로 저장이 되나요?

1

96

2

섹션5. Class로 Todo 데이터 관리하기 부분에서 질문 있습니다.

1

82

2

JSON_Decodable.playground에서 print문이 안찍히는 문제

0

120

2

List를 넣으니 위치가 제대로 조정이 되던데 그럼 Spacer는 따로 넣을 필요가 없는걸까요?

1

104

1

콘솔창에 값이 안찍히고 있습니다.

1

141

2

todo 앱에서 미리 적어놨던 요소들은 왜 안나오나요?

1

131

2

Swift 6 업데이트 이후 Todo 예제 실행 오류

1

186

2

ToDo 앱 @Observable 기능(?) 질문입니다

0

209

2

Todo 앱 @Observable 질문입니다

2

191

2

VStack, HStack으로 뷰 구성하기 강의 padding 질문입니다

1

222

1

@State 특성(?) 질문입니다

1

161

2

6-7) 이미지 사이즈 지정 위치 질문드립니다.

1

169

1

NavigationLink 질문

1

149

1

서적 추천 부탁드립니다!

2

191

1

질문합니다. 섹션 4 - 10 [투두 삭제기능 구현하기(onDelete)]

1

217

2

섹션4-4 'NavigationStack' 오류가 납니다

1

228

1

강의를 들으면서 앱을 만들어보고 있습니다

1

261

3