분류 전체보기 (85) 썸네일형 리스트형 SharedPreference 1) 특징SharedPreference는 데이터를 저장하고 검색하는 데 필요한 간단한 메서드들을 제공하여 쉽게 사용할 수 있다. 고유한 키-값 형식으로 각 데이터는 저장되고, 해당 키를 사용하여 나중에 데이터를 검색할 수 있다. 그러나 복잡한 데이터들을 저장하는 데는 적합하지 않고 SharedPreference에 저장된 데이터는 해당 앱에서만 사용할 수 있다. 2) 장점빠르고 쉽게 데이터를 저장하고 검색할 수 있어서 앱 설정, 사용자 설정과 같은 데이터를 저장하기에 적합하다. 앱이 종료된 후에도 SharedPreference에 저장된 데이터는 유지되기 때문이다. 3) 단점암호화된 데이터를 저장해야 하는 경우 그리고 데이터 용량 제한으로 복잡한 데이터 구조를 저장하기에 적합하지 않다. 그 경우 SQLite.. Companion Object & Object Companion Object와 Object는 모두 특별한 유형의 객체이지만 다음과 같은 차이가 있다.- Companion Object:클래스 내부에 선언되는 객체이다. 해당 클래스의 인스턴스와 무관하게 클래스 자체에 속한 멤버 변수나 메서드를 가질 수 있다. 클래스의 정적인 요소를 표현하기 위해 사용되고 Java의 정적 멤버와 유사한 역할을 한다.class MyClass { companion object { const val MY_CONSTANT = "Hello" fun myFunction() { println("My function is called") } }}- Object:단일 인스턴스로 존재하는 싱글톤 객체를 클래스 없이 정의할.. ListAdapter ListAdapter는 DiffUtil을 사용하여 새로운 데이터 세트와 이전 데이터 세트의 차이를 계산하여 RecyclerView가 효율적으로 갱신되고 성능이 향상된다. RecyclerView Adapter를 직접 구현하는 것보다 더 간단하게 RecyclerView를 구현할 수 있다. 데이터가 변경될 때마다 ListAdapter는 내부적으로 자동으로 DiffUtil.Callback을 구현하므로 효율적인 UI 업데이트를 제공한다. 따라서 데이터 변경을 처리하는 데 있어서 많은 편의성을 제공한다. ListAdapter는 ViewHolder를 재사용하기 위하여 내부적으로 구현된 onBindViewHolder() 메서드를 제공한다. 항목의 위치를 인수로 받아서 해당 항목의 데이터만을 업데이트하므로 전체 목록을 .. [과제] 피드백 (앱 개발 숙련) 1) 리사이클러뷰 아이템 레이아웃 화면 꽉 채우기 android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="parent" tools:listitem="@layout/item_layout" /> 2) @Parcelize 사용하기 build.gradle (Module: app) plugins { id("kotlin-parcelize") // 추가 } 3) ItemAdapterViewHolder는 inner 아닌 단순 class로 작성.NO_POSITION보다는 item이라는 변수를 nullable하게 만들어서 null이 아닐 때만 클릭 동작이 가능하도록 설정.class .. [숙련 프로젝트] 회고 - 발표 피드백 시연 영상에는 실제 데이터가 들어가야 함. 선택과 집중을 잘 했음. 디테일 페이지를 액티비티로 한 것이 인상깊었음. - Keep 팀원들 사이의 소통이 정말 좋았다. 프로젝트 기능 구현에 관한 것 외에도 일상적 소통도 많이 하니 결국 프로젝트 수행에도 도움이 되었다. 선택 기능 구현에 대한 아쉬움이 없는 것은 아니었지만, 무리하지 않고 필수 기능과 전체 로직을 팀원 모두가 공부하고 이해하는 시간을 가졌던 것이 성장에 더 도움이 된 것 같다. 그 과정에서 안드로이드 개발 일반에 대하여 두루 이야기할 수 있었다. - Problem & Solution 앱의 UI에 조금 아쉬움이 남았다. 현업에서 디자이너의 도움을 받는다고 해도 UI를 잘 만드는 능력을 가지고 있으면 나쁠 것은 없다. ViewM.. Retrofit https://develop-oj.tistory.com/21#google_vignette [Android] 안드로이드 Retrofit(레트로핏) 사용법 - 경기도데이터드림 OPEN API 사용해보기Retrofit 이란? 안드로이드에서 Retrofit은 서버와 클라이언트 간 HTTP API 통신을 할 때 사용하는 라이브러리입니다. REST API 기반의 웹 서비스를 통해 JSON 구조의 데이터를 쉽게 가져오고 업로드할 수develop-oj.tistory.com https://velog.io/@ouowinnie/%EA%B0%9C%EB%85%90-%EB%A0%88%ED%8A%B8%EB%A1%9C%ED%95%8F-Retrofit [Kotlin 개념] 레트로핏 (Retrofit)안드로이드 개발 시 서버통신에 사용.. MVP -> MVVM MVP(Model-View-Presenter) 아키텍처를 MVVM(Model-View-ViewModel) 아키텍처로 변환하는 것은 그리 복잡하지 않다. 그러나 MVP와 MVVM은 각각의 특성을 가지고 있으므로 완전히 같은 것으로의 변환은 어렵지만 일반적인 절차는 다음과 같다. - View 수정 MVP에서는 View가 Presenter를 직접 참조하지만 MVVM에서는 View가 ViewModel을 참조한다. 따라서 View를 수정하여 Presenter 대신에 ViewModel을 참조하도록 변경한다. - ViewModel 생성 / Model 변경 없음 MVVM에서는 각 View에 대해 ViewModel이 존재해야 한다. ViewModel은 View의 데이터와 상태를 관리하고 View와의 상호 작용을 책임진다.. Data & Business Logic - Data Logic 데이터 로직은 소프트웨어에서 데이터를 처리, 저장, 검색 및 관리하는 데 사용되는 규칙과 절차를 정의한다. 데이터베이스 관련 작업, 데이터의 유효성 검사, CRUD(Create, Read, Update, Delete) 작업 등이 데이터 로직에 해당한다. 데이터베이스와의 상호 작용에 대한 로직을 포함하며 데이터 저장소에서 필요한 정보를 가져오는 등의 작업을 수행한다. - Business Logic 비즈니스 로직은 소프트웨어에서 특정 업무 또는 비즈니스 프로세스를 구현하는 데 사용되는 규칙과 절차를 정의한다. 사용자의 요청에 따라 데이터를 처리하고 다른 시스템과의 상호 작용을 조절하며, 애플리케이션의 핵심 기능을 구현한다. 업무 규칙 및 정책을 포함하며, 소프트웨어가 수행해야 하는 핵.. Today I Learned and Studied 1) MVVM(Model-View-ViewModel) 패턴 - View - Activity , Fragment - xml 와 같이 화면에 보여지는 UI - 텍스트 입력, 버튼 터치 등과 같은 UI Event, Action 받음 - UI 관련 로직 수행 - ViewModel - View에 필요한 데이터를 Model로부터 가져와 가공 및 변환 - Network, DB Data 처리 - UI와 관련된 데이터 처리 - View와 관련된 Business Logic 처리 - View가 Observe하고 있기 때문에 View가 데이터를 갱신할 수 있도록 LiveData로 변경사항 전달 - Anti-pattern : View의 Context를 가지고 있으면 안됨 - View와 ViewModel의 LifeCycle이 다.. RecyclerView 1) 리사이클러뷰(RecyclerView)는 데이터 목록을 아이템 단위의 뷰로 구성하여 화면에 표시하기 위해 어댑터(Adapter)를 사용한다. 레이아웃매니저(LayoutManager)가 제공하는 레이아웃 형태로 어댑터를 통해 만들어진 각 아이템 뷰는 뷰홀더(ViewHolder) 객체에 저장되어 화면에 표시되고 필요에 따라 재활용(Recycle)된다. 2) 사용자 데이터 리스트로부터 리사이클러뷰에 표시될 아이템 뷰를 만드는 것이 바로 어댑터의 역할이다. 그리고 수직(Vertical) 방향으로만 아이템을 배치할 수 있는 리스트뷰와 달리 리사이클러뷰는 다양한 형태로 아이템을 배치할 수 있다. 어댑터에서 아이템 뷰를 생성하기 전에 아이템 뷰가 어떤 형태로 배치될 것인지를 결정하는 요소가 레이아웃매니저(Layo.. 이전 1 2 3 4 5 6 ··· 9 다음