전체 글 204

[iOS/Swift] 사이드프로젝트 버그 정리

1. 처음 회원가입 후 진입시에 API가 동작하지 않는 현상 - 원인 : API에 사용되는 헤더(jwt값)가 'static' 즉 정적변수이기때문에 프로그램 처음 실행할 때 한 번 값이 할당된 이후에는 값이 바뀌지 않음 reference : https://wikidocs.net/228 07-03 정적(static) 변수와 메소드 이번에는 스태틱(static)에 대해서 알아보자. [TOC] ## static 변수 예를 들어 다음과 같은 HouseLee 클래스가 있다고 하자. *Sample. ... wikidocs.net - 해결 : 앱 실행 후에 회원탈퇴 후 재가입 혹은 기타 계정으로 로그인하는 경우까지 고려해야하므로 정적이 아닌 동적 변수로 선언 후 동적으로 값 할당 2. 텍스트필드가 키보드에 의해 가려지..

[iOS/Swift] Tableview/Collectionview 페이징 (Pagination)

1) UIScrollViewDelegate - TableView, CollectionView에는 스크롤이 내장되어있으므로 UIScrollViewDelegate 이용이 가능하다. 현재 테이블뷰/스크롤뷰가 있는 UIViewController에 UIScrollViewDelegate를 상속한다. 2) 필요 변수 - arraylist : 무한스크롤하여 불러올 데이터를 담을 array list 준비 -> 초기에는 빈 리스트 - pageNum : API의 pageNumber 변수 - fetchingMore : 더 스크롤하여 데이터를 불러올지에 대한 boolean 변수 -> 초기에는 true 값 3) scrollViewDidScroll 함수 그 다음, scrollViewDidScroll 함수에서 스크롤이 끝까지 닿았는..

[Android] MVVM + Coroutine + Retrofit

MVVM + Retrofit + Repository의 전체적 구조 MVVM은 뷰 관련 로직이 ViewModel에 종속되는 패턴이다. 즉 UI 관련 데이터가 ViewModel에 있고 뷰는 이 뷰모델을 관찰(observing)하면서 변화하는 내용들을 업데이트한다. ViewModel은 뷰에 사용되는 데이터를 요청하면, Repository는 Room (내부 Database) 혹은 Retrofit이 네트워크를 통해 통신한 내용을 ViewModel에 전달해주는 방식이다. 그래서 이 내용을 Retrofit을 통해 API 통신하는 부분에 적용하면 다음 절차로 진행된다! 1. 레트로핏 인터페이스를 생성하고, API를 통신한 결과를 response 모델로 반환하도록 해둔다. 2. 해당 인터페이스를 통해 데이터를 가져오는 ..

🤖 Android 2021.11.03

[Android] Reactive Programming, Rxjava/Rxkotlin/RxAndroid이란?

Reactive Programming이란? 주변환경과 끊임없이 상호작용하면서, 환경이 변하면 이벤트를 받아 동작하는 프로그래밍 Q. 왜 사용하는가? → 비동기 프로그래밍이랑 밀접한 관련이 있음 메인스레드에서 데이터를 불러온다거나, 서버와 통신한다거나 등의 무거운 작업은 별도의 스레드로 분리하여 실행해야함. 즉 처리가 다 될때까지 기다리는것이 아닌 비동기 작업을 해주어야함 AsyncTask로도 가능하지 않은가? → AsyncTask는 공식적으로 deprecated됨. Q. 명령형 프로그래밍과 어떻게 다른가? 명령형 프로그래밍은 코드가 작성된 순서대로 실행됟는거고 리액티브 프로그래밍은, 데이터의 흐름을 먼저 정의하고 데이터가 변경되었을때 연관되는 함수나 메소드가 그때그때 업데이트되는 방식 따라서 손쉬운 비동..

🤖 Android 2021.10.19

[Android] MVVM, LiveData, ViewModel, Databinding 프로젝트에 적용

