Android8 Android Room Database 사용하기 Room 이란? Room Database 는 Android Jetpack Library 중 하나로 SQL 테이블 데이터에 객체를 매핑시켜주는 DB 라이브러리입니다. SQLite 를 사용하는 경우 SQLiteOpenHelper 를 상속하는 class 를 만들고 각 column 명을 전역 변수로 지정해놓고 DB 를 구성한 다음 DB에서 데이터를 꺼내올 땐 Cursor 단위로 data 를 꺼내와서 Cursor 를 다시 모델링한 데이터로 매핑시키는.. 조금 번잡한 과정을 거쳐야했는데 Room 을 사용할 경우에는 DB 에 저장하려는 데이터 모델에서 column 명을 annotation 을 사용하여 미리 정의하고 Dao(Data Access Object) class 를 사용하여 테이블 생성 작업을 간소화할 수 있습.. 2024. 1. 8. Android 파일 다운로드 받기 플레이스토어에 배포되지 않은 앱을 다운로드/업데이트 일단 앱의 apk 파일 다운로드 링크(아래 코드의 url)를 서버에 올려두고 진행했고 버전 정보를 체크하는 방법은 생략했다 일단 코드부터 살펴보자 val intent = Intent(requireActivity(), ApkDownloadService::class.java) intent.putExtra(ApkDownloadService.PATH, filePath) intent.putExtra(ApkDownloadService.RECEIVER, ProgressReceiver()) requireActivity().startService(intent) class ApkDownloadService: IntentService(TAG) { companion obje.. 2024. 1. 5. Android Custom Dialog 만들기 간단하게 만들 수 있는 AlertDialog 와 아쉬운 점 보통 Android 에서 간단한 Dialog 를 구현하려면 AlertDialog class 를 이용하여 구현 할 수 있다. val dialog = AlertDialog.Builder(this) .setTitle("제목") .setIcon(R.mipmap.ic_launcher) .setMessage("뭘 해볼까?") .setPositiveButton("OK" ) { dialog, which -> // TODO: do something! } .setNegativeButton("Cancel") { dialog, which -> // TODO: do something! } .create() dialog.show() 이 코드를 실행하면 이런 화면을 Dia.. 2024. 1. 4. [Kotlin] 문자열(String) 유사도 검사하기 - (1) 문장(문자열)의 유사도 분석? 최근 프로젝트에서 이러한 형태의 구현이 필요했었다 EditText(내가 구현해둔 검색 창) 에 사용자가 어떠한 Keyword 를 검색한다. 해당 Keyword 를 DB(Room Database 를 사용 중이다) 에서 Search 하여 Data List 를 불러온다. 해당 Data List를 EditText 아래로 Vertical 한 List 로 표현해준다. 여기 세번째 부분에서 이런 얘기가 나왔다 "키워드가 다 들어있는 건 많은데 정작 내가 찾으려던 아이템을 보려면 스크롤을 많이 내려야 한다" 그래서 데이터 리스트 중 검색 키워드와 가장 비슷한 단어(-> 검색 키워드를 아이템의 이름으로 편집할 때 필요한 문자열 조작 횟수, 적을수록 유사한 단어로 판단) 순으로 정렬하는 알고.. 2024. 1. 3. 이전 1 2 다음