안드로이드

전역하고 첫 개발 일지이지만 이때까지 논 것은 아니고, 올려야지 올려야지 했는데 계속 개발만 하고 안 올렸다. 그래서 이 글은 0822라고 적혀 있지만 사실상 7월부터 오늘까지 했던 모든 개발 일지라고 생각하면 될 듯하다. 일단 계속 다크 모드만 강제로 적용됐는데 별론 것 같아서 낮에는 밝은 모드로 하는 것으로 바꾸었다. 그리고 캘린더 알람 수정 창이 너무 밋밋하기도 하고 통일성이 떨어지는 것 같아서 디자인을 바꾸었음. 타이머 등등도 원래 태블릿이랑 폰이랑 구성이 좀 달랐는데 뭔가 계속 모양이 찌그러져서 비슷하게 바꾸었다. 그리고 예약 기능도 위치를 위로 옮겼음. visibility를 gone으로 하니까 높이가 달라져서 invisible로 했는데, 그러니까 빈 공간이 허하게 남아서 위로 올렸음. 반복 타..
오늘은 캘람 1.2의 새로운 기능 중 하나인 '한 번만 사용'을 추가하는 과정에 있었다. 대상은 알람과 타이머이며, 한 번만 사용 체크가 되어 있는 알람과 타이머는 한 번 사용하면 따로 지울 필요 없이 삭제된다. 이건 매번 일회성 알람이나 타이머를 사용한 후 계속 기록에 남아서 생성. edit 창에 margin이 잘못 되어 있다. 수정 요망 그리고 TimerList Fragment에는 아이템이 삭제되고 broadcast가 오면 item delete가 필요하다. 알람도 마찬가지! 저번에 체크박스 vs 토글 스위치에 관련해서 찾아본 게 이 기능 때문인데, 이건 체크박스가 맞는 것 같아서 체크박스로 일단 해두었다.
최근 타이머 앱을 만들다가 Foreground Service가 시작되었을 때 정확히 10초 후에 알림이 발생하는 것을 확인, 이에 대한 검색을 통해 새로운 정보를 알게 되어 블로그에 메모합니다. 서비스에서 startForeground 명령 이후 10초 후에 알림이 발생할 때 - 다음과 같은 코드를 Notifcation Builder에 추가해주세요. builder.setForegroundServiceBehavior(NotificationCompat.FOREGROUND_SERVICE_IMMEDIATE)
좀 재밌는 걸 구현했는데, 저기 핸들 버튼의 애니메이션이 어떻게 동작하냐면, 버튼 누르지 않고 그냥 Panel을 드래그하기 시작하면 화살표 방향이 바뀐다. 그런데 다시 그대로 두면 원래 방향으로 돌아간다. 근데 제대로 된 방향으로 드래그가 성공했다면 다시 안 돌아간다. 별 거 아닌 것 같긴 한데 prevState, newState말고 그 전전 상태도 필요해서 변수까지 따로 뒀다. 그리고 이제 본격적으로 Panel 안의 뷰를 배치하고 있다. 아마 저기엔 일정표와 같이 될 것 같다.
그냥 혼자서 정리하는 글 - 버튼 Tint 색을 부드럽게 전환하는 코드에 관한 내용입니다. 보통은 버튼을 자기 멋대로 만들어서 켜기 / 끄기 용으로 쓸 때, 색상으로 구분했을 때 색깔을 회색 색상으로 전환할 수 있게 할 텐데, 그거에 관하여 간략하게 메모하고자 합니다. XML 버튼은 대충 이렇게 생겼는데요, Google Home 앱에서 이런 모양의 버튼을 찾을 수 있을 겁니다. 별 건 아니지만 버튼 하나의 코드를 가져오면 이렇게 생겼습니다. 참고로 CircleImageView는 나중에 한번 라이브러리를 소개할 건데, 별 건 없고 원 모양 이미지뷰입니다. 커스텀 라이브러리에요. 굳이 라이브러리를 불러오지 않아도 drawable에서 shape를 oval로 하셔도 비슷한 효과가 날 거에요 (원). 이렇게 배경..
안녕하세요, 아이엔입니다. 요즘 지식IN에서 개발 답변을 달아주는데 재미가 들렸는데, 정말 자주 업로드되는 질문 중 하나가 바로 '코딩 강의 등에서 치라는 대로 쳤는데 Unresolved reference 오류가 난다' 류의 질문입니다. 이는 보통 강의와 학습자의 시간 차가 나서 일어나는 현상인데, 강의 촬영 및 작성 시기에는 코틀린 익스텐션 (Kotlin Extension)이 지원되었으나 현재는 코틀린 익스텐션을 권장하지 않기 때문에 기본적으로 제외되어 있기 때문입니다. 그렇기 때문에 코틀린 익스텐션을 제외한 방법으로 레이아웃의 뷰를 가져와야 하고, 그 방법 중 하나인 데이터바인딩을 이용해 이 문제를 해결할 것입니다. build.gradle (모듈 수준) 먼저 build.gradle 파일의 가장 상단에..
오랜만에 레코드 루틴을 다시 켰다. SoundGround도 베이퍼웨어 될 판인데 이 아이는 출시해야지 않겠나 싶다. 약간의 오류랑 아이콘 타입, 그리고 설정 다른 앱이랑 맞게 바꾸고 빨리 출시해야겠다. 아이콘 변경 했고 설정도 빨리 맞게 바꿔야겠다. SoundGround도 출시하고 싶다 (...)
안드로이드 Jetpack Compose를 배워보기로 했다. 그게 이번 방학 목표였는데, Jetpack Compose를 하려면 이제 그냥 안드로이드 스튜디오로는 안 되고 Canary 버전으로 설치를 해야 한다고 한다. Canary로 설치해서 새 Compose 프로젝트를 해보니까 구조가 이렇게 되어 있었다. class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { AndroidJetpackEx2Theme { // A surface container using the 'background' color from t..
아이엔 / ienground
'안드로이드' 태그의 글 목록