전체 글

Android 주니어 개발자
LiveData LiveData는 관찰 가능한 데이터 홀더 클래스이다. 일반 클래스와 달리 수명주기를 인식한다. Observer 클래스로 표현되는 관찰자의 수명 주기가 STARTED, RESUMED 상태이면 LiveData는 관찰자를 활성 상태로 간주하고, 활성 상태인 관찰자에게만 업데이트 정보를 알린다. LifeCyclerOwner 인터페이스를 구현하는 객체와 페어링 된 관찰자를 등록할 수 있다. 이 관계를 사용하면 관찰자에 대응되는 LifeCycle 객체의 상태가 Destroyed로 변경될 때 관찰자를 삭제할 수 있다. 이는 특히, 액티비티 및 프래그먼트에 유용한데, LiveData를 안전하게 관찰할 수 있고 수명 주기가 끝나는 즉시 수신 거부되어 메모리 누수에 대한 이슈가 없기 때문이다. LiveD..
Behavior changes : Apps targeting Android 13 or higher Android 13 이상을 타겟팅한다면 변경된 동작을 올바르게 지원하도록 앱을 수정해야 한다. developer 사이트를 참고하여 변경된 내용을 정리해 보았다. 아래에 정리된 내용 외에 다른 내용도 있지만, 현재 프로젝트에서 필요한 부분들만 정리했다. 추가적인 부분은 developer 사이트를 참고하자. 1. 알림 권한 이전에는 앱을 설치하면 기본적으로 알림을 띄우는 게 가능했지만, API 33 이상에서는 Notification 런타임 권한이 추가되었고, 위 권한으로 앱의 알림 발송을 사용자가 제어할 수 있도록 변경되었다. Permission에 POST_NOTIFICATIONS을 통해 사용자에게 permis..
데이터 바인딩이 가장 중요하다고 느껴서 따로 작성해보았다. 데이터 바인딩 외에 뷰에 대한 접근은 아래의 링크 참고~ https://ystech.tistory.com/entry/Android-View-%EC%A0%91%EA%B7%BC [Android] View 접근 서론 보통 지금까지 개발을 하면서, Android 클래스에서 뷰에 접근하려고 할 때 findViewById 방식을 사용해 왔다. 위의 방식을 사용하면서 접근해야 할 View가 많아지면 코드의 양도 많아지고 불편했 ystech.tistory.com 데이터 바인딩이란? 데이터와 뷰를 연결하는 작업을 레이아웃에서 처리하는 기술 UI Controller, ViewModel, LiveData 등과 자주 쓰이고 효과적 레이아웃은 흔히 UI 프레임워크 메서..
· CS 지식
Cookie란? 웹 서버가 웹 브라우저에게 보내어 저장했다가 서버의 부가적인 요청이 있을 때 다시 서버로 보내주는 문자열 정보 웹 페이지 방문 시 방문 기록 등 브라우저에서의 정보들이 저장된 텍스트 파일 데이터 형태는 Key, Value 형태로 String 형식 쿠키는 서버를 대신해 웹 브라우저에 저장하고 요청할 때 해당하는 정보를 서버에 보내 사용자를 식별할 수 있게 한다. 보통, 로그인 상태를 유지하고 사이트 환경설정을 기억하는 등 웹사이트와 관련된 작업을 할 때 사용된다. Android에서의 Cookie 활용 안드로이드에서 쿠키를 활용할 때는 Webview로 보여주는 사이트의 쿠키를 제어하려고 할 때이다. 안드로이드에서는 Webview 인스턴스에서 사용하는 쿠키를 CookieManager를 통해 관..
URI Scheme 방식은 Android와 Ios에서 모두 사용 가능한 딥 링크 수단이다. 딥링크란? 딥 링크는 홈페이지가 아닌 홈페이지 내에 특정 화면에 한 번에 도달할 수 있는 링크이다. 예를 들면, 네이버 웹툰의 BaseUrL : https://comic.naver.com/webtoon/weekday 네이버 월요 웹툰 URL : https://comic.naver.com/webtoon/weekdayList?week=mon 네이버 웹툰 매일매일 새로운 재미, 네이버 웹툰. comic.naver.com 네이버 웹툰 매일매일 새로운 재미, 네이버 웹툰. comic.naver.com 위의 BaseUrL이 네이버 웹툰의 일반 링크라면, 아래의 월요웹툰에 해당하는 URl이 딥링크라고 볼 수 있다. 오늘 정리해..
1. WebView란? WebView는 웹 애플리케이션 또는 웹페이지만 클라이언트 애플리케이션의 일부로 제공하려는 경우에 사용하고, Android View 클래스의 확장으로 웹페이지를 활동 레이아웃의 일부로 표시할 수 있게 해 준다. WebView의 모든 작업은 기본적으로 웹페이지를 표시하는 것이다. 쉽게 설명하자면, 앱 안에 웹 브라우저를 넣는 개념으로 생각하면 된다. WebView는 우리가 흔히 말하는 하이브리드앱(웹앱)을 구현할 때 많이 사용한다. 2. WebView의 사용법 xml java WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.loadUrl("불러오려는 웹페이지의 URL"); manifest ... 위 코드는 앱이..
ViewModel이란? ViewModel은 비즈니스 로직 또는 화면 수준 상태 홀더이다. UI에 상태를 노출하고 관련 비즈니스 로직을 캡슐화한다. ViewModel을 사용하게 되면 Activity 간에 이동하거나 화면 전환을 따를 때 UI가 데이터를 다시 가져올 필요가 없다. 이러한 ViewModel은 위 클래스를 사용하지 않고, 일반 클래스로도 구현이 가능하다. 그러나 이는 Activity와 탐색 대상 간에 이동할 때 문제가 될 수 있다. 인스턴스 상태 저장 메커니즘을 사용하여 데이터를 저장하지 않을 경우 해당 데이터가 소멸된다. 이러한 점을 해결하기 위해 ViewModel은 데이터 지속성을 위한 편리한 API를 제공한다. ViewModel의 이점 UI 상태를 유지할 수 있다. 비즈니스 로직에 대한 액..
서론 보통 지금까지 개발을 하면서, Android 클래스에서 뷰에 접근하려고 할 때 findViewById 방식을 사용해 왔다. 위의 방식을 사용하면서 접근해야 할 View가 많아지면 코드의 양도 많아지고 불편했다. 자바로만 안드로이드 개발을 하다 새롭게 코틀린을 접하게 되면서 바인딩이라는 개념에 대해 접하게 되었는데, findViewById의 방식보다는 어렵지만 필요성을 느껴 정리해보려고 한다. View 접근 가장 흔하게 사용해왔던 방식인, findViewById에 관해 먼저 이야기해 보자면, xml 파일(Layout)에서 뷰에 Id를 설정해준 뒤 소스에서 그 Id를 통해 접근하는 방식이다. TextView text1 = findViewById(R.id.text1); TextView text2 = fi..
· Kotlin
Array Array는 메모리의 연속적인 공간을 차지하고 있는 정적인 자료구조로 생성 시 크기를 지정해야 하고, 생성한 이후에는 크기의 조절이 불가능하다는 특징을 가진다. 특징 Array는 Random Access가 가능해 검색 속도가 빠르다. Array 생성 후에는 크기 조절이 불가능하다. Array에 값을 추가하려면 새로운 Array를 만들어 추가하려는 값과 함께 이전 Array의 값들을 복사 붙여 넣기 해야 한다. 즉, 이미 생성된 Array를 사용하는 것이 아닌 새로운 Array를 만들어야 한다는 것이다. Array 생성 arrayOf : 값을 직접 입력하여 배열을 생성하는 방식. Array의 크기가 입력된 값에 따라 정해진다. val arr : Array = arrayOf(1,2,3) // {1..
· Kotlin
코틀린을 공부하다 보니 클래스와 함수 부분에서 자바와의 차이점이 생각보다 많았다. 헷갈리지 않게 정리해보려고 한다. 1. 클래스(Class) / 프로퍼티(Property) public class Animal( private String name; //setter public void setName(String name) { this.name = name; } //getter public String getName() { return name; } ) 흔히 자바에서 사용하던 코드이다. 자바에서는 클래스와 함께 getter/setter를 사용할 경우 변수가 많아질수록 코드가 길어지고 복잡해질 수 있다. 하지만, 코틀린에서는 간단하게 표현이 가능하다. class Animal(val name: String) 자..
빡수수
하나,둘 차근차근