[swift] Swift와 Firebase를 이용한 공유 독서록 앱 개발하기

이번 프로젝트에서는 Swift와 Firebase를 사용하여 독서록을 공유하는 앱을 개발할 것입니다. 이 앱은 사용자들이 책을 읽은 후 독서록을 작성하고 다른 사용자들과 공유할 수 있는 기능을 포함합니다.

준비물

Firebase 프로젝트 설정

  1. Firebase 콘솔에 로그인하여 “새 프로젝트 만들기”를 클릭합니다.
  2. 프로젝트 이름을 입력하고 “프로젝트 만들기”를 클릭합니다.
  3. 프로젝트 대시보드에서 “iOS 앱 추가”를 클릭합니다.
  4. 번들 식별자를 입력하고 “앱 등록”을 클릭합니다.
  5. GoogleService-Info.plist 파일을 다운로드하고 프로젝트에 추가합니다.

프로젝트 설정

  1. Xcode를 열고 새로운 프로젝트를 생성합니다.
  2. 생성된 프로젝트 파일의 루트 디렉토리에 GoogleService-Info.plist 파일을 추가합니다.
  3. 터미널에서 pod init 명령어를 실행하여 Podfile을 생성합니다.
  4. Podfile을 열고 다음 코드를 추가합니다:
platform :ios, '13.0'

target 'YourProjectName' do
  use_frameworks!

  pod 'Firebase/Core'
  pod 'Firebase/Database'
  pod 'Firebase/Auth'
end
  1. 터미널에서 pod install 명령어를 실행하여 Firebase SDK를 설치합니다.

사용자 인증 설정

  1. AppDelegate.swift 파일을 열고 import Firebase을 추가합니다.
  2. didFinishLaunchingWithOptions 함수 내에서 Firebase 앱 설정을 추가합니다:
FirebaseApp.configure()

독서록 모델 생성

  1. 새로운 Swift 파일을 생성하고 Book.swift라고 이름을 지정합니다.
  2. 다음 코드를 추가하여 Book 클래스를 만듭니다:
class Book {
  var id: String
  var title: String
  var author: String
  var summary: String

  init(id: String, title: String, author: String, summary: String) {
    self.id = id
    self.title = title
    self.author = author
    self.summary = summary
  }
}

독서록 작성하기

  1. 책 정보를 입력받는 화면을 만듭니다.
  2. 사용자가 정보를 입력하고 “작성완료” 버튼을 누르면 다음 코드를 실행합니다:
let book = Book(id: UUID().uuidString, title: titleTextField.text, author: authorTextField.text, summary: summaryTextView.text)
  1. Firebase Database에 독서록 정보를 저장합니다:
let ref = Database.database().reference().child("books").child(book.id)
ref.setValue(["title": book.title, "author": book.author, "summary": book.summary])

독서록 가져오기

  1. 독서록을 가져올 ViewController를 만듭니다.
  2. Firebase Database에서 독서록 정보를 가져와 TableView에 표시합니다:
let ref = Database.database().reference().child("books")

ref.observe(.value) { snapshot in
  self.books = []

  for child in snapshot.children {
    if let snapshot = child as? DataSnapshot, let bookData = snapshot.value as? [String: Any] {
      let id = snapshot.key
      let title = bookData["title"] as? String ?? ""
      let author = bookData["author"] as? String ?? ""
      let summary = bookData["summary"] as? String ?? ""

      let book = Book(id: id, title: title, author: author, summary: summary)
      self.books.append(book)
    }
  }

  self.tableView.reloadData()
}

결론

이제 Swift와 Firebase를 이용하여 독서록 앱을 개발하는 방법을 알게 되었습니다. 이 프로젝트를 확장하여 추가 기능을 구현하거나 사용자 경험을 개선할 수 있습니다. Firebase의 다양한 기능을 활용하여 앱을 개발하는 재미를 느껴보세요!

참고 자료