build.gradle val lifecycle_version = "2.4.0-rc01" // ViewModel implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version") // LiveData implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version") https://developer.android.com/jetpack/androidx/releases/lifecycle?hl=ko#declaring_dependencies Lifecycle | Android 개발자 | Android Developers Lifecycle 수명 주기 인식 구성요소는..

🤖 Android 2021.10.19

[Android] MVVM / LiveData, ViewModel, Databinding / AAC - 개념

MVVM 패턴이란? Model - View - ViewModel 이 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴 MVC 패턴과 어떤 차이가 있는가? 안드로이드의 초기 프로젝트 디자인 패턴은 MVC 패턴(Model - View - Controller)이다. MVC 패턴에서는 Controller가 짱이다. 거의 모든 역할을 다한다! 그리고 안드로이드에서 Controller는 Activity에 해당한다. MVC 패턴에서의 Controller는 사용자의 액션과 요청을 가장 먼저 받아서 Model과 View에 작업 처리를 명령하는데, Activity는 View이자 사용자의 요청을 처리하는 Controller이기 때문에 액티비티가 굉장히 무거워지는 현상이 발생한다. MVVM 패턴은, 뷰와 컨트롤러가..

🤖 Android 2021.10.15

[iOS] 뷰 컨트롤러 생명주기 / 앱 생명주기

뷰 컨트롤러 생명주기 - 하나의 뷰 컨트롤러가 생겨나고 종료되기 전까지의 주기 1. loadView - 뷰컨트롤러가 관리하는 뷰를 메모리에 올리는 시점 - 뷰컨트롤러는 스토리보드상에서 혹은 xib로 연결된 뷰가 있다면 해당 뷰를 불러오고, 코드로 짠 뷰가 있다면 해당 뷰로 바꿀 수 있는 시점 2. viewDidLoad - 프로젝트 생성시 디폴트로 생기는 메소드 -> 뷰의 로딩이 완료되었을 때 시스템에 의해 자동으로 호출 - 딱 한번만 실행되는 메소드 -> 뷰 컨트롤러에서 초기화 필요한 속성들 초기화 시 사용 3. viewWillAppear - 뷰가 화면에 보이기 직전에 호출되고 여러번 호출됨 - 1) 처음 화면에 진입할 때 2) 다른 뷰컨에 갔다가 다시 돌아올때 호출 4. viewDidAppear - 뷰..

[iOS] Swift에서 데이터를 전달하는 방법

1. 프로퍼티에 직접 접근해 data 전달하기 - 네비게이션 컨트롤러에서 데이터를 전달하는 방식 - 프로퍼티란? : 클래스에 속해있는 변수 ViewController (첫번째 화면) import UIKit class ViewController: UIViewController { @IBOutlet weak var propertyTextField: UITextField! //텍스트필드의 변수를 가져와서 @IBAction func sendData(_ sender: Any) { guard let vc = storyboard?.instantiateViewController(identifier: "secondViewController") as? SecondViewController else { return } vc..

[iOS] AppDelegate, SceneDelegate (+UIWindow, UIScene, UIWindowScene)

iOS 생명주기의 변화 (WWDC 19) iOS 12버전 이전 iOS의 App Delegate에서 lifecycle은 2가지로 나뉨 - Process Lifecycle : process 수준에서의 event를 알려줌 -> process가 실행되려고 하는지 종료하려고 하는지에 대한 정보 - UI Lifecycle : UI의 상태를 알려줌 -> 포그라운드에 있는지, 액티브 상태인지, 백그라운드 상태 인지 ... 이 당시에는 앱은 하나의 프로세스와 하나의 UI 상태만 존재했기에 이 구조가 가능했다. iOS 13버전 이후 (multi window가 지원되기 시작한 이후) iOS 13 버전에서 멀티 윈도우를 지원하면서 (즉 1개 이상 다수의 UI나 Scene session들을 가지게 되면서 이 각각에 대한 생명..

반응형