
프로젝트하다가 마주한 버그.. 처음 마주보는거기도 했고 어떻게 해결해야 할 지 몰라서 당황했었는데!!!!!! 어떻게 해결했는지 남기고자 한다. 오류 빌드해서 비밀번호를 입력하고 보면 이런 에러가 시뮬레이터에 뜨면서 콘솔창에 키체인을 연결하라고 뜬다. textfield를 NewPassword로 해보기도 했고 여러 시도를 해봤는데 근본적인 이유는 키체인을 연결하지 않아서 입력할 때 마다 오류가 났던것이다. 하지만 키체인을 연결해도 빌드할 때 마다 비밀번호 입력필드를 입력하려하면 원치 않는 키보드가 올라오는 현상이 나타났다. 여러가지 방법을 찾아보다가 공감되서 캡쳐해놨던 사진 ㅋㅋ 나도 이문제 때문에 머리 많이 쥐어뜯었는데 . . 아무튼 지금은 해결완료~~~~~ 1️⃣ 해결방법 시뮬레이터를 빌드해서 설정 ->..

오늘은 iOS의 생명주기에 대해서 다뤄보겠다! 스터디에서 면접질문으로 가져온 질문은 아래와 같지만, 해당 질문들은 UIKit 기반의 LifeCycle이기 때문에 SwiftUI의 관점에서의 lifeCycle에 대해 글을 작성하고 UIKit LifeCycle과 비교하며 질문에 답을 해보는 식으로 글을 포스팅하겠다. 1️⃣ SwiftUI의 lifeCycle SwiftUI에서 프로젝트를 만들고 (프로젝트명) App 파일에 들어가면 아래와 같은 코드를 볼 수 있다. @main, Scene, App 등 개발할 때 자세하게 보지 않았던 코드들이 나열되어 있는데 이 파일은 SwiftUI에서의 LifeCycle에 관해 다루고 있다. import SwiftUI @main struct LifeCycleApp: App { v..

SwiftUI로 프로젝트를 하다 보면 프리뷰에 이런 게 뜨면서 경고창이 나오고, 실행이 안될 때가 있다. SwiftUI의 제일 큰 장점이 Preview 기능이라 생각하는데 이 기능이 Preview Crashed 되면서 뜨면 정말 답답하게 느껴진다. 여러 가지 원인이 있겠지만 내가 프로젝트 개발 중 경험했던 원인과 해결법에 대해 작성해보고자 한다. LoginView └─ LoginFormView └─ LoginFormViewModel 문제가 발생했던 뷰의 디렉토리 구조는 위와 같이 구성하였다. 최상단 View는 LoginView이고 입력폼, 로그인 버튼 등 입력 폼과 버튼을 관리하는 View는 LoginFormView에 따로 관리하였다. 원인 나는 하위 뷰에서 객체를 사용하고 최상위 뷰에서 객체를 사용하지..

오늘은 DatePicker와 DateFormatter를 활용하여 TaskEditor를 만들어보자! 주요 기능 task 추가 기능 task 삭제 기능 task 수정 기능 DatePicker를 사용하여 날짜 수정 UI DatePicker DatePicker란, 날짜를 선택하기 위한 컨트롤이다. 애플 공식 문서에 찾아보면 다양한 디자인, 사용방법을 예시로 들어 친절하게 알려준다! 공식문서 링크를 첨부해 둘 테니 참고하시길! - 링크 let dateFormatter: DateFormatter = { let formatter = DateFormatter() formatter.dateStyle = .short formatter.timeStyle = .none return formatter }() DatePicker..

오늘은 핀터레스트에서 보던 메인 뷰처럼 구현하기 위해 swiftUI에서 사용하는 LazyVGrid를 활용하여 뷰 구성을 해보겠다! View 우선 내가 구성한 뷰는 이렇다 LazyVGrid가 뭐고 어떻게 쓰는건데!? 라고 할 수 있으니 간단한 설명을 해보겠다. LazyVGrid? VStack처럼 열(Columns) 기반의 그리드 레이아웃을 지연 로딩 방식으로 구현할 때 사용되는 컨테이너라고 한다. 즉, 2차원의 행이 형성되고 세로로 계속 스크롤 할 수 있는 게 특징이다. flexible, adaptive LazyVGrid를 사용할 때 GridItem을 만들때 만들 수 있는 형태가 3가지가 있다. fixed, adaptive, flexible 총 3가지가 있지만, 그중 제일 많이 사용하는 adaptive와 ..

오늘은 swiftUI에서 제공하는 List를 활용한 TodoList를 만들어보자! 핵심기능 + 버튼을 누르면 팝업 창 띄워서 할 일 입력받기 입력받은 할 일을 토글 형태로 리스트에 추가 UI 팝업창 띄우기 위에 UI를 보면 + 버튼을 눌렀을 때 할 일을 입력할 수 있는 textfield가 들어있는 팝업창을 띄우도록 해보겠다. 처음엔 버튼을 만들고 Alert를 활용해 구현해보려고 하였으나 Button(action: {}, label:{})을 활용해서 구현하였는데 alert창에서 textfield를 넣으려고 하면 자꾸 오류가 생겼다. 그래서 버튼을 눌렀을 때 다른 뷰로 이동하게 만들었고, PopUpView라는 파일을 하나 더 만들어 팝업창에 대한 기능만 구현하도록 했다. struct TodoItem: Ide..

오늘은 ImagePicker를 사용해서 프로필 화면을 바꿔보자! UI 대충 이런 view를 상상했지만 ㅎ... 너무 부실한 내 UI이다. . ㅋㅋ 하지만 아직 SwiftUI를 시작한 지 얼마 안 됐으니 UI는 대충 하고 기능적인 부분에 집중해보자! 우선 내 프로필 변경에서는 변경할 사진을 누르고, 이름을 입력한 후 저장을 누르게 되면 "저장되었습니다."라는 팝업창이 나오게 구현하였다. ImagePicker 사용기 우선 프로필 속 사진을 바꾸고 싶다면 이미지를 갤러리에서 사진을 가져와야 한다. 그 역할을 해주는 게 UIImagePickerController이다. 공식문서 링크를 걸어뒀으니 더 자세한 기능들이 궁금하다면 클릭해서 읽어보시길! UIImagePickerController는 UIKit에 사용되는 ..

오늘은 swift 스터디할 때 첫 프로젝트로 구현했던 스톱워치를 SwiftUI로 구현해 보았다. swift로 만드는 첫 프로젝트이기도 하고 거의 언어를 몰라서 클론코딩에 가까운 수준이었다 지금 코드를 보니 누가 봐도 복붙 하거나 클론코딩 한 거 같다... UIKit로 구현한 전체 코드 import UIKit class ViewController: UIViewController { @IBOutlet weak var TimerLabel: UILabel! @IBOutlet weak var startStopButton: UIButton! @IBOutlet weak var resetButton: UIButton! var timer:Timer = Timer() var count:Int = 0 var timerCou..
- Total
- Today
- Yesterday
- 가장가까운같은글자
- imagepicker
- SWIFT
- 병합충돌
- mlmodel
- LazyVGrid
- 클로저
- combine
- Xcode
- 둘만의 암호
- mergeconflict
- MainActor
- swiftUI
- 16173
- closure
- Fastlane
- OSLog
- UIKit
- CoreData
- 백준
- CustomCalendar
- XCTest
- 프로그래머스
- securefield
- ObservableObject
- 코딩테스트
- ios
- ScrollViewReader
- 스위프트
- rxswift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |