-
[Android] 메모장 앱 만들기(1)_Realm DB 연동하기Android 2020. 4. 23. 16:24
이번에는 안드로이드로 간단한 메모앱을 만들어 보기로 했다! DB는 Realm으로 사용했다.
먼저 Realm을 사용하는 방법을 알아보자!
Realm DB 연결 및 테스트
1) Gradle Script에 연결 코드 넣기
- build.gradle에 dependencies를 추가한다.
dependencies { classpath 'com.android.tools.build:gradle:3.6.1' classpath "io.realm:realm-gradle-plugin:6.0.2" }
- Module:app의 맨 윗부분과 dependencies안에 각각 추가한다.
apply plugin: 'realm-android' dependencies { implementation 'io.realm:android-adapters:3.1.0' }
그리고 Scyn을 눌러 적용해준다.
2) Realm에서 사용할 오브젝트 클래스 만들기(DB의 구조)
메모장에 들어갈 제목, 날짜, 내용을 담을 오브젝트를 생성한다. RealmObject를 extends 하여 Realm DB에 객체가 생성된다.
package com.example.myapplication; import io.realm.RealmObject; import io.realm.annotations.Required; public class Memo extends RealmObject { @Required private String title; //제목 private String date; //날짜 private String content; //내용 public Memo() { this.title = "아무값도 없습니다."; } public Memo(String title,String date,String dday) { this.title = title; this.date = date; this.content = content; } public String getTitle() { return title; } public String getDate(){ return date; } public String getContent(){ return content; } public void setTitle(String title) { this.title = title; } public void setDate(String date) { this.date = date; } public void setContent(String content) { this.content = content; } }
3) MainActivity에서 DB 동작 테스트하기
realm을 사용할 수 있도록 넣어주고 만들어둔 DB객체를 가져옵니다.
private Realm realm; private Memo Memoinfo;
다시 시작 할 때마다 realm을 초기화 해주고, realm.getDefaultInstance로 DB를 열어줍니다.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Realm.init(this); realm = Realm.getDefaultInstance(); }
activity_main.xml에 버튼을 만들어주고, 데이터를 넣는 작업을 해준다. realm.beginTransaction()으로 트랜잭션을 시작하고 Memo 객체에 데이터를 넣어준다. 그리고 commit해주면 적용된다. 잘 들어갔는지 확인하기 위해 RealmResult로 Memo에 저장된 객체를 한번에 보여주는 메세지를 띄워준다.
realm.beginTransaction(); Memoinfo = realm.createObject(Memo.class); Memoinfo.setTitle("title"); Memoinfo.setDate("date"); Memoinfo.setContent("content"); realm.commitTransaction(); RealmResults<Memo> realmResults = realm.where(Memo.class).findAll();
클릭할 때 마다 값이 들어가는 것을 볼 수 있다.
이렇게 Realm DB에 간단하게 연결하는 동작을 테스트 해봤다. 다음에는 본격적으로 화면 레이아웃을 만들고, 저장한 데이터들을 리스트로 가져와 잘 보이게 뿌려주는 실습을 할 예정이다....ㅎ
※ [ 참고 ] Realm 파일 데이터 저장된 경로 찾기
Log.v("MainActivity","경로..."+realm.getPath());
Logcat에 경로가 뜬다 ex) /data/data/자신의 패키지명/files/default.realm
이렇게 디바이스 내부 디렉토리로 접근해서 파일을 찾을 수 있다.
내 경우는 문서 > AndroidStudio > DeviceExplorer > 디바이스명 > data > data > 패키지명 > files 안에 Realm파일이 있었다.
위의 default파일을 더블클릭하면 RealmStudio를 통해 전체 데이터를 확인할 수 있다.
RealmStudio 다운로드하기
https://realm.io/kr/products/realm-studio/
'Android' 카테고리의 다른 글
[Android] 메모장 앱 만들기(3)_Realm DB 데이터 수정 및 삭제 (0) 2020.04.28 [Android] 메모장 앱 만들기(2)_Realm DB에 데이터 추가하기 (0) 2020.04.24 [Android] 현재위치 GPS정보 받기( + Firebase 연결) (1) 2019.10.24 [Android] UUID로 Miband2 정보 가져오기 (0) 2018.11.23 [Android] Wifi정보 출력 (0) 2018.11.23