본문 바로가기

안드로이드

contactsApp, TedPermission

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