전체 글 (34) 썸네일형 리스트형 Swift Xcode 프로젝트명 바꾸기 사실 이거에 대해서는 쓸 생각이 없었는데…. 내가 이문제를 겪었기 때문에 써보도록 하겠음!! 과제를 제출할 때 일련번호를 적어야 하는데 다 제출하고 pr날리고 보니까 일련번호가 전에랑 바뀌었던 거임!! 그래서 디렉토리에 일련번호를 부랴부랴 바꿔서 다시 제출은 했는데 보니까 프로젝트명은 아직 그래도인 거임 그냥 이름 바꾸니까 에러가 뜨면서 실행이 안되더라구요,,,? 그래서 찬찬히 찾아보면서 바꿀려고 함! 나 같이 무대포로 바꾸려다 에러를 만나시는 분들을 위해서… 써보겠음미다… 모두 화이팅…! XCode 프로젝트명 바꾸기!!!!!!! 1. 우선은 프로젝트의 이름을 바꿔야 함 다들 아시겠지만 엔터를 누르면 이름을 바꿀 수 있자나여 우선 최상단의 프로젝트의 이름을 바꿔줍니다. 그럼 이렇게 이름바꿀 프로젝트에 포.. SwiftUI Grid 오늘 알아볼것은 SwiftUI에서 Grid입니다!!! 사실 지금까지 쓸 일이 없었고, 그냥 아 저런게 있구나 이렇게만 알고 있었거든여 근데 이번에 앱스쿨 과제를 만들때 한번 써볼까?? 싶어서 정리해봤습니다!! ( 안하면 맨날 까먹어서 다시 찾아야함 ㅋㅋ ) Grid 컨테이너에 뷰를 2차원 정렬하는 레이아웃임!! LazyHGrid 수평으로 늘어나는 Grid임!! 그래서 가로로 스크롤이 가능한 뷰 컬렉션을 표현할 때 사용함!! 그래서 보통 ScrollView 랑 같이 쓰는거 같아여 사용하려면? 그리드에 포함될 열 항목의 배열을 생성해야 합니다. GridItem 을 이용해서 아이템을 생성함! let rows1 = [GridItem(.fixed(30))] // 1개의 열로 표현됨 let rows2 = [Grid.. UIKit ViewController Lifecycle 오늘은 UIKit에서 Lifecycle에 대해서 학습해 보았습니다!코드베이스로 앱을 만들기 시작하면서 viewDidLoad()를 많이 썼는데 뭔지 모르고 그냥 썼더라구요그냥 머.. .뷰에 나타낼려면 여기다가 하면된다~ 이정도로만 알고 있어서 한번 공부해보려고 했습니다요!나름 여기저기 학습해서 정리해서 썼는데 틀린 내용이 있을 수도 있으니까 참고해주시고 훈수 둬주십쇼! Lifecycle에 대해 학습하려고 알아보는데 크게 두 종류로 나뉘더라구요?1. Application Lifecycle - 앱 전체에 대한 생명주기2. View controller Lifecycle - 각 뷰의 생명주기이렇게 두 종류로 나뉘던데 이번에는 뷰컨의 생명주기에 대해 작성해 보도록 하겠습니다!View controller Lifecy.. Swift Generic이란?? 제네릭 제네릭은 유연하고 재사용 가능한 함수와 타입의 코드를 작성하는 것을 가능하게 해 줌. → 중복을 피할 수 있습니다! 사실 우리가 사용하는 것들중 많은 것들이 제네릭으로 되어 있는데 대표적으로 배열, 딕셔너리가 있음! func swapTwoInts(_ a: inout Int, _ b: inout Int) { let temporaryA = a a = b b = temporaryA } var someInt = 3 var anotherInt = 107 swapTwoInts(&someInt, &anotherInt) print("someInt is now \\(someInt), and anotherInt is now \\(anotherInt)") // Prints "someInt is now 107, and.. SwiftUI로 TodoList 만들기 이번에는 TodoList를 만들어보기로 했씀다! 사실 수업시간에 강사님이 데모로 보여주시긴 했었거든여 근데 들을때는 뭔가.. 느낌이 왔었는데 막상 혼자 하려고 하니까 진짜 와장창 막막하더라구요 분명… 좀 어려울때만 참고할라했는데… 어느순간 복붙하고 있는 저를 만났습니다…. 구래서 조금 바꾸거 이것저것 넣고 해봤는데… 암튼 그렇습니다! 새롭게 학습한 내용 UserDefaults Codable 구현 기능 sheet 를 이용한 데이터 추가 sheet 를 이용해서 데이터 수정 기능 swipe 를 이용해서 데이터 삭제 끝…? 학습한 내용 Error Handling 앱을 아무리 잘 설계했다 해도 개발자가 통제할 수 없는 상황은 언제나 발생할 수 있습니다. 그럴때를 대비해서 필요한게 이 에러핸들링인데 구체적으로 발생.. SwiftUI 뷰의 변화 감지 오늘의 주제는 SwiftUI에서 뷰의 변화 감지를 할 수 있는 modifier에 대해 알아보겠습니다! 사실 이런 것들에 대해서 진짜 진짜 최근에 알게 되었는데 처음으로 본게 .onAppear 이거등여 근데 찾아보니까 저거랑 비슷한 역할을 하는 친구들이 몇개 더 있더라구요 아직 다 써본건 아니지만 자주 쓸거같아여 한번 정리해보려고 합니다!!~ 여기서 소개하는 친구들은 뷰의 변화를 감지하고 대응하기 위한 modifier들입니다! onChange(of:perform:) 에 대해서 알아보려고 했는데… onChange(of:perform:) | Apple Developer Documentation onChange(of:perform:) | Apple Developer Documentation Adds an act.. UIKit TableView (1) 스유에서는 List 유킷에서는 TableView가 있는데 개인적인 생각으로 정~~말 많이 사용하는 거 같음 근데 맨날천날 까먹어서 한번 정리해 보도록 하겠습니다!! (사실 잘 몰라서 공부하면서 계속 추가할꺼임) 기본 여러 Cell을 이용해 하나의 열, 다수의 행을 이용해 수직 스크롤 테이블을 만듬 섹션으로 행을 그룹화하여 콘텐츠를 묶을 수 있음 (아이폰의 설정앱 마냥) 섹션에는 header와 footer를 붙혀 추가 정보를 표현할 수 있음 Delegate, DataSource DataSource는 데이터를 받아 View를 그려줌 Delegate는 테이블 뷰 동작과 외관을 담당함 . View가 변경되는 사항을 Delegate가 담당하고 View는 Delegate를 의존해 업데이트함. DataSource는 .. [TIL] 23.07.05 학습 내용 프로퍼티 래퍼 @Binding, ObservableObject 사실 기억나는건 이게 다인데.. 근데 적어보니깐 엄청 몇개 없어 보이는데 엄청엄청 좋고 중요한 내용이었던거 같음!!!! 진짜 정확하지 않은 정보들이 넘쳐날 수 있으니깐 참고하고 태클해주세여 프로퍼티 래퍼(Property wrapper) 내가 이해한 프로퍼티 래퍼는 동일한 기능을 수행하는 연산 프로퍼티가 존재할 경우 효율성? 재사용성 뭐.. 그런거 등등을 위해서 프로퍼티 래퍼로 만들어서 쓸 수 있다고 이해해씀. 그러니깐 연산 프로퍼티를 -> 프로퍼티 래퍼로 변환해서 로직을 구현할 수 있다는 거임 프로퍼티 래퍼를 만들때는 @propertyWrapper 라는 키워드를 이용해서 클래스, 또는 구조체를 선언하고, 게터, 세터를 포함한 wra.. SwiftUi DataBinding 이 게시글 내용은 공부하면서 점차 수정해 나갈 예정입니당 2023.6.26 13:31 작성 ----------- SwiftUI → 데이터 주도 방식으로 앱 개발을 강조 publlisher와 subscriber 구축 데이터와 UI 뷰 사이 데이터 변경에 따른 처리 코드 없이 뷰가 업데이트 가능. 이를 위해 SwiftUI는 상태 프로퍼티, Observable 객체, Environment 객체를 제공 → UI의 모양과 동작을 결정하는 상태 제공 뷰와 바인딩된 상태 객체가 상태에 따라 자동으로 뷰 업데이트 상태 프로퍼티, State property 상태에 대한 가장 기본적인 형태 뷰 레이아웃의 현재 상태를 저장하기 위해 사용 토글 버튼 활성화 여부, 텍스트 필드의 텍스트, 피커 뷰의 현재 선택 … 등 간단한 데.. SwiftUI를 이용해서 LoginView 만들기 스터디 조원들끼리 뭘 만들까 하다가 로그인 화면을 만들어보기로 함. 스유랑 유킷 둘 다 각각 만들어 볼꺼임! 다음 조건들을 포함하고 있어야 한다. 아이디 칸에는 이메일 형식만 입력될 수 있도록 한다. 아이디, 비밀번호 두개의 칸 모두가 입력되고, 토글 버튼이 켜져 있어야 회원가입 버튼이 활성화되도록 한다. 비밀번호 필드는 암호화되어 있어야 한다. 아래 이미지가 만들고자 한 화면의 예시임. 우선 다음과 같이 프로퍼티를 만들었봤습니당 뷰 안에서 값이 변경되므로 바인딩을 위해 @State를 붙혀주었구여 @State var id: String = "" @State var password: String = "" @State var isToggle: Bool = false @State private var show.. 이전 1 2 3 4 다음