Dex (5)
앱 실행 시 데이터 자동 로드 지금까지는 사용자가 + 버튼을 눌러야만 1번부터 151번까지의 포켓몬 데이터를 가져올 수 있었다. 이제는 앱 실행 시점에 자동으로 데이터를 불러오도록 해보자. UIKit을 사용해봤다면, 이 시점에서 자연스럽게 ViewController 생명주기를 떠올렸을 것이다. 대부분은 viewDidLoad에서 데이터를 불러오는 ...
앱 실행 시 데이터 자동 로드 지금까지는 사용자가 + 버튼을 눌러야만 1번부터 151번까지의 포켓몬 데이터를 가져올 수 있었다. 이제는 앱 실행 시점에 자동으로 데이터를 불러오도록 해보자. UIKit을 사용해봤다면, 이 시점에서 자연스럽게 ViewController 생명주기를 떠올렸을 것이다. 대부분은 viewDidLoad에서 데이터를 불러오는 ...
Fetch struct FetchService { enum FetchError: Error { case badResponse } private let baseURL = URL(string: "https://pokeapi.co/api/v2/pokemon")! func fetchPokemon(...
이전 글에서 모델 구조와 CodingKeys를 정리했으니, 이번에는 직접 init에서 decoding을 더 자세히 알아본다. 코드 분석 이제 Json 구조와 함께 코드를 보면서 알아보자 Json 구조의 경우나머지는 생략하고 필요한 부분만 가져온다. 코드 역시도 필요한 부분만 가져오도록 한다. 이때 둘다 //생략 이라는 주석은 빼고 적도록 하겠...
CoreData로 부터 Fetch 그전에 Controller에서 마지막 부분에 container.viewContext.mergePolicy = NSMergePolicy.mergeByPropertyStoreTrump MergePolicy를 추가해주자. Docs 참고 Merge Policy 설명 우...
이번엔 CoreData를 사용하는 프로젝트이다. 물론 이전에 나름 열심히 글을 작성했던 적이 있다. 다시 한번 읽어보면 좋을듯 다시 돌아와서 뭐 알겠지만 프로젝트를 생성할때 이렇게 Storage에서 미리 선택을 하여 프로젝트 생성이 가능하다. 그러면 기본적으로 코드가 자동으로 생성이 된채로 프로젝트가 만들어지게 된다. 그리고 이번...
Version 2로 업그레이드 이어서 계속 작성해보도록 한다 4. Extenstion을 사용하여 코드 간소화 현재 Image(show.lowercased().replacingOccurrences(of: " ", with: "")) 이런식으로 코드가 약간 길어지는것을 Extension을 활용하여 조금 간소화를 해보도록 한다. 이렇게 Extens...
Version 2로 업그레이드 이제 이렇게 조금 더 개선을 해보려고 한다. 그리고 기능은 위의 내용을 기반으로 하려고 한다. 우선 이미지와 samplejson 파일을 추가해주고 Color set도 추가를 해준다. 우리가 할것은 Version 2 Feature List: Add El Camino tab Utilize all...
Button에 Fetch 기능 적용하기 이제 비어있던 Button에 Fetch가 가능하도록 적용하자 Button { Task { await vm.getData(for: show) } } 뭐 이건 많이해봤지만 await는 단독으로 사용 될수 없기에 Task가 반드시 필요하다. 작동이 잘 되는걸 알 수 있다. status 따라 작동을...
실제 값을 가져오는 함수 만들기 class ViewModel { // 생략 func getData(for show: String) async { status = .fetching do { quote = try await fetcher.fetchQuote(from...
이번 내용도 아는건 최대한 간략하게 하고 과정을 적어본다. TabView 사용하기 이번엔 새로운 프로젝트 앱을 만들면서 TabView를 사용해본다. 이전에 많이 사용해봐서 뭐 딱히 적을만한건 없어보이긴한다. var body: some View { TabView { Tab("Breaking Bad", systemImage: ...