적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Swift iOS 앱 개발 173

[Stanford iOS] Lecture 4. Grid + enum + Optionals

Grid add rows and columns by replacing HStack with Grid. How Swift deal with memory : the way that Swift cleans up memory is when nobody points to something anymore, it cleans up the memory and frees it up for someone else to use. Memory cycle : if two things are pointing to each other and they’re both in the heap, they’re never gonna be able to go away b/c they’re always gonna have a pointer to..

[iOS 개발] Objective-C → Swift UIKit → SwiftUI

2014년 iOS 8, Swift 1.0 발표 2015년 Swift 2 발표, Open Source 2016년 Xcode8, Swift3 Objective-C의 단점? 오래된 언어(C) 기반. 최신 기법 담기 힘듬. 헤더파일, 구현파일 나뉘어져 있음 nil 처리에 대한 부담. 타입 체크 약함. Swift는 타입 체크에 강하다. 성장 한계 Swift Modern, Safety, Fast and Powerful 클로저, 튜플, 제네릭, 함수형 프로그래밍 nil에 대한 강박증에 가까운 처리 타입 세이프, 타입 체크 강화 플레이그라운드

[Stanford iOS] Lecture 3. Reactive UI + Protocols + Layout

Lecture 3. Reactive UI + Protocols + Layout Reactive Demo - Make Memorize's View always reflect its Model Varieties of Types View Layout - How do Views get placed on screen? (demo: adapt CardView's font size to the size of the card) SwiftUI is Reactive! Reactive Programming : Model에 변화가 감지되면, 자동으로 View에 나타나도록 해준다. when changes happen in the Model, automatically show up in the View [Model] How to..

[Stanford iOS] Lecture 2. MVVM and the Swift Type System

Lecture 2. MVVM and the Swift Type System MVVM Design paradigm ‘code organizing’ architectural design paradigm ‘reactive’ user-interfaces concept must be adhered for SwiftUI to work cf) UIKit 프레임워크의 MVC 모델과의 차이? 모델이 뷰에 적용되기까지 data flows model to view (read only) [View] - Reflects the Model - Stateless - Declared : 함수 사용하지않고 그냥 바로 선언해줌 -> time independent (UI 작성 순서 없이 그냥 시간 상관없이 언제든지 작동, 구현) - Re..

[Stanford iOS] Lecture 1. SwiftUI를 만나다

Lecture 1. Introduction to SwiftUI SwiftUI를 처음 써보았다. 와.. 이렇게까지 간결할 수 있을까? 엄청나다.. 그냥 대충 휘갈기기만 해도 code clean… ㅋㅋㅋㅋ UIKit 적응한지 얼마나 됐다고 SwiftUI 가 새로 나왔다길래 에라이 귀찮아 그건 또 언제 공부하고 언제 적용해 라고 생각을 했지만, 나온지 얼마 안돼서 아직 상용화가 되기에는 시간이 좀 걸릴 수도 있을지 모르겠으나 정말 쉽고 편해진 것 같다는 생각이 든다. 아직은 매우 낯설긴 하다. SwiftUI 프레임워크에서는 데이터 타입을 거의 class 대신에 struct를 사용한다. AppDelegate / SceneDelegate 가 사라지고 App 프로토콜을 상속받는 struct만이 있을 뿐이다. 기존의..

데이터 저장 1 - 프로퍼티 리스트

1. 프로퍼티 리스트란? 프로퍼티 리스트 : 애플의 주요 소프트웨어 프레임워크에 이용되는 객체 직렬화를 위한 XML 형식의 파일로, plist 파일이라고 부르기도 한다. 비교적 단순하고 간단한 데이터를 XML 포맷에 맞추어 key-value 형식으로 저장하는 것. *객체 직렬화 : 객체의 내용을 바이트 단위로 변환하여 파일에 기록하거나 네트워크 통해 전달이 가능하도록 하는 것 *XML : Extensible Markup Language 단순성, 일반성 그리고 인터넷을 통한 사용성을 강조하여 설계된 텍스트 데이터 형식의 다목적 마크업 언어 대부분 앱의 공통 데이터나 주요 설정 정보를 저장하는 데에 쓰임. iOS 기반 프로젝트에서 볼 수 있는 Info.plist 파일은 앱의 빌드와 실행에 필요한 환경 설정값..

코코아 터치 프레임워크에서의 데이터 저장 방식

앱을 실행하는 동안 생성된 모든 데이터는 기본적으로 '메모리'에 저장된다. 메모리에 저장되는 데이터는 쉽게 읽고 쓸 수 있는 반면, 앱이 종료되는 순간 모두 지워진다는 단점이 있다. 이에 코코아 터치 프레임워크는 데이터를 반영구적으로 저장하기 위해 여러 가지 방법을 제공한다. 데이터의 내용과 형식, 그리고 규모를 고려하여 저장방식을 선택해야 한다. 코코아 터치 프레임 워크에서 선택 가능한 데이터 저장 방식은 데이터의 복잡도와 특성에 따라 크게 세가지로 나눌 수 있다. 1. 프로퍼티 리스트 비교적 간단하고 짧으면서 키-값(key-value) 형태로 단순화할 수 있는 데이터의 저장에는 프로퍼티 리스트가 사용됨. 개인 정보나 로그인 데이터, 환경 설정값을 저장해야 할 때가 대표적인 경우. 종류 : iOS 기본..

[Swift ] Ternary Operator

Ternary operator란? ternary operator를 직역하면 '삼항 연산자'로 말 그대로 세 개의 값을 가지고 연산? 처리를 해준다. 첫 번째 값에 지정된 조건으로 참/거짓 여부를 판별한 뒤, 참이면 두 번째 값을 반환하고, 거짓이면 세 번째 값을 반환한다. [ 조건 ? 참 : 거짓 ] let number = 3 print(number > 5 ? "yes" : "no") 이거를 풀어서 코드를 작성하면 let number = 3 if number > 5 { print("yes") } else { print("no") } 이것과 동일한 기능을 하는데, 이처럼 간단한 조건문이라면 ternary를 사용하여 4줄 짜리를 1줄로 간결하게 작성할 수 있다.

728x90
반응형