FloatingActionButton
화면에서 붕떠있는 버튼
구글 머터리얼
디비가 아니라 스프링 서버에 API 서버 요청하꺼면
api.model패키지로 만들어서
여기는 dto가 전부 저기안에 들어가도록 한다.
tedPermission은 복붙하기! <- 권한 관리하는게 엄청 편해짐
implementation "gun0912.ted:tedpermission:2.1.0"
TedPermission : 라이브러리
정리하기
19 버전 이후로 권한 부분 많이 바뀌었어요.
카메라 부분 공부하기
allowMainThreadQueries() 이거 말고 스레드 돌려야한다.
이건 사용자가 불편함느낄 정도로 약간 느려진다.
모델
package com.linda.contactsapp.db.model;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.Ignore;
import androidx.room.PrimaryKey;
@Entity(tableName = "contacts")
public class Contact {
@PrimaryKey(autoGenerate = true) // 기본키 + 시퀀스
@ColumnInfo(name="contact_id")
private long id;
@ColumnInfo(name="contact_name")
private String name;
@ColumnInfo(name="contact_email")
private String email;
@ColumnInfo(name="profileURL")
private String profileURL;
@Ignore
public Contact() { }
@Ignore //jpa는 setter로 db에 넣는데 안드로이드는 생성자로 db에 넣음.
public Contact(long id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
//이 생성자로만 db에 set할거다! ROOM이 알고 있는 생성자는 딱 하나만 있어야 한다.
public Contact(String name, String email, String profileURL) {
this.name = name;
this.email = email;
this.profileURL = profileURL;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Ignore
public Contact(long id, String name, String email, String profileURL) {
this.id = id;
this.name = name;
this.email = email;
this.profileURL = profileURL;
}
public void setProfileURL(String profileURL) {
this.profileURL = profileURL;
}
}
/**
* @Ignore // 엔티티에 지속하고 싶지 않은 필드나 생성자가 있는 경우 @Ignore를 사용한다.
*/
ROOM
데이터베이스 연결하는 방법
package com.linda.contactsapp.db;
import androidx.room.Database;
import androidx.room.RoomDatabase;
import com.linda.contactsapp.db.model.Contact;
import com.linda.contactsapp.repository.ContactRepository;
@Database(entities = {Contact.class}, version = 2)
public abstract class ContactAppDatabase extends RoomDatabase {
public abstract ContactRepository contactRepository();
}
이미지
ImageUpload파일 정리하기
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.linda.contactsapp">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:requestLegacyExternalStorage="true"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
'안드로이드' 카테고리의 다른 글
MVVM수업연결 (0) | 2020.08.12 |
---|---|
MVVM-AAC (0) | 2020.08.06 |
안드로이드 패턴 M V VM -room (0) | 2020.08.05 |
안드로이드 Service (0) | 2020.08.05 |
RetrofitConfig (0) | 2020.07.30 |