SWIFTUI100 2022 WWDC SwiftUI의 새로운 기능! [ iOS 16, Xcode 14 ] 본 게시글은 Anupam Chugh 님의 게시글을 번역 / 의역 한 자료 입니다. 목차 2022 WWDC 2022 WWDC 이벤트가 6월 7일 오전 2시에 시작했습니다. 이번 WWDC에서도 마찬가지로 SwiftUI 에 다양한 기능이 추가되었습니다. 새로운 NavigationStack, SwiftUI 전용 차트 라이브러리, 그리고 Grid layout 개선 등 많은 장점들이 추가되었습니다. 이제, iOS 16에서 SwiftUI의 4가지 새로운 기능에 대해 알아보도록 하겠습니다. 이 기능들은 iOS 앱의 프론트엔드 UI와 UX를 향상하는 데 주로 사용됩니다. 추가된 기능 Charts Charts는 완전히 새로운 SwiftUI 전용 프레임워크입니다. 이제 SwiftUI를 사용하여 data visualizati.. SWIFTUI/Others 2022. 6. 10. SwiftUI : Material - background blur 효과 Material 에 대해 알아보도록 합시다. Material SwiftU iOS15 이상에서 사용 가능한 background 반투명 흐림 효과 속성이 있다. 바로 Material 타입 이다. struct Material Material을 추가하여 background(_:ignoresSafeAreaEdges:) 수정자와 함께 사용 가능하다. 이 수정자는 어떠한 View 뒤에 나타나는 View에 반투명 흐림 효과를 적용할 수 있다. 참고로 SwiftUI에서 blur 라는 수정자가 있는데 이것은 잘못된 사용 방법이다. import SwiftUI struct ContentView: View { var body: some View { ZStack { LinearGradient( colors: [.red, .yel.. SWIFTUI/View layout 2022. 3. 4. SwiftUI 튜토리얼 모음 # SwiftUI를 지금 배워야 하나요? SwiftUI는 iOS 13, macOS 10.15, tvOS 13 및 watchOS 6에서 실행되기 때문에 다릅니다. 언급된 OS 만 대상으로 하는 새 앱에서 작업하는 경우 '네'라고 대답합니다. 이 OS 버전을 제어할 수 없는 클라이언트 프로젝트에서 일자리를 찾거나 작업할 계획이라면 SwiftUI로 전환하기 전에 1 ~ 2 년을 기다리는 것이 좋습니다. 대부분의 클라이언트 작업은 가능한 한 많은 사용자를 지원하기를 원하기 때문에 iOS N-1, N-2 을 지원하는 앱에서 작업해야 합니다. 따라서 SwiftUI를 적극적으로 활용하는 시기는 1년 정도 후 가 될 것입니다. # UIKit을 함께 배워야 하나요? 네! UIKit은 오랫동안 iOS에서 중요한 부분이 됩.. SWIFTUI 2022. 2. 24. SwiftUI : 런치스크린 및 @AppStorage AppStroage 에 대해 알아보도록 합시다. 런치스크린 SwiftUI에서 런치스크린을 사용하는 것은 아주 간단하다. 우선 Asset의 Color 세팅부터 진행해보려 한다. 새로운 프로젝트를 만들고 Assets 폴더를 눌러준다. AccentColor에 접근해서 Universal을 클릭해보면 오른쪽 인스펙터에 Color 탭이 활성화된다. 보통 Hex 코드를 사용하는것이 편하기 때문에 Content를 Display P3으로 변경하고 Input Method를 8-bit Hexadecimal로 변경해준다. 그리고 Hex에 코드를 작성하면 된다. 이제 팔레트를 하나 만들어주려 한다. Assets 폴더에서 오른쪽 마우스를 클릭해 New Color Set을 하나 만들어주고, Any Appearance와 Dark를 .. SWIFTUI/Others 2022. 2. 24. SwiftUI : 가로 회전 기능 끄는 방법 Xcode에서 시뮬레이터를 실행해보면 가로모드로 변경할 수 있는 아이콘이 있다. 이 아이콘을 누르면 아래와 같이 기본 세로 모드에 가로모드로 전환 가능하다. 이 가로모드를 할 수 없도록 설정해 줄 수도 있다. 우선 Xcode에 새프로젝트 클릭 ➜ Targets 탭의 프로젝트 클릭 ➜ Info ➜ Supported interface orientations (iPhone) Supported interface orientations에 바를 내리면 Item0, Item1, Item2 가 존재하는데 Item0을 제외한 모든 파일을 빼면 세로 모드에서만 앱이 실행 가능해진다. 이제 시뮬레이터를 재실행 해서 확인해보면 결과는 아래와 같다. 이렇게 Hello, world!가 가로모드일 때 회전하는 것이 아니라 그대로 .. SWIFTUI/Others 2022. 2. 23. SwiftUI : AsyncImage [Placeholder,Extension,Phase,Transaction] AsyncImage 에 대해 알아보도록 합시다. AsyncImage iOS 15로 업데이트되면서 추가된 기능인데, AsyncImage는 URLSession 인스턴스를 사용하여 할당된 URL에서 이미지를 가져오는 기능을 가지고 있다. 디바이스를 실행하고 몇 초의 시간 후 이미지가 나타나게 하려면 AsyncImage를 사용할 수 있다. 먼저 간단하게 Url Image를 코드작성한다. import SwiftUI struct ContentView: View { private let imageName: String = "https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlI00H%2F.. SWIFTUI/Image 2022. 1. 7. SwiftUI : App Icon SwiftUI를 다시 시작하면서 기본적인거부터 포스팅 해나가아려고 한다. 아주 기초적인것부터 포스팅할 예정이기 때문에 이미 알고계신 분들은 스킵하는것을 추천한다. App Icon 앱을 만들 때 가장 기본적인 App Icon을 적용하는 방법은 두 가지 방법이 있는데, 우선 앱에 적용 시킬 아이콘은 생성해야 한다. 본인이 원하는 앱아이콘 파일을 준비하고 아래 사이트에서 iOS 전용 아이콘으로 변환 할 수 있다. App Icon Generator AppIcon.appiconset 폴더를 살펴보면 성공적으로 png파일이 생성된것을 확인하면 준비는 끝이다. Xocde 적용 방법 우선 Xcode - Assets - AppIcon을 오른쪽 클릭하여 Show in Finder 메뉴를 통해 폴더에 들어가준다. AppIc.. SWIFTUI/Others 2022. 1. 4. SwiftUI : Haptic Feedback (haptics vibrations) haptics vibration 에 대해 알아보도록 합시다. 이번에는 저번 sound effects처럼 싱글톤을 사용하여 앱에 특정 버튼을 누르면 햅틱 반응을 추가해보려고 합니다. 참고로 이것의 실제로 사용해보려면 시뮬레이터나 캔버스가 아닌 실제 기기가 필요합니다. 바로 시작해보도록 하죠! Haptics Vibration 우선 HapticsManager이라는 클래스를 생성하고 싱글톤을 생성해줍니다. class HapticManager { static let instance = HapticManager() } 그리고 두 개의 함수를 추가해줄건데 첫 번째는 notification 함수, 두 번째는 impact 함수입니다. 이렇게 나눠져 있는 이유는 내장된 햅틱 기능이 실제로 이렇게 분리되어있기 때문입니다. .. SWIFTUI/Others 2021. 6. 29. SwiftUI : Sound Effects _ AVKit sound effect 에 대해 알아보도록 합시다. Sound Effect 이번에는 앱에 아무 간단한 음향 효과를 추가하는 방법에 대해 알아보려고 합니다. 이 기능은 앱을 만들어면서 아주 유용하게 사용되므로 꼭 알아두시는 것이 좋습니다. 그럼 바로 시작하죠! 우선 새로운 프로젝트를 만들고 SoundSetting이라는 class를 하나 생성해주겠습니다. 그리고 ContentView에 이 클래스를 변수를 사용하여 가져와볼게요. import SwiftUI class SoundSetting: ObservableObject { } struct SoundEffectView: View { var soundSetting = SoundSetting() var body: some View { Text("Hello, Wor.. SWIFTUI/Others 2021. 6. 27. SwiftUI : Combine과 함께 JSON 다운로드하기 목차 Combine프레임워크를 사용한 JSON Data 다운로드 이번에는 Comebine프레임워크를 사용하여 코딩을 해보도록 하겠습니다. 이번 게시글을 통해 Combine프레임워크가 얼마나 유용하고 강력하고 간결하고 부드러운지 알 수 있을 거라고 생각됩니다. 우선 시작하기전에 JSON Data를 @escaping을 사용하여 다운받아오는 방법에 대한것을 숙지하지는 것을 추천드립니다. 이번 게시글은 @escaping을 사용한 것과 새로운 프레임워크인 combine을 사용한 것을 비교하기 위한 포스팅입니다. 저는 개인적으로 combine을 사용해 JSON data를 다운로드해 가져오는 방법을 선호하는 편입니다. 왜냐하면 더 간결하고 구현하기 쉽기 때문이죠 :) 그럼 새로운 SwiftUI 파일을 생성하고 바로 .. SWIFTUI/Others 2021. 6. 22. SwiftUI : @escaping과 함께 JSON Data 다운로드하기 Escaping클로저를 사용한 JSON Data 다운로드 이번에는 @escaping클로저와 함께 JSON Data를 인터넷에서 다운로드해오는 방법에 대해 알아볼까 합니다. 웹데이터를 앱에서 사용할 수 있는 데이터로 변환하고 그 API를 화면에 띄워주는것이 목표입니다. 우선 새로운 SwiftUI 파일을 생성하고 이름은 DownloadWithEscaping이라고 정해주겠습니다. 그런 다음 ViewModel class를 생성해줘야겠죠? import SwiftUI class DownloadWithEscapingViewModel: ObservableObject { init() { getPosts() } func getPosts() { } } struct DownloadWithEscaping: View { @Sta.. SWIFTUI/Others 2021. 6. 18. SwiftUI 3.0의 새로운 기능! [ iOS 15, Xcode 13 ] 본 게시글은 Anupam Chugh 님의 게시글을 번역한 자료 입니다. 목차 SwiftUI는 Apple의 선언적 UI 프레임 워크입니다. 이번 WWDC 2021에서는 흥미로운 새로운 개선 사항, 일부 기능의 사용 중단 발표가 있었고, 개발자들에게 다시 한번 환영을 받았습니다. SwiftUI 3.0은 iOS 15, iPadOS 15, macOS 12 및 watchOS 12에서 사용할 수 있습니다. 시작하기 전에 주목할 사항이 있습니다. Info.plist 파일은 기본적으로 Xcode 13 Project 구조에서 더 이상 표시 되지 않습니다. 대신 프로젝트 내비게이터 탭에서 액세스 해야 합니다. 다음 몇 섹션에서는 iOS 15 용 SwiftUI의 새로운 기능을 살펴볼 것입니다. (대부분 다른 플랫폼에서도 일.. SWIFTUI/Others 2021. 6. 12. SwiftUI : @escaping @escaping에 대해 알아보도록 합시다. @escaping 이란? Escaping클로저는 클로저가 함수의 인자로 전달됐을 때, 함수의 실행이 종료된 후 실행되는 클로저입니다. Non-Escaping클로저는 이와 반대로 함수의 실행이 종료되기 전에 실행되는 클로저입니다. 앱을 만들면서 우리는 자주 인터넷에서 데이터를 다운로드해야 합니다. 이때 바로 비동기(Async) 코드를 사용해야 합니다. 보통 함수를 실행할 때는 위에서 아래로 함수가 실행되는데 만약 우리가 데이터베이스로 갈 때에는 인터넷에서 데이터를 다운로드한 뒤에 이 데이터를 바로 앱으로 가져올 수 없습니다. 왜냐하면 먼저 서버로 이동하고 데이터를 가져오기까지 몇 초의 시간이 걸리기 때문이죠. 그렇기 때문에 비동기 처리를 해야 합니다. 그리고 이.. SWIFTUI/Grammar 2021. 6. 11. SwiftUI : Background Threads / Queues 이 게시글을 보시기 전에 DispatchQueue에 대에 먼저 보시고 오시는 것을 추천드립니다. Thread 기본적으로 앱에는 여러 Thread가 있습니다. 이 Thread는 작업을 수행할 수 있는 프로세스를 수행할 수 있죠. 앱에 작성하는 모든 코드는 main Thread 즉, Thread1에 선언됩니다. 특별히 지정하지 않은 이상은 Main Thread에서 작업이 진행되는 것이죠. 하지만 코드를 작성하면 작성할수록 코드가 길어지고 Main Thread에서 많은 작업을 수행하게 되고 앱의 속도가 느려지고 렉을 유발할 수 있습니다. 그래서 Download와 같이 background에서 발생하는 무거운 작업을 Main Thread가 아닌 Background Thread에서 실행하는 것이 가장 좋습니다. T.. SWIFTUI/Others 2021. 6. 7. SwiftUI : @FetchRequest 속성 래퍼 [Core Data #1] Core Data? Core Data란 기본적으로 내부에 저장된 데이터 베이스입니다. 아이폰을 사용하여 데이터를 저장할 수 있습니다. 이 데이터는 세션 간에 유지되므로 사용자가 앱을 닫고 다시 열었을 때 데이터가 저장됩니다. 마치 @Appstorage나 UserDefault 같이 말이죠. SwiftUI는 Core Data 작업을 위한 속성 래퍼를 제공하며 추가 로직을 작성하지 않고도 SwiftUI View에 데이터를 직접 포함할 수 있습니다. UserDefaults : 앱의 Preference 를 저장할 때 주로 사용합니다. CoreData : SQLite 에 직접 접근하는 방식만큼 유연함을 제공하면서도 앱과 데이터베이스의 동작 방식을 분리해줍니다. 앱이 많은 데이터를 필요로 하고 여러 다른 객체 간의 .. SWIFTUI/Others 2021. 6. 5. 이전 1 2 3 4 ··· 7 다음 한국어 (기본) English Русский 日本語 👉🏻 잠깐만요! 이 글도 한 번 보고 가세요 이전글 다음글 티스토리툴바 서근 개발노트구독하기