일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- Protocol
- 스위프트
- HIG
- uiscrollview
- UITextView
- Clean Code
- tableView
- 클린 코드
- combine
- ios
- swift documentation
- collectionview
- 리펙토링
- 리펙터링
- swiftUI
- ribs
- UICollectionView
- clean architecture
- 리팩토링
- SWIFT
- map
- 애니메이션
- uitableview
- Refactoring
- rxswift
- RxCocoa
- Observable
- MVVM
- Xcode
- Today
- Total
목록swiftUI (160)
김종권의 iOS 앱 개발 알아가기
* 애플 튜토리얼의 프로젝트 파일을 받아서 실습하고 그 중에서 중요한 부분만 포스팅 4강에서 만든 Row import SwiftUI struct LandmarkRow: View { var landmark: Landmark var body: some View { HStack { landmark.image .resizable() .frame(width: 50, height: 50, alignment: .leading) Text(landmark.name) Spacer() //
* 애플 튜토리얼의 프로젝트 파일을 받아서 실습하고 그 중에서 중요한 부분만 포스팅 데이터 모델 정의 애플에서 제공해준 assets폴더와 landmarkData 확인 landmarkData.json [ { "name": "Turtle Rock", "category": "Rivers", "city": "Twentynine Palms", "state": "California", ... 모델도 기존 swift에서 사용하던 방식처럼, json파일을 디코딩 하기위해서 Codable을 따르도록 구현 import Foundation import SwiftUI import CoreLocation struct Landmark: Hashable, Codable, Identifiable { var id: Int var na..
이미지 사용 방법 asset 파일에 사진 파일 준비 ContentView에 Image()를 사용하여 이미지 표출 struct ContentView: View { var body: some View { Image("dog") } } SwiftUI에서는 clipShape()를 통해 이미지를 Circle형태로 만들기가 매우 쉬움 struct ContentView: View { var body: some View { Image("dog") .clipShape(Circle()) //
Stack 뷰들을 나열할때 사용 뷰 간의 간격 설정에 용이 Stack 사용 방법 Preview에서 cmd + 클릭 > Embed in Stack을 사용해도 되지만, 코드에서 cmd + 클릭하여 생성도 가능 단축키로, cmd + shift + A로 오픈 Text 추가: shift + cmd + L 라이브러리 > Text struct ContentView: View { var body: some View { VStack { Text("Hello, world!") .font(.title) Text("sub text") } } } VStack의 생성자에서 alignment와 spacing 설정이 가능 struct ContentView: View { var body: some View { VStack(alignm..
SwiftUI Interface를 SwiftUI로 설정하여 생성 파일은 Landmark 프로젝트와 그 하위에 폴더가 존재하고, .swift파일은 두 가지가 존재 (+ preview도 존재) LandmarkApp ContentView LandmarkApp.swift 파일 앱의 윈도우를 관리하는 파일이며, ContentView()를 부르고있는 형태 // LandmarkApp.swift import SwiftUI @main struct LandmarkApp: App { var body: some Scene { WindowGroup { ContentView() } } } ContentView.swift 파일 ContentView라는 뷰 코드와 preview코드가 나누어져서 존재 import SwiftUI str..
Xcode 캐시, DerivedData 폴더 * derived: 파생된 xcode는 빌드하면 빌드 결과를 폴더에 저장해놓고, 앞으로 빌드할때마다 그 폴더를 참고하여 캐싱하여 사용하는 방식 폴더의 위치 ~/Library/Developer/Xcode/DerivedData MyApp이라는 앱을 빌드한 경우 "cmd + B" DerivedData/ModuleCache.noindex 모듈에 대한 정보를 저장해놓고, Xcode에서는 이 정보를 캐싱하여 사용 모듈화하면 빌드시간이 줄어드는 이유가 여기에 캐싱되기 때문 DerivedData/MyApp-fvkmtlk...regogcy 빌드 정보, 인덱스 정보, 심볼 정보, 로그등을 기록 info.plist는 XCode에서 정한 값이 아닌 별도의 값임을 주의 (LastAc..
ResultBuilder Swift 5.4에 도입 return 부분의 옵션을 설정하여 return 키워드를 없이 사용할수 있거나, 콤마를 사용하지 않고 배열을 만들 수 있는 등의 기능 사용 가능 ex) 여러 표현식을 단일 값으로 결합하여 결과를 빌드하는 경우 resultBuilder를 사용하지 않은 경우 - 콤마 존재 o resultBuilder를 사용한 경우 - 콤마 존재 x func getPersonMock() -> [Person] { [ Person(name: "jake", age: 20), Person(name: "kim", age: 22), Person(name: "paul", age: 32) ] } @PersonBuilder func getPerson() -> [Person] { Person(..
UIKit에서 기존에 사용하던 preview @IBINspectrable, @IBDesignable 추가하여, storyboard에서 수동으로 확인 -> swiftUI의 preview 기능을 사용할경우 UIKit 앱의 코드를 한줄도 바꾸지 않고 preview 기능 사용 가능 Preview사용 조건 Xcode 11 이상 macOS Catalina 이상 iOS 13+ Preview 사용 원리 dynamic replacement 기능 사용: Xcode에서 컴파일 없이 작성하고 있는 코드의 미리보기를 실시간으로 확인 가능 Preview - View 미리보기 Preview를 띄울 임의의 View 작성 import UIKit class MyYellowButton: UIButton { override init(fra..