Android/Theory 7

[안드로이드] 수명 주기 인식요소가 뭔데? - Lifecycle, LifecycleOwner

수명 주기 인식 구성요소. 안드로이드 개발자 공식 문서에서 Lifecycle-Aware Components 을 이렇게 번역하고 있습니다. 그런데 Lifecycle-Aware 컴포넌트가 정확히 뭘까요? Lifecycle-Aware 컴포넌트란? 먼저 정의부터 바로 하겠습니다. Activity 나 Fragment 같은 다른 컴포넌트의 `Lifecycle` 이 변경될 때 이에 대응하는 컴포넌트. 이 컴포넌트는 `lifecycleOwner` 의 상태 변화를 `observe` 해서 필요한 작업을 스스로 할 수 있다. (이때 컴포넌트는 안드로이드 component 만을 의미하는 게 아닌, 자신의 역할을 할 수 있는 컴포넌트를 의미함) 일반적인 패턴에서는 액티비티나 프래그먼트의 lifecycle 메서드 내에서 데이터를..

Android/Theory 2023.10.18

MVC, MVP, MVVM 봐도 봐도 조금씩 헷갈리면 모르는 거임

안드로이드에서 유명한 패턴인데 봐도 봐도 조금씩 헷갈리는 것 같아서 제대로 정리를 할 필요성을 느껴 정리합니다. MVC(Model - View - Controller) 패턴 MVC 패턴은 다른 소프트웨어 개발에서 많이 사용되는 디자인 패턴입니다. 당연히 안드로이드 앱 개발에서도 많이 사용됩니다. MVC 패턴은 앱을 세 가지의 주요 컴포넌트로 나누어서 관리하며, 각 컴포넌트는 다른 역할을 수행합니다. Model - MVC Model 은 데이터와 데이터 관련 로직을 포함하는 컴포넌트. 데이터는 앱의 핵심 데이터나 상태. 안드로이드 앱에서의 Model 은 데이터베이스나 네트워크 요청 결과, 앱의 상태 등을 포함할 수 있음. Model 은 주로 데이터를 가져오고 저장하며, 데이터의 유효성 검증을 하고 가공할 수..

Android/Theory 2023.10.02

Android Room, SQLite 기본

Room Room 지속성 라이브러리는 SQLite에 대한 추상화 계층을 제공하여 SQLite의 모든 기능을 활용하면서 보다 강력한 데이터베이스 액세스를 허용한다. 즉, 완전히 새로운 개념은 아니고 SQLite 을 활용하여 객체 매핑을 해주는 역할을 한다. https://developer.android.com/jetpack/androidx/releases/room?gclid=CjwKCAjwvNaYBhA3EiwACgndgjDo15TYN8-tpyBN9fm_rwUN_Q2ZFcmD4ccl-ITc9LllTLDPsLWQsRoCZGYQAvD_BwE&gclsrc=aw.ds#groovy What is SQLite? https://onlyfor-me-blog.tistory.com/271 [Android] SQLite 사용법..

Android/Theory 2022.09.06

Android SharedPreference

SharedPrefernce Context.gethsharedPreference(String, int) 로 리턴된 preference을 접근하고 수정하는 인터페이스. 특정 집합에 대해 모든 클라이언트가 공유하는 이 클래스의 단일 인스턴스가 있다. 즉, 이것은 싱글톤 패턴과 연관이 있다!! SharedPreference 는 데이터를 파일로 저장하는데 이 파일은 앱 폴더 내에 있다. 앱이 삭제되기 전까지 저장한 데이터가 보존된다. data/data/(패키지 이름)/shared_prefs/SharedPreference 기본 설정값이 유지되고, 수정을 하고자 하면 저장소에 commit될 때 Editor 개체를 통과해야 한다. 다양한 get 메서드로 리턴될 수 있다. 이 때 응용 프로그램에서 변경할 수 없는 것으..

Android/Theory 2022.09.05

Android Thread, Handler, Runnable

이번에는 Android 에서의 Thread, Handler, Runnable 에 대해서 알아봅니다. 사실 작년에 프로젝트를 할 때도 자주 사용되는 기능이고, 또 클론 코딩 등 공부를 하면서도 자주 사용했지만 이번에도 누군가 저에게 완벽하게 설명해보라 하면... 자신이 없어서 꼭 한 번 정리해보고 싶었습니다. 포스팅을 읽다보면 뒤의 내용이 조금씩 앞에 나올 수도 있지만 끝까지 쭉 읽어보면 이해가 될 겁니다! 그럼 Thread 부터 봅시다.Thread (스레드)Thread는 프로세스 내에서 “순차적으로 실행되는 실(실행 흐름)" 의 최소 단위이다.안드로이드 앱에서는 메인 스레드는 메시지 큐 수신을 기다리는 루프를 실행하고, 사용자 입력, 시스템 이벤트, 화면 그리기 등의 메시지가 수신되면 각 메시지에 매핑된..

Android/Theory 2022.09.03

Intent는 택배 상자!

Intent Intent 은 메시징 객체(택배 박스📦)이며 다른 앱 컴포넌트로부터 작업을 요청하는데 사용할 수 있다. 크게 세 가지 사용 사례가 있다. 액티비티 시작 이전 포스팅에서 나왔듯이 액티비티의 새로운 인스턴스를 시작하기 위해 Intent 을 startActivity() 로 전달한다. 액티비티가 완료되었을 때 결과를 받으려면 startActivityForResult() 을 호출한다. 액티비티는 해당 결과를 이 액티비티의 onActivityResult() 콜백에서 별도의 Intent 객체로 받는다. 서비스 시작 Service은 사용자 인터페이스 없이 Background에서 작업을 수행하는 구성 요소이다. Android 5.0 (API 레벨 21) 이상부터는 JobScheduler 로 서비스를 시작할..

Android/Theory 2022.08.28

Activity LifeCycle (액티비티 생명주기)

Activity LifeCycle(액티비티 생명주기) 작년 2021년에 처음으로 kotlin 언어를 이용한 Android 개발을 시작할 때 액티비티 생명주기를 공부했다. 그리고 올해 상반기에 Swift 언어를 이용한 iOS 개발을 공부하면서 굉장히 많이 잊어버렸다..... 그래서 다시 공부를 해야할 필요성을 느꼈고 이 블로그에 제대로 정리하며 공부할 예정이다. 공부를 이미 한 내용일 것이니까 금방 정리할 수 있을 거라고 기대하면서.... ^^; 아래는 공부하며 참고한 링크이다. https://bbaktaeho-95.tistory.com/62https://thinkground.studio/android-액티비티-생명주기-activity-lifecycle/https://brunch.co.kr/@mystory..

Android/Theory 2022.08.27