
앱이 foreground나 background에 있을 떄 시스템 알림에 응답하고 다른 중요한 시스템 관련 이벤트를 다루세요. 요약 앱의 현재 상태에 따라 수행할 수 있는 작업과 할 수 없는 작업이 결정됩니다. 예를 들어, foreground 앱은 사용자가 집중하고 있기 때문에 CPU를 포함한 시스템 리소스보다 우선합니다. 반대로 백그라운드 앱은 화면 밖에 있기 때문에 가능한 한 적은 작업을 수행해야 하며 가능하면 아무것도 하지 않아야 합니다. 앱이 상태마다 바뀌면 그에 따라 동작을 조정해야 합니다. 당신의 앱의 상태가 변할 떄, UIKit는 당신에게 적절한 delegate object메소드를 호출하여 알려줍니다. iOS 13 버전 이상은 UISceneDelegate objects 를 이용하여 scene-..

개요 프로젝트를 진행하는 중에 앱 내의 데이터를 저장할일이 필요해서 자료를 찾던 도중 UserDefaluts와 CoreData 두개의 방법을 찾게되었습니다. 현재 프로젝트에서는 많은 데이터 저장이 필요없고, CoreData가 다루기 힘들다는 판단을 하여 이번 프로젝트에서는 UserDefaluts를 사용하기로 결정하였습니다. UserDefalutsAn interface to the user’s defaults database, where you store key-value pairs persistently across launches of your app. UserDefaluts란 유저의 데이터를 키 / 값 쌍으로 저장하는 *싱글톤 패턴의 인터페이스 이다.(*싱글톤 패턴: 생성자가 여러 차례 호출되더라도..

앱 시작에 대한 응답 앱의 데이터 구조를 초기화하고, 앱이 실행되도록 준비하며, 시스템의 모든 시작 시간 요청에 응답합니다. 개요 사용자가 홈 스크린에서 앱의 아이콘을 누르면 시스템이 앱을 시작합니다. 앱이 특정 이벤트를 요청한 경우 시스템이 백그라운드에서 앱을 실행하여 해당 이벤트를 처리할 수도 있습니다. 씬(scene) 기반 앱의 경우에도 마찬가지로 씬(scene) 중 하나가 화면에 나타나거나 작업을 수행해야 할 때 시스템이 앱을 실행합니다. 모든 앱에는 UIApplication object가 나타내는 연결된 프로세스가 있습니다. 앱은 또한 UIApplicationDelegate프로토콜을 준수하는 개체인 앱 위임 개체를 가지고 있으며, 이 개체는 해당 프로세스 내에서 발생하는 중요한 이벤트에 응답합니..

개요 Xcode를 실행하고 앱 프로젝트를 새로 만들 떄 Interface에서 선택할 수 있는 SwiftUI와 Storyboard. 이 두개는 어떤 관계이고 어떤 차이가 있을까? Interface 인터페이스는 어플리케이션과 사용자가 소통할 수 있도록 해주는 일종의 시스템입니다. 모바일 디바이스에서는 보통 사용자의 터치, 슬라이드 등의 손동작을 통해 어플리케이션을 제어할 수 있도록 합니다. 버튼, 스위치, 툴바 등이 대표적인 인터페이스입니다. xcode에서 선택할 수 있는 Interface는 유저의 앱 개발환경을 뜻합니다. 유저는 SwiftUI나 Storyboard 둘중 하나를 선택하여 원하는 앱 개발 환경에서 앱을 개발할 수 있습니다. 이 두개의 인터페이스는 다른 계층구조를 가집니다. SwiftU..

개요소프트웨어 개발 방법론은 소프트웨어를 생산하는 데에 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여 프로그래머들이 프로그래밍 개발과정에서 각개인이 개발과정에서의 일관성을 유지하고 프로그래머들간의 효과적인 협업이 이루어질수 있도록 돕기 위한 방법론이다. 애자일 방법론 ‘Agile = 기민한, 날렵한’ 이란 뜻으로 좋은 것을 빠르게 취하고, 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다. 앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 프로세스 모델 방식 폭포수 방법론과 대조되는 소프트웨어 개발 방법론입니다. 폭포수 방법론은 계획 → 분석 → 설계 → 개발 → 시험 → 운영/유지보수 순으로 진행되..

개요각 패러다임은 프로그래머에게서 권한을 박탈한다. 어느 패러다임도 새로운 권한을 부여하지 않는다. 각 패러다임은 부정적인 의도를 가지는 일종의 추가적인 규칙을 부과한다. 즉, 패러다임은 무엇을 해야 할지를 말하기보다는 무엇을 해서는 안 되는지를 말해준다.-Clean Architecture (로버트 C. 마틴) 프로그래밍 패러다임은 프로그래밍의 *패러다임 형태입니다. 프로그래머에게 프로그래밍의 관점을 갖게 해 주고, 결정하는 역할을 합니다.(*패러다임: 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미하는 개념) 우리가 어떠한 프로그래밍 언어를 배울 때 흔히 볼 수 있는 이야기들이 있습니다. 예를들면 C++는 객체 ..