전체 글 159

[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들을 가지게 되면서 이 각각에 대한 생명..

[iOS] 프로젝트 속성 조사 (PROJECT, TARGETS)

PROJECT Deployment Target 이 앱을 설치할 수 있는 최소 sdk 버전 지정 (안드로이드에서 minimum sdk 지정하는 것과 같은 맥락) 따라서 기기의 점유율에 따라 지정할 필요가 있는데, 아래 페이지에서 점유율이 나와있음. 현재 iOS 14 이상의 기기가 85%정도 차지하고있음 https://developer.apple.com/kr/support/app-store/ App Store - 지원 - Apple Developer App Store App Store에서 Mac, iPhone, iPad, Apple Watch 및 Apple TV용 앱을 쉽게 찾고 구입하고 다운로드할 수 있습니다. 앱을 배포할 준비가 되면, 앱을 빌드하고 App Store에 배포하는 데 필요한 모든 것을 Ap..

[iOS] UIComponent

UIComponent 추가 단축키 -> Shift + Command + L 1) Label == 안드로이드에서 TextView Text / Plain vs attributed : Attributed가 더 다양한 커스텀 텍스트 지원 텍스트의 색을 커스텀하고싶으면, Color -> 맨아래 Custom에서 커스텀하면 지정 가능 사이즈를 조절하고 싶으면 Font 속성에서 조절 2) Button == 안드로이드에서 Button Type 버튼의 동작, 목적을 지정 텍스트 지정은 Title로, Color는 Text Color로 사이즈를 조절하고 싶으면 Font 속성에서 조절 3) Segmented Control == 안드로이드에서 TabLayout Style Plain, Borded, Bar Segment에서 세그먼..

[Android/Kotlin] Gridview를 이용하여 갤러리 & 카메라 구현

1) 우선 다음과 같은 설정 필요 AndroidManifest.xml ... .... =1) { //이미지 부분 눌러서 추가해주는 부분 if (imgBackground.visibility == View.INVISIBLE) { //이미지 처음 누를때 if (selectCount>=5){ //5개 이상인 상태에서 누르면 띄워주고 막기 showCustomToast("사진은 최대 5개 선택할 수 있습니다.") } else { //5개 미만 selectedviewList.add(view) selectCount++ imgBackground.visibility = View.VISIBLE //위에 프레임이랑 순서숫자 보여주는 부분 tvSelectImageCount.visibility = View.VISIBLE imgF..

카테고리 없음 2021.08.20

[Android/Kotlin] 자주쓰는 Retrofit 인터페이스 정리

1) Body가 없는 API // 관심 카테고리 조회 @GET("/users/categories") fun getPickedCategoryList(): Call 2) Body가 있는 API //사용자 카테고리 수정 @PATCH("/users/categories") fun patchCategory(@Body params: PatchCategoryRequest): Call 3) Query, Path Variable //메인 최신순, 인기순 피드 @GET("/categories/{categoryName}/tips") fun getPreviewFeed(@Path("categoryName") categoryName:String, @Query("order") order:String): Call

Android 2021.08.20
반응형