iOS/SwiftUI 7

SwiftUI: Text() 사용법

Text는 기본적으로 SwiftUI에서 문자를 화면에 출력하기 위해 제공하는 메서드이다 Text를 다룰 때 어떤 옵션이 있는지 알아보고 여러가지 자료형, Date, Bool, Int형에 대해 출력하는 방법에 대해서도 알아보자. 기본적인 사용법. Text("Hello World") Text 메서드 안에 문자열을 주면 UI에 텍스트가 나타난다. 하지만 이대로 사용하기에는 글씨가 너무 작고, 스타일도 기본 스타일이다. Text("Hello, world!") .font(.system(.largeTitle, design: .default)) .fontWeight(.regular) .font 보통 위와 같이 .font(.system(...))으로 사용한다. '.'을 입력하면 Xcode에서 제공해주는 여러가지 옵션을..

iOS/SwiftUI 2022.03.08

SwiftUI에서 info.plist가 누락된 문제

SwiftUI 프로젝트를 생성했을 때 info.plist파일이 누락되는 것을 볼 수 있다. 어떻게 된 일일까? 먼저 이러한 문제는 Xcode13 에서 프로젝트를 생성했을 때 나타나는 문제이다. 만약 Xcdoe 12 이하의 버전에서 프로젝트를 생성하고 Xcode 13에서 프로젝트를 열었다면 아무 문제가 없다. SwiftUI 프로젝트를 Xcode 13에서 생성하면 info.plist 파일이 없는 것을 볼 수 있다. Project Navigator의 모습이 다음과 같다. 왜 info.plist 파일이 없어졌나? 그 원인은 Xcode 13 Release Note 에서 찾아볼 수 있었다. Apple Developer Documentation developer.apple.com 빌드 시 대상에 대한 전체 Info...

iOS/SwiftUI 2022.03.07

SwiftUI: @Binding 이란?

@State는 데이터의 변화를 확인해서 바로 뷰에 적용하는 것이라고 했다. 이번에 배울 내용은 @Binding! Binding이라는 의미는 기본적을 "묶는다" 는 의미를 가지고 있다. 데이터의 상태로 서로 묶어서 뷰와 뷰끼리의 데이터 공유가 가능하게 해준다. 변수의 Binding을 설정하고 나면, 다른 곳에서 정의한 변수처럼 바로!! 사용가능하다. 다른 표현은 isActivated변수의 기본값을 true로 하고있는 것 뿐이다. @Binding 변수가 정의된 구조체를 호출할 때는 '$'를 변수이름앞에 첨가해주면 된다😋 MyContentView.swift에서 isActivated 변수를 넘겨주는 것이다

iOS/SwiftUI 2022.03.07

SwiftUI에서 커스텀 셀, 리스트 구현하기.

비디오의 목록을 출력하기 위해 UIKit의 tableView역할을 하는 List를 사용해보았다. 어떻게 사용자가 만든 커스텀 Cell을 테이블뷰에 적용하는지, 또 NavigationView를 SwiftUI에서 적용해보았다. 자 그럼 커스텀 셀을 구현해보자. 우리가 만들고자하는 커스텀 셀의 UI는 다음과 같다. 이미지(썸네일)이 나오고, 동여상의 제목과 업로드날짜가 적혀있는 형태이다. 이를 VStack, HStack으로 구분해보면, 이미지와 텍스트부분이 HStack으로 쌓이고, 타이틀과 업로드날짜가 VStack에 쌓인다. 이미지, 제목, 업로드 날짜는 Video라는 구조체에 정의되어 있고, 파라미터로 구조체를 전달받아 출력한다. struct VideoCell: View { var video: Video v..

iOS/SwiftUI 2022.03.07

SwiftUI 날씨앱 UI 짜며 배운점(22.03.07)

간단하게 SwiftUI를 사용해서 실제 온도를 보여주는 것이 아닌! UI만을 작성해보고 배운점을 정리해본다. 백그라운드의 그라디언트는 LinearGradient 구조체를 사용하여 지정할 수 있다. LinearGradient(gradient: Gradient(colors: [isNight ? .black : .blue, isNight ? .gray : Color("lightBlue")]), startPoint: .topLeading, endPoint: .bottomTrailing) .edgesIgnoringSafeArea(.all) gradient프로퍼티로 Gradient 구조체를 매개변수로 받는다. 그라데이션으로 사용할 색상(여기서는 밤에는 검정-회색, 낮에는 파랑-하늘) lightBlue는 내가 정의해..

iOS/SwiftUI 2022.03.07

SwfitUI를 이용한 간단한 뉴스 앱 만들기

SwiftUI를 이용한 간단한 뉴스 앱을 만들어보자. 뉴스의 내용은 Hacker News의 내용을 가져올 것이다. H4X0 R News SwiftUI라는 이름으로 프로젝트를 생성해주자. 먼저 가져와줄 데이터를 받기 위해서 hacker new api문서를 참조하자. 우리는 뉴스 홈페이지에 있는 뉴스를 가져올 것이므로 다음 URL을 사용한다. JSON의 구조에 따라 구조체를 만들어준다. url 의url의 타입이 옵셔널인 이유는, url이 포함되어 있지 않은 글도 존재하기 때문이다. url의 값이 nil인데, JSON을 매칭 하려 하면 에러가 발생하기 때문에 꼭 옵셔널로 설정해주어야 한다. JSON을 파싱 해서 뷰에서 사용할 수 있도록 해주는 NetworkManager 클래스를 만들었다. 뷰에서 저장된 데이터..

iOS/SwiftUI 2022.01.24

SwiftUI: Basic

SwiftUI 는 애플의 공식 튜토리얼 페이지 에서 공부할 수 있다. UIkit과 작성하는 방법이 많이 다르다. 각각에 대한 뷰를 만들고 적용시키는 방식으로 되어있다. 먼저 Xcode 를 통해 SwiftUI 프로젝트를 생성해보자. 프로젝트 생성시 interface 로 SwiftUI를 선택하고 프로젝트를 생성하면 된다. ContentView란 출력되는 화면 그자체를 의미한다. 프로젝트의 화면 오른쪽의 resume 버튼을 누르면 작성한 코드의 뷰를 미리 볼수 있다(preview) preview를 이용해서 뷰를 수정하였을 때의 화면을 미리미리 확인할 수 있다. fontWeight나 font와 같은 옵션을 모두 외우고 있을 수 없기 때문에 구글 검색을 적극적으로 활용하자. SwiftUI에서는 겉에서 한번 감싼 ..

iOS/SwiftUI 2022.01.23