일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mysql
- mvvm
- rx
- node.js
- android13
- 인앱결제
- RxKotlin
- Koin
- 테스트 자동화
- junit
- GCP
- Reactive
- SWIFTUI
- Animation
- list
- 동영상
- MotionLayout
- PagingLib
- MediaPlayer
- Observable
- node
- Kotlin
- Android 13
- SwiftUI Tutorial
- google play
- paging
- databinding
- liveData
- MediaSession
- Android
- Today
- Total
목록Kotlin (4)
봄날은 갔다. 이제 그 정신으로 공부하자
개발을 하다보면 힘들게 개발했는데 기능 변경 또는 시나리오의 변경으로 사용되지 않는 소스 코드가 다수 생기곤 합니다. 이럴때 어떻게 하시나요? - 1번 과감하게 삭제한다. - 2번 삭제하는건 쫄리니까 우선 남겨놓고 나중에 기회가 될때 삭제한다. (실제로는 절대 삭제 안함.) 1번을 선택하는 경우도 있겠지만 대부분 2번을 선택할 것으로 생각됩니다. 저같은 경우 1번을 선택해서 과감하게 소스 코드를 삭제했다가 다시 시나리오가 변경되면서 그 삭제했던 코드가 다시 필요해져서 복구하는데 꽤 고생했던 기억이 종종 있습니다. 그렇다보니 사용되지 않는 소스코드라도 삭제하기 보다는 이후 어떻게 될지 모르는 재사용 시점을 기다리면서 일단 내버려두는 편입니다. 이런 코드가 한두개씩 꾸준히 쌓여 점점 프로젝트의 코드 가독성을..
개발 중 조금 난해한 문제가 발생했습니다. 요구사항을 파악해보면 Spinner로 개발하는게 맞는데 Spinner로 개발하기에는 너무 많은 리소스가 소모된다는 문제가 발생했습니다. 그래서 이걸 어떻게할까 고민하다 우선 Adapter도 만들고 layout xml도 만들고해서 Spinner로 만들어보았습니다. 역시 만족스럽지 못했습니다. ㅠ_ㅠ 그래서 다른 개발자들이 만들어놓은 custom spinner를 찾아봤는데 미천한 검색 실력으로는 요구사항에 맞는 custom spinner를 찾을 수 없었습니다. 음… 어떡하지? 그냥 쿨하게 Button에 PopupWindow를 사용해서 개발하기로 했습니다. 요구사항 자체가 Spinner에 비교했을 때 난해한 문제였지 PopupWindow를 사용해 개발하면 그리 어려운..
이번 글에서는 android에서 기본으로 지원하는 AlertDialog를 활용하여 Dialog를 custom하는 방식에 대해 설명합니다. 저는 기본 AlertDialog가 좋은데 다른 사람들은 AlertDialog를 싫어하더라구요. ㅠ_ㅠ 일반 Dialog 만들기 android에서 지원하는 AlertDialog는 Builder(디자인 패턴의 Builder pattern 맞습니다.)를 지원하기 때문에 아래와 같이 간단히 dialog를 만드는 것이 가능합니다. 정말 심플하네요. AlertDialog.Builder(this) .setTitle("TITLE") .setMessage("MESSAGE") .setNegativeButton("NO", { dialogInterface: DialogInterface, i..
이번 글에서는 기존에 Java에서 사용하던 방식에 비해 많은 부분이 상이한 kotlin의 Callback 사용 방식에 대해 설명합니다. Java Java에서 callback을 사용하기 위해서는 interface를 선언해주고 콜백을 받는 곳에서 interface를 정의해주고 콜백을 호출하는 곳에서 콜백 인스턴스를 호출해주면 됩니다. 선언 및 정의 그리고 사용은 아래와 같습니다. // interface 선언 public interface MyCallback{ public void onClick() } // 콜백을 받는 곳에서 interface 정의 MyCallback callback = new MyCallback(){ @Override public void onClick(){ // Click~~~ } } /..