본문 바로가기

iOS (스파르타)/앱 개발 숙련

(8)
RxSwift 공부하기 - 1 RxSwift 를 문법 심화때 맛보기로 했었지만 기억이 안나죠?,,? 진짜 맛보기였던것인가? RxSwift 이해하기RxSwift 는 Reactive Extension + Swift또한 RxSwift Github에서는 Reactive Programming in Swift 라고 나와있다.공통적으로 Reactive, Swift라는 단어가 들어가는데 보면 Reactive는 반응과 관련된 단어이니생각해보면 Swift에 반응을 더한것?! 이라고 생각하면RxSwift라는 것은 Swift를 반응형 프로그래밍 하는 것 반응형 프로그래밍(Reactive Programming)반응형 프로그래밍이란, 데이터 흐름 및 변경사항을 전파하는데 중점을 둔 프로그래밍 패러다임.이 패러다임을 사용할 경우, 주변환경/데이터에 변화가 생길..
MVC 패턴 (Model, View, Controller) MVC 패턴은 Model-View-Controller 패턴의 줄임말으로, 이름 그대로 세 가지 계층으로 각 코드의 책임과 역할을 나눈다. 계층은 각각 Model, View, Controller로 나뉜다. Model은 앱의 데이터와 비즈니스 로직을 갖고 있다.View는 사용자에게 데이터를 보여주거나 UI를 담당한다.Controller는 Model과 View의 중간다리 역할로 View로부터 사용자의 action을 받아 Model에게 어떤 작업을 해야 하는지 알려주거나, Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할지 알려준다. ModelModel은 데이터와 관련된 내용을 담고 있다. 그리고 데이터를 관리하는 로직도 포함하고 있다. 네트워크를 통해 받아온 DTO 구조체와 네트워크..
SceneDelegate.swift 날씨앱 만들기 강의에서 코드베이스로 진행하는데 main 뿐만 아니라 SceneDelegate를 지워주는 걸 봐서 이게 뭐지,, 싶어서 찾아봤다 SceneDelgate를 삭제하는 이유 프로젝트의 간소화- 작은 규모의 앱이나 단순한 앱에서는 SceneDelegate가 필요하지 않을 수 있다. SceneDelegate는 다중 창 지원과 같은 고급 기능을 처리하는 데 사용되지만, 많은 앱에서는 이러한 기능이 필요하지 않다. iOS 13 이전 호환성- SceneDelegate는 iOS 13에서 도입되었다. 만약 앱이 iOS 12 및 이전 버전을 지원해야 한다면, SceneDelegate를 사용하지 않는것이 좋다. (하지만 지금은.. 17.X 시대,,, 이건 이유가 되기엔 불충분해보인다) 간단한 앱 구조- Scen..
날씨 앱 만들기 날씨 앱 만들기 🧑🏻‍💻 URLSession 을 이용해서 서버에서 날씨 데이터를 가져와 띄우는 간단한 날씨 앱을 개발해봅니다.아래 데이터들을 화면에 노출합니다.현재 기온최소 기온최고 기온날씨 이미지UITableView 를 사용한 5일 간 예보  Open Weather API Open 소스 API 란 모두가 사용할 수 있게 공공적으로 열어놓은 API 를 말합니다.Open 소스 API 중 날씨 데이터를 제공하는 Open Weather API 를 사용합니다.https://openweathermap.org/api  사용할 API현재 날씨 API  [ Current Weather Data ]https://openweathermap.org/currentCurrent Weather Data 항목을 보면, 현재 ..
네트워크 통신 이해 네트워크 기본 개념네트워크란 둘 이상의 컴퓨터가 연결되고 소통하는 것을 말한다. 아이폰도 하나의 컴퓨터, 서버도 하나의 컴퓨터로 생각할 수 있기 때문에, 서버와 아이폰과의 통신도 네트워크 통신입니다.인터넷이란 전 세계 컴퓨터를 연결하는 거대한 네트워크를 말합니다.인터넷 연결을 위해서는 와이파이 연결이 되있거나 데이터가 켜져있어야 합니다.Swift 로 서버와 통신하는 코드를 작성할 수 있습니다. (Swift에서 기본 제공해 주는 네트워크 통신용 클래스는 URLSession) JSON 이란 일반적으로 데이터를 표현하는 형식이 있다면, 그걸 따르는 게 좋을 것 같습니다.이렇게 네트워크에서 데이터를 주고받으려면, 아무렇게나 주고 받는 것이 아니라 정해진 형식을 지켜서 데이터를 교환하는 것이 좋습니다.이 중 서버..
CoreData 와 UserDefaults - 일단 강의만 빠르게 수강 수정예정 CRUD 개념일반적인 개발론에서 CRUD 라는 용어는 자주 사용합니다. 뜻은 다음과 같습니다.Create = 데이터 생성Read = 데이터 읽기Update = 데이터 업데이트 (쓰기)Delete = 데이터 삭제데이터 CRUD 는 네이티브 (앱) 내부에서도 일어날 수 있고, 서버에서도 일어날 수 있다. CoreData CoreData 는 앱에서 기기의 디스크에 데이터를 읽고 쓸 수 있게 돕는 프레임워크.Swift 로 기기 내 디스크에 데이터를 저장할 수 있는 대표적인 방법으로는 CoreData 와 UserDefaults 가 있음. (키체인등 다른것들도 있음)
메모리 관리 이해 메모리와 디스크의 차이를 생각해보고 어떤 데이터를 어디에 저장하는게 나을지 생각  Garbage Collector (GC)Garbage Collector 는 메모리 관리를 돕는 시스템 중 하나. 대표적으로 Java 에서 GC 를 사용한다.메모리에서 필요없는 것들을 정리해주는 역할을 한다. 좋은 개발자는 메모리 관리를 신경써서 잘 할 줄 알아야 한다.개발자라면 필수 교양으로 알아야하는 내용.  Reference Counting (RC) 메모리를 할당 받은 객체를 인스턴스라고 한다.예를들어 아래 코드에서 myClass 는 인스턴스가 된 것이다.class MyClass {}// 메모리를 할당받음. 인스턴스.let myClass = MyClass() 인스턴스는 하나 이상의 참조자(소유자 = owner) 가 있어..
ViewController 생명주기 UIViewController 는 UIKit 앱의 뷰 계층을 관리하는 개체이다. 한 개의 페이지는 반드시 한 개의 UIViewController 를 가진다.  ViewController LifecycleloadView 단계 - UIViewController를 만들게 되면 반드시 가지게되는 하나의 ViewviewDidLoad - view 가 메모리에 load가 되었다. viewcontroller의 뷰가 정말로 메모리 위에 올라왔을때 viewDidLoad라는                                          ViewController 생명주기가 호출된다. (메모리에 올라가면 한번만 호출됨)viewWillAppear - view 가 메모리에 Load 되고 그 다음에 유저눈에 보이게 될건..