반응형 전체 글682 100 days of SwiftUI - Day24 이번에는 저번에 배운 뷰의 조건, 커스텀등을 이전 프로젝트에 적용시키는 과제 이다.//Go back to project 1 and use a conditional modifier to change the total amount text view to red if the user selects a 0% tip.// 수정부분 foregroundColor 부분 추가!Section("전체 금액") { Text(totalAmount, format: .currency(code: Locale.current.currency?.identifier ?? "USD" )) .foregroundColor(tipPercentage == 0 ? Color.red : Color.black)}배운데로 삼항 연산자 사.. 2024. 11. 20. 100 days of SwiftUI - Day23 이번 클래스는 왜 View 가 클래스가 아닌 struct 인지 와 기본 템플릿의 body 는 왜 some View 를 리턴하는가에 대한 이야기 였다. 결론만 요약해서 말하면,클래스 인 경우 쓰지 않는 속성과 메소드로 간단한 장면을 그릴때에도 무거워지기 때문에 가볍고 빠르게 만들기 위해 View 를 쓰고 있고some View 는 역시 어떤걸 리턴할 지 모르지만모두 대응하는 값으로 설정하기 위한것이다! 로 볼수 있겠다. (View 는 protocol 이다 )추가적으로, modifier 의 순서는 중요하다! modifier 는 구조체의 끝에 .로 선언 및 추가 수정을 가하는것 인데,그냥 UI 컴포넌트를 빌더 패턴 체인 호출(java에서처럼) 같이 쓴다고 보면 될듯 하다. 어쨌든 순서의 중요성은 아래의 예를 확.. 2024. 11. 19. 100 days of SwiftUI - Day20, Day21, Day22 유우명한 깃발 게임을 swiftUI를 이용해 만드는 방법이다. 이제 좀 봐줄만 하면서 내가 만들었지만 재밌다 흐흐..색감? 같은게 정하는 방법이 있어서 간단한데 제법 이쁘게 나오니 먼가 한거 같은 감도가 업! 도전과제 ( 점수 표시하기, 8번 하면 다시 처음으로 돌아가기, 정답 틀리면 찍은 국기명 보여주기 ) 까지 완료해본 소스 //// ContentView.swift// GuessTheFlag//// Created by HanTJ on 11/18/24.//import SwiftUIstruct ContentView: View { @State private var showingScore = false @State private var gameEnd = false @State priva.. 2024. 11. 18. 100 days of SwiftUI - Day19 19일차는 과제 데이 다!저번 뿜빠이 프로그램을 베이스로 하여 단위 변환툴을 만드는 것이다. 난 온도와 길이 변환 툴을 만들어따!//// ContentView.swift// Changer//// Created by HanTJ on 11/17/24.//import SwiftUIstruct ContentView: View { @State private var selectedTemperture: String = "섭씨" @State private var inputTempeture:Double = 0 let tempertures = ["섭씨", "화씨", "켈빈"] var calculateTemperture:Double { switch selectedTemperture {.. 2024. 11. 17. 100 days of SwiftUI - Day16, Day17, Day18 드디어 본격적인 보이는? 프로그램의 시작!. SwiftUI 를 이용해, 뿜빠이 프로그램을 만들었다.//// ContentView.swift// WeSplit//// Created by HanTJ on 11/16/24.//import SwiftUIstruct ContentView: View { @State private var checkAmount = 0.0 @State private var numberOfPeople = 2 @State private var tipPercentage = 20 @FocusState private var amountIsFocused: Bool @State private var totalAmount: Double = 0 @State priv.. 2024. 11. 16. 100 days of SwiftUI - Day13, Day14, Day15 protocol 과 extension protocol 은 java 의 interface 와 비슷 extension 은 c#의 partial class 같이 일부를 재 정가능한데 class 가 아닌 struct 와 protocol 을 추가 지정이 가능함. 그래서 extension 을 이용해서 c++의 연산자 오버라이딩 이 구현 가능함 . 물론 기존 타입(String, Array) 등도 확장가능함. 기존타입들이 struct이기 때문에 가능 함 protocol Person { var name: String { get } func sayHello()}extension Person { func sayHello() { print("Hi, I'm \(name)") }}struct E.. 2024. 11. 15. 100 days of SwiftUI - Day12 오늘은 class 관련 공부다.java , c++ 의 클래스와 크게 다를점이 없다. struct 와 class의 차이를 아는게 많은 도움이 되겠다.struct 는 값복사, class 는 값참조다. 복사하려면 복사 구문을 만들어줘야 한다.값참조 이기 때문에 같은 참조하는 클래스들이 모두 사라져야 메모리 해제가 된다. 그래서 init , deinit 함수가 있다. deinit 은 c++의 파괴자로 생각하면 된다. ( 파괴자라는 말은 좀 여전히 맘에 안든다... )struct 와 다르게 var를 다루는 func 에 mutating 을 안붙여도 된다. 여기서 struct는 상수같구나! 해주면 된다. 가장 큰 struct vs class 의 차이점은 상속이다. class B : A 하면 B는 A를 상속.. 2024. 11. 14. 100 days of SwiftUI - Day10 ~ Day11 swift 에서는 class 보다 struct 를 많이 쓴다고 합니다. java에서는 wrapping class 라고 하는 원시타입(int, float, double 등등등) 의 클래스들도 struct 로 구현되었다고 하네요! 오호! c의 struct 같은 경우에는 별도 함수정의가 없는데 swift 에서는 함수정의가 되고, 대신 struct 내의 변수 조작을 하려면 함수 앞에 mutating 을 써야 합니다. 또, 해당 구조체를 이용한 변수 선언시에 상수(let)로 선언하면 오류가 발생합니다. struct Employee { let name: String var vacationRemaining: Int mutating func takeVacation(days: Int) { .. 2024. 11. 13. 100 days of SwiftUI 시작! Day 0 ~ Day 9 항상 중도 포기중인 swift 공부를 또! 시작해 봅니다.이번엔 perplexity에서 물어봤는데 이 사이트를 알려주더라구요. 또 최근에 읽은 기사에 300개 앱 만들어서 회사탈출한 사람 이야기를 듣고, 열심히 하기로 했습니다. 깐바레! https://www.hackingwithswift.com/100/swiftui 첫날은 뽐뿌에 차서 달려봅니다. Day0. 준비끝Day1. string 길이 함수는 countDay2. 머 없음Day3. enum 선언에 case를 쓰는구나Day4. 머 없음Day5. 머 없음Day6. 아는 내용이지만 루프 돌릴때 1...10 1..Day7. func 펑크가 함수, 튜플로 2개이상 리턴 가능 이름 생략도 가능Day8. 머없음 Day9. 시~~작~~let sayHello .. 2024. 11. 12. 이전 1 2 3 4 ··· 76 다음 반응형