pancake

Fragment에서 권한 요청하기 (2021)

Activity Result를 받아오는 API가 변경되면서 Fragment.requestPermissions도 deprecated 되었다. registerForActivityResult를 호출하고 ActivityResultContracts.RequestPermission을 인자로 전달해야한다. 복수의 권한이 필요한 경우는 Contract를 RequestMultiplePermissions로 바꿔서 사용한다. 하지만 사진/동영상 촬영, 연락처 선택 등 일반적인 케이스는 기본적으로 제공하는 Contract를 활용하는 것으로 커버할 수 있다.

트레이드 오프

트레이드 오프라는 개념을 처음 배울 때는 서로 양립할 수 없다는 사실을 너무 명백히 알 수 있는 케이스들로 배웠던 것 같다. 예를 들면 시간복잡도와 공간복잡도, 또는 일정과 품질과 비용. 시간을 줄이려면 공간을 많이 써야하고, 공간을 아끼려면 시간을 더 써야한다. 일정을 줄이려면 품질이나 비용을 양보해야하고, 품질을 높이려면 일정과 비용을 더 들여야하고, 비용을 줄이려면 품질과 일정을 희생해야한다는 것은 …

트레이드 오프 Read More »

[Kotlin] for-loop with no additional object allocation

In Kotlin, we can use functions such as forEach, forEachIndexed, and map to iterate items in collection. It’s convenient to use, but it comes with cost; those functions create additional objects like Iterator. For most cases, it wouldn’t be a serious problem to have some temporary objects. However, when overriding onDraw method of View class, …

[Kotlin] for-loop with no additional object allocation Read More »

Deprecated or Experimental

안드로이드 API는 큰 흐름상으로는 바람직하게 가고는 있지만 여전히 불만인 부분은 마음놓고 쓰기가 어렵다는 점이다. 어느 정도 안정화되고 손에 익었다 싶으면 deprecated되고 또 새로운 게 나오는데 새로운 걸 쓰려면 모험을 해야한다. 예전 API를 계속 쓰자니 찝찝하고, 새로운 걸 쓰자니 불안하고. 이런 스트레스를 항상 안고 개발해야하는 게 좀 불만이다.

요즘 안드로이드 앱 개발은

좀 느리긴 해도 바람직한 방향으로 계속 가고 있는 것 같다. Jetpack에 흥미로운 컴포넌트들이 계속 추가되고 있는데, kotlin 문법을 적절히 활용해서 고급 기능을 간결한 코드로 활용할 수 있게 잘 만들어놓은 것으로 보인다. 이런 것들을 잘만 활용하면 정말 예전과는 확연히 다른 느낌으로 모던하게 개발할 수 있을 것 같은데, 아직 익혀야 할 것들이 많다. 아직도 자바 스타일의 코딩에서 …

요즘 안드로이드 앱 개발은 Read More »

다시 이직

새 회사에서는 훨씬 큰 규모의 서비스를 운영하고 있고 업무량이나 진행속도가 이전 회사보다는 훨씬 빠른 편이다. 더 피곤하고 스트레스 받을 줄 알았는데 오히려 마음이 더 편해지고 다시 개발이 재미있어지려고 한다. (솔직히 요즘에는 개발에 흥미가 많이 떨어진 상태였다.) 일이 힘든 것보다 커리어가 정체되고 발전하는 느낌이 없는게 더 스트레스였던 것 같다. 물론 보상수준이 많이 올라간 이유도 있을 것이다. …

다시 이직 Read More »

코로나 이후

백신이 접종되기 시작하고 진정세가 뚜렷해지면 가파른 V자로 경제가 회복되지 않을까 싶다. 억눌려있던 수요들이 여기저기에서 폭발하면서 특히 오프라인 매장(쇼핑, 외식 등)으로 사람들이 많이 몰릴 것 같다. 언택트 시대니 뭐니 말들은 많지만 사람들은 이미 진짜를 경험했고, 물리적인 공간이 주는 다양한 느낌과 자극을 온라인이 대체할 수 없다는 것을 너무나 잘 알고 있다. 배달과 온라인 쇼핑은 한동안 성장이 정체될 것이다. …

코로나 이후 Read More »

[Kotlin] 객체 할당 없는 for loop

Kotlin에서는 배열이나 컬렉션을 다룰 때 forEach, forEachIndexed, map 등을 통해 내부 항목들을 접근해서 연산을 수행할 수 있다. 이러한 함수들은 인덱스를 직접 관리할 필요가 없어서 편리하긴 하지만, Range나 Iterator같은 부가적인 객체를 생성한다는 단점이 있다. 대부분의 경우에는 객체 한두개 정도 추가 할당하는 것이 큰 문제가 되지 않겠지만, 안드로이드에서 View 클래스의 onDraw 메서드를 오버라이드할 때에는 메서드 내에서 새로운 …

[Kotlin] 객체 할당 없는 for loop Read More »

삼성페이

삼성 스마트폰 최고의 경쟁력이라고 생각한다. 구글이나 LG에서 나온 다른 안드로이드폰을 써보고 싶다가도 삼성페이를 생각하면 바꿀 수가 없다. LG 스마트폰은 LG pay가 있긴 하지만 내 기억으로 지원되는 신용카드가 몇가지 안 됐던 것 같다. 특히 당시에 내가 주로 쓰던 카드가 카카오뱅크 체크카드였는데 그게 지원되지 않았었다. 지금은 지원된다고는 하지만 삼성페이를 쓸 떄와 비교해서 뭔가 모자란 구석이 어쩌다 보이면 …

삼성페이 Read More »