2016년 4월 27일 수요일

android versionCode, versionName은 어디에 위치해야 하는가


android studio를 활용해서 새로운 프로젝트를 생성했을 경우에,
이녀석은 너무나 당연하게 app/build.gradle 안에 groovy code로 versionCode, versionName을 생성한다.

그래서 당연히 build.gradle 안에 저 녀석들이 있어야 하는 걸로 알고 있었고, 버전 관리할때마다 반겨주는 메세지를 만나야 했다.

Gradle files have changed since last project sync. A project sync may be necessary for the IDE to work properly.  Sync Now

그런데 문제는 저 gradle build가 매우 느리다는 것이다 :(

덕분에 릴리즈 버전별로 브랜치를 관리하다 보면, 브랜치 스위칭하면서 빌드빌드빌드빌드를 하게 되는데 아. 쓰기만 해도 괴롭다. 아무튼 저 versionCode, versionName을 AndroidManifests.xml로 옮길 수 있다는 사실을 알게 되었다.

!!!!!!!!!!!!!!!!!!!!!

그리고 AndroidManifests.xml은 수정해봐야 재빌드 안한다!

왜 이걸 이제 알았을까.

아무튼 versionCode, versionName은 AndroidManifests.xml로 옮깁시다!

2016년 4월 12일 화요일

ormlite foreigncollectionfield에 대해

1 to many 관계에서 눈여겨 볼 일 없이 그냥 가져다가 썼었다.

그러다가 queryBuilder로 join을 했는데,
limit
orderBy
등이 전혀 먹히지 않는 것이 아닌가.

왜 이런 일이 벌어지는것인가! 나는 햄보칼수가 없어!


하루종일 삽질하다가
생성된 테이블 구조를 살펴보고야 이유를 짐작해냈다.

SomeEntity database table에 DetailEntity table에 대한 참조키가 생성되지 않는 거였다.
ormlite가 lazyForeignCollection으로 Set을 모조리 갖다 붙이는 거였음.

그래서 그냥 java code로 2차 가공하기로 했다.

profit(?)