본문 바로가기

프로젝트

(86)
03. Firebase 초기화 및 Swift에서 사용하기 Firebase 초기화 하기 백엔드인 Firebase가 메시지를 저장할 수 있도록 DB를 초기화해 준다. 따로 서비스를 염두해 둔 앱이 아니기 때문에 간편하게 테스트 모드에서 시작한다. 사용하는 Region은 'asia-northeast3'로 한국에 위치해 있다. Region은 서비스의 응답 속도에 영향을 끼치는 경우가 있기 때문에 가까운 곳을 고르는 것이 좋다. Region은 Firestore를 초기화 한 이후 변경할 수 없으므로 잘 고르도록 하자. Cloud Firestore 위치 | Firebase 2022년 10월 18일에 오프라인과 온라인으로 진행될 Firebase Summit에 참여하세요. Firebase로 앱을 빠르게 개발하고 안심하고 앱을 출시하며 손쉽게 확장하는 방법을 알아보세요. 지금 ..
02. Firebase 연결하기 Firebase 프로젝트 생성 Firebase에 회원가입을 하고, 'Get started'를 선택한다. 프로젝트를 생성하고, 이름을 지정한 뒤 지금은 필요 없는 Google Analystic은 비활성화한다. 해당 기능은 Google의 분석 툴로, 실제 서비스라면 필요할지 모르겠지만 지금은 상관없다. 앱에 Firebase 추가 생성된 프로젝트의 Console로 이동해 표시된 'iOS' 버튼을 선택한다. 앱 등록에서는 Apple 번들 ID를 반드시 입력해 줘야 한다. Xcode 프로젝트의 Bundle Identifier를 입력해 주면 된다. 이외는 선택사항으로 입력하지 않아도 무방하다. 그다음 GoogleService-Info.plist 파일을 다운로드하여 안내대로 프로젝트 파일 안에 던져 넣고 다음 단계로..
01. 인터페이스 디자인 더미 데이터 import Foundation struct Message: Identifiable, Codable { var id: String var text: String var received: Bool var timestamp: Date } 실제로 Firebase에 연결되지 않은 상태이기 때문에, 화면에 출력할 더미 데이터들이 필요하다. 더미데이터들은 Message 구조체로 이뤄져 있고, 해당 구조체는 열거와 형식 변환이 자유롭도록 Identifiable 프로토콜과 Codable 프로토콜을 채용한다. TitleRow TitleBar는 HStack을 사용해 3개의 덩어리로 구성돼 있다. HStack의 spacing 파라미터에 20을 전달해 Embed 되는 View들의 간격을 20pt로 지정했다. As..
00. 시작하며 백엔드 물론 SQL이나 Oracle을 사용해 직접 구현하는 능력자들도 많다는 걸 알고 있다. 문제는 내가 그럴 재량이 없다는 것. 이름을 들어본 서비스들과 써 본 경험이 있는 서비스들이 존재한다. 간단하게 소개하고 왜 선택했는지 이유를 적어 둔다. AWS 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services 개발자, 데이터 사이언티스트, 솔루션스 아키텍트 또는 AWS에서 구축하는 방법을 배우는 데 관심이 있는 모든 사용자용 무료 온라인 교육 AWS 전문가가 구축한 500개 이상의 무료 디지털 교육 과정 aws.amazon.com 가장 보편적인 백엔드 서비스로 규모도 가장 크고, 자료도 가장 많다. 어쩌면 가장 도움이 되는 경험일 수도 있겠지만, 여기에 삽질을 하기엔 개인적인 우..
#03. 타이머 구현과 문제 파악 보호되어 있는 글입니다.
#02. Timer 구현, 이전의 문제 해결 보호되어 있는 글입니다.
#01 Design 보호되어 있는 글입니다.
025 ~ 027. Dark mode, iPad support and Mac catalyst (다크모드, 아이패드 지원 그리고 맥 카탈리스트) Dark mode 좌측 하단의 Environment Overrides의 Appearance를 통해 시뮬레이터의 다크모드와 라이트모드를 전환할 수 있다. 사진에서와 같이 현재는 다크모드로 전환해도 인터페이스상의 큰 문제는 없다. 이는 앱을 제작 할 때 대부분 기본 컬러들을 사용했기 때문인데, 이 경우 darkmode에 자동으로 대응한다. 단, 셀에서 날짜를 표시하는 레이블들이 기본 색상이 아닌 Custom Color를 사용했는데, 기존에 설정했던 LightGray가 아닌 DarkGrey로 설정하는 경우 다크모드에서 시인성이 매우 안 좋은 것을 확인 할 수 있다. 이렇게 CutomColor를 사용 할 때는 다크모드에 자동으로 대응하지 못하기 때문에 두 가지의 경우를 모두 생각해 적용 할 필요가 있다. 물론,..
022 ~ 024. Memo delete, share and Keyboard Notification (메모 삭제, 공유 그리고 Keyboard Notification) Memo delete (메모 삭제) storyboard 뷰어의 툴바에 버튼을 추가한다. Bar Button은 위와 같이 설정하면, 모양은 쓰레기통으로, 색은 붉은 색으로 바뀐다. Flexible Space Bar Button Item은 위와 같이 버튼과 버튼 사이의 공백을 유동적으로 바꿔준다. 이후 새로 추가한 버튼을 뷰어의 컨트롤러 파일과 Action으로 연결한다. 해당 버튼을 누르면 동작할 시나리오는 삭제 확인 팝업 표시. 확인 버튼과 취소 버튼 표시. 확인 버튼 클릭 시 해당 메모 삭제. 취소 버튼 클릭 시 팝업 닫기. 의 구성이다. 따라서 이전 강의들에서 사용했던 팝업 생성 코드를 그대로 사용한다. // // ViewerViewController.swift // test // // Created ..
018 ~ 021. DB, Memo Editing (데이터베이스, 메모 수정) DB (데이터베이스) DB 작성 iOS 앱의 DB는 CoreData를 사용해서 만들어 진다. CoreData는 프로젝트 생성 시에 이미 활성화 해 둔 상태이고, 기본적인 내용 또한 자동으로 추가 된다. 바로 앱 이름의 '.xdatamodeld' 파일이 DB이자 CoreData 파일이다. 해당 파일은 데이터 저장 방식의 설계도 역할을 한다. 좌측 하단의 'Add Entity' 버튼을 툴러 Entity를 생성하고, 컨텐츠와 날짜를 저장 할 Attribute를 각각 생성한다. 최종적으로는 위와 같은 모습이 되어야 하며, Entity의 Attribute Inspector의 'Codegen'이 Class Definition으로 되어 있어야 한다. 이 상태로 빌드를 시도하면 에러가 발생하는데, 임시로 생성해 뒀던 ..