목록iOS (133)
k-coding

SwiftUI Image로 TabView 만들어보기 이전에 TabView를 활용하여 여러가지 모드의 TabBar를 만들어보았는데요. https://choiki923.tistory.com/141 Swift UI TabBar Swift UI TabView 오늘은 SwiftUI에서 간단하게 TabView를 구현하는 방법을 알아보겠습니다. TabView를 이용하여서 TabBar를 만들어줄 수 있는데요 탭바가 어떤것인지는 다들 잘 아실거라고 생각합니다. choiki923.tistory.com 이번엔 TabView를 활용하지않고 Image를 통하여 커스텀된 Tabbar를 만들어보겠습니다. import Foundation import SwiftUI struct MyView: View { var title: Strin..

오늘은 iOS에서 앱을 만들고 User Interface를 구성하는 데 필수적인 프레임워크인 UIKit에 대하여 알아보겠습니다. 필수적이기 때문에 아마 Swift에서 파일을 처음 만들면 자동적으로 import UIKit class ... 이렇게 import되는것을 많이들 보셨을것입니다. UIKit이란? UIKit은 프레임워크로써 iOS에 들어가는 앱을 빌드하는데 필요한 핵심 오브젝트를 지원합니다. 기본적으로 iOS앱을 만들기위한 Xcode는 UI를 기반으로 앱을 빌드하기 때문에 UI의 각 요소가 오브젝트로써 작동하며 이러한 오브젝트들의 상호작용이나 컨텐츠 요소를 지원하는것이 UIKit입니다. UIKit이 필수적인건 알겠는데 그렇다면 그냥 import만 하고 땡인건 아니죠 UIKit을 적용하기 위해서는 반..
iOS Main / Background Thread 이전에 Process와 Thread에 대해서 알아보았는데요. 오늘은 쓰레드중에서 메인쓰레드와 백그라운드 쓰레드에 대해서 알아보겠습니다. Main Thread 앱에서 Main Thread는 하나 뿐인 쓰레드로, 흔히 MainThread 혹은 Interface thread라고도 불리는 쓰레드로 우리가 작성한 코드가 대부분 Cocoa에서 실행되는데, 이 Cocoa를 호출하는곳이 Main Thread입니다. 위에서 Main Thread를 interface thread라고도 한다고 했는데, 그 이유는 앱에서 만든 인터페이스 관련 코드는 모두 반드시 main thread에서 작성되어야 되기 때문입니다. Background Thread 대부분 코드가 main thr..

iOS ) Process 와 Thread 오늘은 Process 와 Thread에 대하여 알아보고 이 둘의 차이점이 무엇인지에 대하여 정리해보겠습니다. 우선 이 둘의 관계를 하나의 그림으로 표현하면 아마 이해가 제일 빠를 것 같습니다. 음... 가장 위에 있는 Program부터 정리해볼게요 Program은 정의상 한마디로 코드로 만들어진 집합체 입니다. 프로그램은 단순 코드 덩어리로 정적인 상태에서 메모리를 할당 받지않은 상태를 말합니다. 그럼 그 안에 Process와 Thread는 무엇일까요? Process는 운영체제로부터 시스템 자원을 할당받는 작업의 단위입니다. 프로그램을 실행하게되면 프로세스가 됩니다. Thread는 한 프로세스 내에서 실행되는 하나의 흐름의 단위로 CPU가 작업을 처리할 때 생각하..

SwiftUI Geometry Reader 오늘은 Swift UI에서 View의 크기 비율을 정할 수 있게 해주는 Geometry Reader에 관하여 알아보겠습니다. 우선 저희가 SwiftUI에서 하나의 View를 만들어봅시다. 예를 들어 아래와같은 코드로 아래의 화면을 만들었습니다. struct GeometryReader : View { var body: some View { HStack(spacing: 0) { Text("A") .frame(width : 50) .background(Color.red) Text("B") .frame(width : 50) .background(Color.green) Text("C") .frame(width : 50) .background(Color.yellow) } ..

Scene Delegate , App Delegate 오늘은 UIKit에서 프로젝트를 처음 생성하면 제일 상단에 자동 생성되는 swift 파일인 요 두 파일 AppDelegate와 SceneDelegate에 대하여 알아보겠습니다. Scene Delegate이라는 개념자체가 iOS 13이후로 생긴것으로 그 전에는 AppDelegate가 큰 범위로 Process LifeCycle과 UI LifeCycle을 모두 관리하였는데요. 때문에 하나의 앱에 하나의 window를 가졌지만, iOS13 이후로는 AppDelegate가 관리하던 UI LifeCycle을 SceneDelegate가 관리하게 되었습니다. 이렇게 바뀜으로 인해서 하나의 앱에서 여러개의 Scene을 분할해서 볼 수 있게 되었습니다. 근데 2가지로 ..
이전에 iOS의 상태변화에 대하여 알아보았습니다. https://choiki923.tistory.com/142 그럼 이번엔 상태변화에 따른 동작을 처리해주는 Delegate메서드들을 알아보겠습니다. //애플리케이션이 실행된 직후 사용자의 화면에 보여지기 직전에 호출 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool //애플리케이션이 최초 실행될 때 호출되는 메소드 func application(_ application: UIApplication, willFinishLaunchingWithOptions laun..
보호되어 있는 글입니다.

App States (foreground / background) 오늘은 어플리케이션이 foreground에 있을 때와 background에 대해서 공부해보겠습니다. 그럴려면 우선 이 2개가 무엇인지 알아야될것같습니다. foreground 상태는 앱이 실행되어서 사용자가 사용하고있는 상태입니다. 따라서 CPU를 비롯한 시스템자원의 우선순위가 높은 상황입니다. background 상태는 앱이 홈화면에 들어가서 사용자에게 보이지않는 상태입니다. 하지만 앱이 꺼지지않고 계속 실행이 될 수 있어야합니다. 주로 뮤직플레이어 앱들이 background상태에서도 음악을 사용자에게 계속 들려줍니다. 애플에서는 앱이 실행될 때 다음과 같은 상태에 따른 가이드 라인을 요구합니다. 앱의 상태 변화에 따라 적절하게 대응해야 ..

Swift UI TabView 오늘은 SwiftUI에서 간단하게 TabView를 구현하는 방법을 알아보겠습니다. TabView를 이용하여서 TabBar를 만들어줄 수 있는데요 탭바가 어떤것인지는 다들 잘 아실거라고 생각합니다. 이 친구들이죠 이 탭바의 특징이라면 해당 탭을 클릭하면 그 화면으로 넘어간다는것인데요. 간단한 예제를 통하여 탭바를 한번 만들어보겠습니다. 우선 전에 공부했던 Navigation처럼 탭바를 사용하기위한 부분을 우선 TabView { // ... } 로 감싸주어야 합니다. 그 안에 화면을 구상할 코드와 각 TabBar에 타이틀과 이미지를 넣어주면 되는데요. 이러한 뷰는 어떻게 만들수 있을까요? 먼저 전체 코드를 보여주고 설명해보겠습니다. import Foundation import ..