2016년 3월 31일 목요일

Windows10 Bash shell 포팅 소식을 들으며

윈도우 노트북 SSD가 달랑 128GB라 늘 하드가 부족한데 이놈의 윈도우는 뭐가 윈도우만 용량이 25GB를 잡아먹고 있더라. (안드로이드 SDK가 25GB인것도 함정. 슬프다) 그 덕분에 git command 쓸 일이 있을 때마다 cd 로 폴더명 일일이 치고 있을 때마다 게이지가 차오르는 것을 느낀다. 어쨌거나 적어도 좀 터미널은 편하게 쓸 수 있게 되는가 보다. --------------------------------------------------- 헐. 윈도우에도 powershell이라는 녀석이 내장되어 있었다니! 전혀 몰랐다 -_-;... 그동안 cd 명령어로 삽질을 하고 있었구나 ㅠㅠ...

2016년 2월 26일 금요일

android studio에서 jar 만들기

android studio에서 module들을 jar 파일로 export 해보자.


towwaygridview를 jar로 만들 예정이다


jar로 만들 module의 build.gradle 파일을 열어서 다음을 입력하자.

task deleteOldJar(type: Delete) {
    delete 'libs/{moduleName}.jar'
}

//task to export contents as jar
task exportJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('libs/')
    include('classes.jar')
    ///Give whatever name you want to give
    rename('classes.jar', '{moduleName}.jar')
}

exportJar.dependsOn(deleteOldJar, build)


그 이후에 Gradle 탭을 열어보자.

Gradle 탭을 열면...

jar로 만들 module을 연다

Tasks > other > ...

exportJar를 실행


위 gradle code로 task를 만든 exportJar 메뉴가 있다.
이 녀석을 실행하면



뭐 이런 녀석이 나오고

towwaygridview / libs / towwaygridview.jar 파일이 생성된다.

이 녀석을 복사해서 사용하면 되겠다.


** android resource 를 사용한 경우에는 jar 대신 aar을 사용해야 한다.

2016년 2월 24일 수요일

simple ONLINE relationship database design tool

http://aquerytool.com/aquerymain/index/

관계형 데이터베이스 디자인툴 괜찮은 것은 역시 erwin일것이다.
윈도우용이고 비싸다는 점만 제외하면.

db 설계할때 일반적으로는 복잡한 기능을 사용하지 않고
구조도(?)와 DDL 생성 기능을 주로 사용한다고 하면
위 사이트는 매우 좋은 선택이 될 것이다.

2016년 2월 15일 월요일

ormlite 첫인상

바쁘다는 핑계로 ORM 책 페이지가 넘어가지 않고 있었다.

그러다가 새로운 프로젝트를 하나 만들게 생겼는데,
android에서 local db를 사용해야 할 일이 생겼다.

해본 사람들이라면 알겠지만
...저거 테이블 또... 하다가 신음소리가 절로 나오는 그런 순간이 아닐 수 없다.
그냥 막 하기 싫고, 누가 좀 대신 타이핑 해줬으면 싶은 마음이 굴뚝같고,
그런 일이 일어날리는 없고.

그래서 검색잠시 해본 결과 ormlite가 android도 지원한다는게 아닌가.

나무 위에 올라가 있는데 하늘에서 동아줄이 내려온 기분이 이럴까?
몇 챕터 읽지는 못했지만 ormlite로 냅다 달려봤다.

erd로 그려진 테이블과 칼럼들을 바탕으로
model 클래스들을 만들었다.

그리고 어노테이션으로 관계들을 매핑해주고, OrmLiteSqliteOpenHelper를 상속해서 sqliteDatabaseHelper 클래스를 만들어서 onCreate, onUpgrade 메서드를 구현해주면 끝!

테이블 생성은 메서드 단 하나,  TableUtils.createTable()로 끝!

기본적인 CRUD는 문제없었다.
칼럼 join 테스트만 한번 해보면 어쨌거나 android에서 db로 머리 썩힐 일은 이제 없을 것이다!

행복하다.
Thank You, ORM!

2016년 1월 22일 금요일

Java에서 Unchecked cast warning 제거하기

Map<String, Object>을 이용해서 여러 개의 ArrayList<MyObject>들을 넘겨주게 된 경우가 있었다.

지금 다시 작업한다면 그럴 여지를 만들지 않겠지만,
value = map.get(key) 같은 형태로 map의 value를 가져오면 Unchecked cast warning이 발생한다.

@SuppressWarnings("unchecked")를 추가해주면 warning은 무시되지만
뭔가 찝찝하다고 생각되면 번거롭지만 다음과 같이 하면 된다.



java스럽게 복잡한데 속은 시원하다.

2016년 1월 12일 화요일

android logcat 필터링하기 - 원치 않는 로그 제거하기

logcat 로그 메시지를 원하는 것만 추려보려면?
정규식을 이용해야 한다.

Android Studio에서 logcat - Edit Filter Configuration을 실행하자.

Log Tag, Log Message, Package Name은 정규식을 적용할 수 있는데,

Log Tag에서 dalvikvm이 뿌리는 로그를 제거해보자.



^(?!(dalvikvm))


다른 것들을 추가하려면 아래와 같이 적용할 수 있다.


2016년 1월 8일 금요일

유틸리티 클래스 대신 객채지향!

객체지향에 대해 다시 한번 생각을 해보게 되었다.

데이터는 없고,
객체와 행위만 있다는 말이 의미 심장하다.