본문 바로가기

Android

(76)
Coroutine Dispatcher 란 무엇인가? 안드로이드 개발을 꽤 오래 하셨던 분들, 또는 지방에서 일하고 계신 분들은 자바로 안드로이드 개발을 해보셨을겁니다. 저 또한 그랬습니다. 처음 개발을 배울 때부터 자바로 배워서, 코틀린같은 고급 언어는 굉장히 낯설었습니다. 코틀린의 코루틴이 그랬습니다. AsyncTask 나 Thread 를 사용해서 외부와 통신해왔던 저로서는 받아들이기 여간 어려운 것이 아니었습니다. 코틀린으로의 전환 이후 가장 처음 마주한 것이 코루틴이었습니다. 코루틴은 다음과 같이 실행됩니다. CoroutineScope(Dispatchers.IO).launch { // do something } CoroutineScope 는 코루틴을 실행시키기 위해서 꼭 필요하다는 것은 쉽게 알 수 있습니다. 그렇다면 Dispatcher 는 뭘까요?..
산책갈까? - 댕댕이를 위한 맞춤 날씨앱 GitHub - jangjh123/ShallWeGoForAWalk-Android: 날씨 점수 보고 댕댕이 산책갈까? - 댕댕이를 위한 맞춤 날씨 날씨 점수 보고 댕댕이 산책갈까? - 댕댕이를 위한 맞춤 날씨 앱. Contribute to jangjh123/ShallWeGoForAWalk-Android development by creating an account on GitHub. github.com 앱 는 애견인들과 댕댕이를 위한 앱입니다. 유저 위치에 따른 날씨 정보와 댕댕이의 정보를 통해 산책을 나가도 좋은 날씨인지 아닌지에 대해 점수로 알려주는 앱입니다. 다둥이 가족 유저를 위해, 여러 마리의 댕댕이를 추가하여 각 댕댕이의 산책 점수를 확인할 수 있습니다. 🛒 Download 산책갈까? - 반려견..
에이펙싱 버전 2.0.7 트러블 슈팅 컴퓨터를 켜면, 습관적으로 구글 플레이 콘솔에 접속하여 현재 적극 서비스 중인 '에이펙싱' 의 각종 KPI 를 둘러봅니다. 금일 오전, 여느 날과 다름 없이 에이펙싱이 순조롭게 서비스되고 있는지 확인하기 위해 플레이 콘솔에 접속했습니다. 그런데 이게 웬 걸? 116 개의 비정상 종료가 기록돼 있었습니다. 참 부끄러운 일입니다. 플레이 콘솔의 스택 트레이스는, 엔드포인트가 그다지 정확하게 기록되진 않습니다. 에러가 발생한 액티비티, 프래그먼트, 클래스가 어디인지 정도만 확인할 수 있는 경우가 대부분입니다. 즉, 소스의 길이가 길면 버그를 잡아내는 행위 자체가 굉장히 힘들어집니다. 다행히, 리뷰를 남겨주신 분과 컨택이 되어 대화를 나눠볼 수 있었습니다. 앱 기능을 사용하기 위해 필요한 유저 ID 를 전달받을..
에이펙싱 (APEXING) - 에이펙스 레전드 전적 검색 GitHub - jangjh123/Apexing-Android: 에이펙싱 - 에이펙스 레전드 전적 검색 에이펙싱 - 에이펙스 레전드 전적 검색. Contribute to jangjh123/Apexing-Android development by creating an account on GitHub. github.com 앱 은 Respawn 사의 게임 의 유저들을 위한 앱입니다. 플레이한 매치가 기록되어 킬 및 대미지 등의 기본적인 정보를 조회할 수 있으며, 수식을 통해 계산된 통계를 확인할 수 있습니다. 또한, 에이펙스 레전드 게임 내에서 진행 중인 맵과 제작 아이템 정보를 실시간으로 확인할 수 있으며, EA Korea 에서 제공하는 관련 소식들도 살펴 볼 수 있습니다. 🛒 Download 에이펙싱 - 에..
[XML] AmbientLightView 1 인 개발을 진행했던 앱 '에이펙싱' 의 디자인이 너무 별로여서 새롭게 리뉴얼 중입니다. UI 를 개선함과 동시에 스토어 정보를 보여주는 기능을 새로이 개발 중에 있는데, 해당 기능의 UI 를 구현하다가 문제가 조금 생겼습니다. 스토어의 아이템은 특별 상품들인 Specials 와 일반 상품들인 Shop 으로 분류가 되는데, 각 상품군의 분류가 확실히 되지 않아서 해당 View 의 Elevation Color 를 변경하여 구분하려 했습니다. 관련된 속성을 사용하려 했으나, minSDK 와 호환이 되지 않는 이슈가 발생하여, 이를 해결하기 위해 CustomView 를 구현하였습니다. 물론 라이브러리를 사용해도 되고, minSDK 를 올려도 되지만, 저는 minSDK 만은 올리지 않겠다는 생각을 갖고 있기 ..
Fragment Lifecycle 과 UX (feat.Navigation Component) Intro 상용 앱들을 보면 Activity 와 Fragment 를 1:N 으로 두는 앱이 참 많습니다. 하나의 Activity 에 여러 개의 Fragment 를 두다 보니, 자연스럽게 Android Navigation Component 를 사용하게 됩니다. Navigation Component 는 Fragment 간 상호작용과 데이터 통신을 간편하게 구현할 수 있도록 지원하며, Fragment to Fragment 에 Animation 도 비교적 편리하게 적용할 수 있습니다. 또한, AndroidStudio 3.3v 부터는 Navigation GUI 를 지원하기 때문에 앱의 전체적인 시나리오를 한 눈에 볼 수 있어, 개발 편이성도 증가시켜줍니다. Navigation Component 는 Fragment..
[XML] LineWork 각종 계산을 통해서 텍스트가 위치할 정중앙 값을 구하여 배치한 TextView 입니다. 저는 심플하고 깔끔한 디자인을 좋아하여 자주 사용하게 될 것 같습니다. 라인과 텍스트의 색상, 두께의 변경이 가능하며 텍스트의 경우, 폰트도 변경할 수 있도록 하였습니다. 애니메이션을 사용하여 감성 가득한 View Interaction 을 구성할 수 있습니다. 앱 온 보딩시 사용하면 좋을 듯 합니다.
[XML] HeaderTextView 헤더가 있는 뷰. 버튼으로 사용할 수도 있습니다. 헤더 텍스트의 색상, 크기 조절이 가능하며, 바디 텍스트의 경우 기본 텍스트뷰의 모든 속성을 사용할 수 있습니다. 테두리의 두께 역시 조절이 가능합니다. 근데 만들고 보니 현대카드 앱 느낌이 좀 나는 것 같습니다. 내친 김에 폰트까지 받아서 현대카드 처럼 만들었습니다. 색 배합을 다르게 하여 팬시한 연출도 가능합니다.