[Swift] how to create multiple preview import SwiftUI struct LandmarkList: View { var body: some View { NavigationView { List(landmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } } .navigationTitle("Landmarks") } } } struct LandmarkList_Previews: PreviewProvider { static var previews: some View { ForEach(["iPhone SE (2nd generation)", "iPhone XS Max"], id: \.self) {..
[Swift] 반복문에서 id: \.id 의 의미 1. id 앞에 \. 이 붙는 이유, 반복문을 이용해서 리스트를 만들때 Key를 참조하는법 List(landmarks, id: \.id) { landmark in LandmarkRow(landmark: landmark) } 하지만 Landmark 코드에 struct Landmark: Hashable, Codable, Identifiable { 다음과 같이 Identifiable을 추가해주면 id key path는 삭제해도 된다. Identifiable 프로토콜을 구현하는 경우 id 프로퍼티를 직접 지정하지 않아도 List에서 요소를 식별할 수 있게 되어, key path를 따로 지정할 필요가 없기 때문이다! List(landmarks) { landmark in LandmarkRow(landmark: la..
[Swift] load(_:) method (fetching JSON data) 뜯어보기 import Foundation //Create an array of landmarks that you initialize from landmarkData.json. var landmarks: [Landmark] = load("landmarkData.json") func load(_ filename: String) -> T { let data: Data guard let file = Bundle.main.url(forResource: filename, withExtension: nil) else { fatalError("Couldn't find \(filename) in main bundle.") } do { // Data(contentsOf:) 메서드를 사용하여 파일의 내용을 Data 객체로 읽어온다...
[Swift] Swift 에서 Hashable, Codable은 뭘까? Protocol 알아보기 swiftui tutorial 의 예시 코드를 공부하다보면, Struct 뒤에 ~able 로 붙은 것들이 보인다. 이건 무엇이며 각각 어떤 역할을 할까? Hashable과 Codable은 스위프트 언어에서 프로토콜(Protocol)이다. 예시코드에서 각각의 의미 1. Hashable: Hashable 프로토콜은 객체를 고유한 해시값으로 매핑할 수 있도록 해주는 프로토콜이다. 해시값은 객체를 식별하는 데 사용되며, 해시 함수를 통해 계산된다. Hashable 프로토콜을 채택하면 해당 객체를 Set이나 Dictionary의 키로 사용할 수 있다. 또한, Hashable 프로토콜을 준수하는 객체는 집합(Set)과 같은 자료 구조에서 중복된 요소를 제거할 수 있다. Landmark 구조체의 인스턴스가 Hasha..
[SwiftUI] 헷깔리는 State, Binding, ObservedObject, EnvironmentObject 총정리 SwiftUI에서의 Single Source of Truth(SSOT, 단일 진실 공급원)란 데이터의 일관성과 정확성을 유지하기 위한 중요한 개념이다. 정보 시스템에 대한 SSOT(Single Source Of Truth) 아키텍처 또는 SPOT(Single Point Of Truth) 아키텍처는 모든 데이터 요소가 마스터(또는 편집)되도록 정보 및 모델 관련 데이터 스키마를 구성하는 관행이다. 한 곳에서만 정규 형식으로 데이터 정규화를 제공한다. 이 데이터 요소에 대한 모든 가능한 연결은 참조용이다. 데이터의 다른 모든 위치는 "source of truth" 위치를 다시 참조하기 때문에 기본 위치의 데이터 요소에 대한 업데이트는 전체 시스템에 전파되어 효율성/생산성 향상, 잘못된 불일치의 쉬운 방지 같..
[SwiftUI Tutorials] SwiftUI Essentials - Creating and Combining Views Creating and Combining Views | Apple Developer Documentation This tutorial guides you through building Landmarks — an app for discovering and sharing the places you love. You’ll start by building the view that shows a landmark’s details. developer.apple.com - SwiftUI 앱 수명 주기를 사용하는 앱은 앱 프로토콜을 준수하는 구조를 가짐. - 이 구조의 body 속성은 하나 이상의 Scene을 반환하고 표시할 콘텐츠를 제공. - @main 속성은 앱의 entry point를 식별. - 기본적으로 Swi..
React, Firebase을 이용하여 만든 해커톤 웹페이지 개발팀 회고 http://norithon.com해커톤 웹사이트는 요기 있고요 ..! 게스트로 로그인하시면 내용 열람이 가능합니다. 🌞 HGU HACKATHON norithon.com 해커톤 디렉터이자 웹사이트 개발 리더로 3개월을 보냈습니다! 웹 개발은 한달정도를 썼습니다. 우리 팀에 대한 한줄 요약은..! 환상의 팀워크와 함께 아주 성공적인 프로젝트였다...... 후! 같이 나누면 좋을 것 같은 내용들을 각자 정리해서 오늘 함께 공유했습니다 :) 아래는 제가 프로젝트 하면서 포스팅 했던 글들 + 이번에 회고를 위해 노션에 썼던 내용 옮긴 글들인데 한번 모아봤습니다. 리액트 폴더구조의 정석이 있을까우리가 코딩한 src 폴더 사실 노마드코더를 따라했기 때문에.. 그리고 이번 프로젝트는 그 안에서 충분히 커버가..
[히힉 .. 히..힉ㅎ] Foundations - Color 내가 예전부터 보고싶던 파트 !!! ㅎㅎ 디자인시스템에서 컬러 지정은 아주 중요하기 때문에 이에 관해 애플이 공식적으로 작성한 문서를 읽고 싶었다. 그치만 먼저 읽으면 재미없으니까 ,,, 앞에서부터 차근차근 공부했다사실 뒤에 다크모드랑 타이포도 상당히 궁금 👀 ColorJudicious use of color can enhance communication, evoke your brand, provide visual continuity, communicate status and feedback, and help people understand information.색상의 현명한 사용은 의사소통을 향상시키고, 브랜드를 환기시키며, 시각적 연속성을 제공하고, 상태와 피드백을 전달하며, 사람들이 정보를 이해하..
Firebase 보안규칙 수정 : 파이어베이스에 안전하지 않은 규칙이 있습니다 메일 올 경우 해결 방법 파베 보안규칙보안 규칙 시작하기 | Firestore | Google Cloud 보안 규칙 시작하기 | Firestore | Google Cloud의견 보내기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 보안 규칙 시작하기 Firestore 보안 규칙을 사용하면 인프라를 관리하거나 서버 측 인증 및 승인cloud.google.com징글징글하게 이메일을 보내오던 firebase 보안규칙을 수정했습니다1. 보안규칙 버전 작성rules_version = '2';기존의 rules_version = '1' 은 와일드 카드를 사용할 때 한 개 혹은 두 개 이상의 path를 포함하고 있어야하기 때문에 자유롭게 와일드카드를 사용하기 위해서는 zero path를 허용하는 ..