0. Subject RxJava에서 Subject 클래스는 구독하고 있는 관찰자(Observer)에게 새로운 값을 전달 할 때 사용하는 클래스다. 따로 Observable로 새로운 값을 만들 필요 없이 Subject 객체에 내장된 onNext 함수로 새로운 값을 옵저버에게 전달할 수 있기 때문에 짧은 코드로도 reactive하게 구현하는 것이 가능하다. 안드로이드에서 제공하는 LiveData와 유사한 역할을 한다. 아래 코드는 Subject 클래스중 하나인 PublishSubject를 이용해서 새로운 값을 갱신하는 예제다. class Person { var publishName: PublishSubject = PublishSubject.create() } val person = Person() perso..
Room 은 메인쓰레드에서 db 의 접근을 허용하지 않는다. 허용하려면 allowMainThreadQueries() 를 호출하면 되지만 권장하지 않는다. 그래서 LiveData, AsyncTask, RxJava 를 함께 사용해야 한다. 1편에서는 AsyncTask 를 이용한 Room 사용방법을 알아보겠다. Cart @Entity(tableName = "cart.db") public class Cart { @PrimaryKey(autoGenerate = true) public int uid; @ColumnInfo(name = "id") public int id; @ColumnInfo(name = "name") public String name; @ColumnInfo(name = "price") public..
Retrofit2 를 이용해서 POST 를 하고자 할때 크게 3가지 방법이 있다. 1. @Part - @Part 는 파일을 POST 할때 쓰인다(이미지라 가정하고 작성) - @Part 를 사용하려면 @MultiPart 도 함께 써야한다. @Multipart @POST("picture/upload") Call postImage(@Part("key") RequestBody key, @Part("id") RequestBody id, @Part("name") RequestBody name, @Part MultipartBody.Part image); private void uploadImage(String mKey, int mId, String mName) { File file = new File(이미지 경로);..