목록전체 글 (128)
막무가내 삽질 블로그
기존에는 날짜를 저장할 때 string으로 저장했었다. 다시 불러올 때 timestamp로 변환해 현재 날짜와 비교해서 로직을 처리 했었다. 하지만 중복되는 코드를 볼 수 있었고 또한 룸에서 가져올 때 ORDER BY time DESC 했었을 때 문제점은 12시가 제일 높게 인식한다. (yy-mm-dd hh.mm.ss a 기준) 이 문제를 해결 하기 위해 long 타입으로 넣으면 간단하게 해결할 수 있었고 코드중복을 줄일 수 있었다. 기존 테스트 코드 private lateinit var local: String // 오늘 fun main() { getTime() // 현재 날짜 가져오기 val today = SimpleDateFormat("yy년 MM월 dd일", Locale.KOREA) val dat..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
코드랩과 구글문서를 참조했다. 안드로이드에서 아키텍처 구성요소 해당 예제는 Room, ViewModel, LiveData, Repository 만 사용합니다. Entity : Room 작업시 데이터베이스 테이블을 설명하는 클래스 DAO : 데이터 접근 객체, SQL 쿼리를 함수에 매핑, DAO를 사용할 때 함수를 부르고 나머지는 room에서 처리한다. ROOM : SQLite 데이터베이스에 대한 액세스 지점 역할을 한다. Repository : 여러 데이터 소스를 관리 하는데 사용된다. ViewModel, LiveData : https://class-programming.tistory.com/75 안드로이드 아키텍처 구성요소를 사용하여 단어장 앱을 만든다. Entity 만들기 @Entity(tableNa..
개발자 문서, 유튜브, 코드랩을 참고했다. ViewModel ? AAC ViewModel은 UI관련 데이터를 저장하고 관리하기 위하여 설계된 뷰모델클래스이다. ViewModel의 LifeCycle은 액티비티가 onCreate되고 onDestroy될 때까지 존재한다. 앱이 회전 할 때와 같이 액티비티가 여러번 호출 될 수 있지만(onCreate) ViewModel은 계속 유지된다. 장점 : 싱글톤 객체처럼 사용가능하다, 프래그먼트 중개자로 액티비티를 사용하지 않아도 된다, 화면 회전 문제 주의사항 : ViewModel 내부에 액티비티,프래그먼트,뷰에 대한 Context를 저장해서는 안된다. (Application Context제외) LiveData ? LiveData는 LifeCycle의 Observer다..
안드로이드 개발자 문서, 코드랩, Developing을 참고했다. AndroidX의 Navigation은 UI 전환을 쉽게 구현하는데 도움을 주는 라이브러리이다. Navigation 에서는 이전 Destination(Fragment) 이 포함된 백스택을 자동으로 관리한다. 앱을 열때 첫 화면이 백스택에 배치되고 그 후 Navigate()를 실행 시켜 화면을 이동할 때 마다 백스택 맨위에 해당 Fragment가 놓여진다. (LIFO구조) 이전(뒤로가기) 기능 시, 스택의 맨위의 Fragment를 제거함으로 바로 이전의 Fragment가 호출된다. res-navigation-navigation.xml MainActivity (NavHost) class MainActivity : AppCompatActivit..
보호되어 있는 글입니다.