안드로이드 (8) 썸네일형 리스트형 [Android/안드로이드] Context란? 1. 공식문서 정의 안드로이드 공식 문서의 context의 정의부터 살펴보자. Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 여기서 눈여겨 봐야할 부분은 크게.. [Android/안드로이드] Fragment ( 프래그먼트 ) 정리 프래그먼트의 정의 및 생명주기에 대한 부분은 앞서 포스팅한 게시글을 참조하시면 됩니다. [Android/안드로이드] Activity/Fragment 생명 주기 1. Activity 생명 주기 액티비티의 생명 주기는 7가지로 구성되어 있다. 아래에서 각각의 생명 주기에 대해 알아보자. 1-1) onCreate() 액티비티의 생명 주기가 진행되는 동안 초기화되어 있어야 하는 leehochang.tistory.com 1. FragmentManager 액티비티내에서 프래그먼트를 관리하는 객체이다. Fragment Transaction을 통한 프래그먼트 추가, 삭제, 교체 등 작업을 할 수 있다. 또한 백 스택에 추가, 삭제 등의 작업도 가능하다. 1-1) FragmentManager 접근 액티비티에서 접근 ge.. [Android/안드로이드] Activity/Fragment 생명 주기 1. Activity 생명 주기 액티비티의 생명 주기는 7가지로 구성되어 있다. 아래에서 각각의 생명 주기에 대해 알아보자. 1-1) onCreate() 액티비티의 생명 주기가 진행되는 동안 초기화되어 있어야 하는 로직을 정의한다. ex) data binding, viewmodel 연결, 클래스 변수 인스턴화 등 또한 savedInstanceState 매개 변수를 수신할 수 있다. 이 매개 변수는 이전 state를 포함하고 있는 bundle 객체이다. 1-2) onStart() 액티비티가 사용자에게 표시되는 시점에 호출된다. 즉, 액티비티를 포그라운드로 보내 상호작용할 수 있는 준비를 하는 시점이다. 해당 생명주기에서는 UI 관리 코드의 초기화 처리 등을 하기에 적합하다. 1-3) onResume() 실.. [Android/안드로이드] 왜 MVP/MVVM을 사용해야 하는가? (feat. mvc,mvp,mvvm, acc를 활용한 mvvm 구현 예제 ) 1. MVC 패턴이란? mvc 패턴은 간단하게 말하면 model - view 사이에 컨트롤러가 둘의 사이에서 커뮤니케이션할 수 있도록 해주는 패턴이다. 각각의 역할에 대해 정리하면 아래와 같다. model : 비즈니스 로직 view : ui 로직 controller : flow 로직 컨트롤러의 역할은 model과 view에 있는 단위별 메소드들을 이용하여 레고를 조립하듯이 flow 로직을 짜는 것이다. 또한 에러 발생시에도 어떻게 뷰에 보여줄지 결정해서 넘겨주게 된다. 2. 왜 안드로이드에선 MVC 패턴이 적용되지 않는가? 첫째로 view-controller를 분리하는 것이 애매하다. 만약 view : xml로 두고 activity를 controller로 둔다고 가정하자. 이 경우 activity가 너무.. 안드로이드 단위 ( px, dp, sp, mm, in ) 1. px 보통 해상도를 말할 때 ( 1024 X 768 ) 사용하는 단위 문제점) 각 디바이스 마다 PPI ( Pixel Per Inch) 즉, 1인치에 들어가는 픽셀수가 다르다. 그래서 px로 단위를 설정하게 되면 PPI에 따라 뷰의 크기게 다르게 보인다. 이러한 문제점을 해결하기 위해 나온 단위가 dp이다. 2. dp (Density independent Pixels ) 기기의 PPI와 관련없이 시각적으로 동일하게 그려질 수 있는 단위 dp로 값을 지정하게 되면 런타임 과정에서 기기의 dpi에 따라 픽셀을 확대/축소하게 된다. 기준은 160dpi의 1px을 기준으로 잡는다. 공식 : px = dp * (dpi / 160) 3. sp ( Scale independent Pixels ) 텍스트의 크기 .. [Android/안드로이드]LiveData 기본 예제 이전 게시글 1) [Android/안드로이드]DataBinding 기본 예제 1. gradle(app) android{ dataBinding{ enabled=true applyplugin:'kotlin-kapt'//코틀린 사용시 추가 } } 2. xml 으로 감싸주기 3. 코드 작성 class MainActivity : AppC.. leehochang.tistory.com 이전 게시글 2) [Android/안드로이드]ViewModel 기본 예제 이전 게시글 :https://leehochang.tistory.com/5 3. 코드 작성 class MainActivity : AppC.." data-og-host="leehochang.tistory.com" data-og-source-url="https://le.. [Android/안드로이드]ViewModel 기본 예제 이전 게시글 :https://leehochang.tistory.com/5 [Android/안드로이드]DataBinding 기본 예제 1. gradle(app) android{ dataBinding{ enabled=true applyplugin:'kotlin-kapt'//코틀린 사용시 추가 } } 2. xml 으로 감싸주기 3. 코드 작성 class MainActivity : AppC.. leehochang.tistory.com 이전 DataBinding의 문제점을 해결할 ViewModel에 대해서 알아보겠습니다. 1. 필요성 viewModel의 생명주기는 Activity가 완전히 없어질 때 소멸된다. 즉, 생명주기와는 독립적인 scope를 가진다. 그래서 화면 전환 등에 따른 데이터 초기화가 일어나던 현.. [Android/안드로이드]DataBinding 기본 예제 1. gradle(app) android{ dataBinding{ enabled=true applyplugin:'kotlin-kapt'//코틀린 사용시 추가 } } 2. xml 으로 감싸주기 3. 코드 작성 class MainActivity : AppCompatActivity() { var count : Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val binding : ActivityMainBinding = DataBindingUtil.setContentView(this,R.layout.activity_ma.. 이전 1 다음