일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 카페오냥
- github submodule
- firebase
- 게임개발
- 타이쿤
- 앱개발
- Android
- gitlab submodule
- submodule sourcetree
- 목서버
- 쿼터뷰
- 서브모듈 pull
- 내 맘대로 정리한 안드로이드
- Unity
- Android Studio
- 티스토리
- GIT
- 코틀린
- Kotlin
- 2d게임
- java
- 안드로이드
- 개발
- 서브모듈 sourcetree
- github
- 유니티
- DataBinding
- 안드로이드개발
- 앱
- 안드로이이드 submodule
- Today
- Total
목록전체 글 (80)
Uing? Uing!!
Lint 안드로이드 프로젝트를 작업하다 보면 IDE가 시각적으로 수정을 요청하는 코드들이 있다. 그중에는 빌드 자체가 안 되는 코드도 있고, 빌드는 되지만 수정이 권장되는 코드도 있다. 바로 조금 전에 포스팅했듯이, @CallSuper 어노테이션이 있는 메소드를 상속받았는데 super의 메소드를 호출하지 않는다면 컴파일 에러가 발생한다. 이때 코드 상에서도 빨간색으로 밑줄이 표시된다. 정상적으로 빌드가 되는 코드들에도 자주 수정 요청 표시가 나타난다. ImageView가 contentDescription을 적어 달라고 글씨 밑에 노란색 배경이 띄워지거나, 어떤 변수가 실제로 사용되고 잇지 않다고 회색 글씨로 표시되거나, if문의 return을 앞으로 빼 달라고 밑줄을 긋는다거나... 이 외에도 다양한 경..
아래 코드는 Animal이라는 클래스와 이를 상속받은 Dog와 Cat이라는 클래스이다. open class Animal { open fun makeSound() { println("making sound...") } } class Dog : Animal() { override fun makeSound() { println("bark!") } } class Cat : Animal() { override fun makeSound() { println("meow~") } } Animal 클래스의 인스턴스에 대해 makeSound() 메소드를 호출하면 "making sound..."라는 결과값이 출력된다. 반면 Dog, Cat 클래스의 인스턴스에 대해서는 이 문자열이 아닌 "bark!" 또는 "meow~"만이 ..
생성자(constructor) 클래스의 생성자를 설정하는 데에는 다양한 방법이 있다. 아래처럼 주 생성자를 설정하는 방법이 가장 대표적이라고 할 수 있겠다. class Dog(val name: String, val age: Int) 하지만 여러 종류의 생성자가 필요한 경우도 있다. 이를테면 name, age 중 일부만 가지고 생성하고 싶다면 이렇게 쓸 수 있을 것이다. class Person { private var name: String = "" private var age: Int = 0 constructor() constructor(name: String) { this.name = name } constructor(name: String, age: Int) { this.name = name this..
dp, sp, px 안드로이드에서 폰트 크기를 설정할 때 나는 일반적으로 sp를 사용한다. 다만 실제 디자인에서는 상황에 따라 sp가 아닌 dp, 심지어 px를 사용하는 경우도 있다. 안드로이드 개발자 문서에서는 dp와 sp, px에 대해 이렇게 설명한다. dp (밀도 독립형 픽셀) - 화면의 물리적인 밀도에 기반한 추상적인 단위입니다. 이 단위는 160dpi(인치당 도트 수) 화면에 상대적이며 화면에서 1dp는 대략 1px와 같습니다. 더 높은 밀도의 화면에서 실행한다면 1dp를 그리는 데 사용되는 픽셀의 수는 화면의 dpi에 적절한 배율로 확장됩니다. 마찬가지로 더 낮은 밀도 화면에서 실행한다면 1dp에 사용되는 픽셀 수는 축소됩니다. dp 대 픽셀의 비율은 화면 밀도에 따라 달라지지만, 반드시 정비..
사건의 발단 프로젝트 내에 구현할 인터페이스가 있었고, 이 인터페이스에 맞추어 구현한 객체가 있었다. 분명히 인터페이스에서 요구하는 모든 메소드를 다 구현한 상황이었다. 그런데 잘만 작동하던 코드가 갑자기 메소드가 구현되지 않았다며 java.lang.AbstractMethodError를 뽑아내는 것이다! 삽질의 과정 다시 확인해 봐도 메소드는 다 구현되어 있었다. 가장 최근에 수정한 코드가 무엇인가 생각해 보니, 이 메소드의 파라미터들을 수정했었다. 뭔가 파라미터의 내용과 순서를 바꾸는 과정에서 이전 빌드 내용과 충돌이 일어난 게 아닐까 싶었다. 삽질의 결과 나름대로 헤맨 것 치고는 해결법은 단순했다. 안드로이드 스튜디오에서 clean build -> rebuild를 하였더니 바로 해결되었다. 결론이 너..
WebView 모바일 웹은 javascript를 기반으로 동작한다. 웹뷰는 이런 모바일웹을 안드로이드 앱 내에서 보여주는 View이다. 기본적으로 html, css, js를 기반으로 만들어져 있는 만큼, 안드로이드 네이티브 코드에서는 수정할 수 있는 부분이 거의 없다. 단지 웹뷰 내에서의 몇몇 이벤트를 인식하고 반응하는 정도의 활용이 가능하다. WebView의 close 이벤트를 인식하지 못하는 경우 웹뷰에서는 분명히 window.close()가 호출되고 있는데, 안드로이드 화면에서 웹뷰가 닫히지 않는 경우가 있다. 웹뷰 안에서 다른 창을 여는 경우에 이런 상황이 발생하게 된다. 이를 해결하기 위해서는 아래처럼 웹뷰에 webChromeClient를 달아 주고, onCloseWindow를 오버라이딩하여 화..
클린 코드(Clean Code) - 로버트 O. 마틴(Robert O. Martin) Clean Code 클린 코드 국내도서 저자 : 로버트 C. 마틴(Robert C. Martin) / 박재호,이해영역 출판 : 인사이트 2013.12.24 상세보기 정규직 전환 이후에 약간의 심적인 여유가 생겼다. 그래서 읽으려고 찜해둔 책들을 개인적으로 몇 권 주문했다. 그중 제일 궁금했던 책이 이 '클린 코드'이다. 회사에서 코드리뷰를 하고 받을수록 '좋은 코드란 어떤 걸까?'라는 생각을 점점 더 많이 하게 되는 것 같다. 한 줄을 수정하더라도 '이렇게 수정하면 가독성이 좋아지는 게 맞나?', '변수명은 괜찮은가?' 같은 고민들을 하다 보니 이 책이 가장 눈에 들어왔다. 찾아 보니 2013년 도서인데도 아직까지 개발..
dp to px 안드로이드에서 크기를 다루다 보면 Dp(Density-Independent Pixel)에서 px(pixel)로 변환해 사용해야 하는 경우가 있다. dp에서 px로 변화하는 방법으로는 두 가지가 있다. 1. 전역 함수 정의하기 아래와 같은 dp2px 함수를 UIUtil 등의 object 안에 정의하거나, 또는 그냥 전역 함수로 정의하여 사용할 수 있다. fun dp2px(dp: Float, context: Context) = TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, dp, context.resources.displayMetrics) val px = dp2px(dp, context) 2. Resources.getDimensionPix..