전체 글
-
서비스 생명주기 - startService/bindServiceAndroid 2024. 9. 12. 19:00
Service 란?서비스는 오래 걸리는 작업을 백그라운드에서 처리할 수 있게 해주는 컴포넌트이다. startService 의 생명주기bindService 의 생명주기startService() vs bindService()startService 같은 경우에는 다음과 같이 도식화 할 수 있다.즉, 백그라운드 작업은 필요해서 서비스를 이용하지만 액티비티와 데이터를 주고받을 일이 없을 때 사용한다. 즉, 상호작용이 필요하지 않을 때는 startService() 를 사용하면 된다. bindService() 는 다음과 같이 도식화할 수 있다.bindService() 는 startService() 와 달리 서비스와 다른 컴포넌트(주로 액티비티) 간의 데이터 전달 등 상호작용이 원활하게 필요할 때 사용하면 된다.
-
안드로이드 기본 앱과 연동하기 - 갤러리 앱Android 2024. 9. 5. 15:16
1. 이미지 데이터 이해하기갤러리 앱을 연동하기 위해서는 이미지에 대한 이해가 필요하다.이미지는 Drawable 객체와 Bitmap 객체로 나뉜다. Drawable 객체 같은 경우는 리소스 이미지를 의미하고, Bitmap 객체 같은 경우에는 파일에서 읽은 이미지나 네트워크에서 내려받은 이미지를 의미한다. Bitmap 객체는 BitmapFactory 를 이용하여 생성되는데, 아이콘처럼 작은 이미지를 불러올 때는 문제가 없지만 카메라로 찍은 사진이나 서버에서 내려받은 이미지 등 크기가 큰 이미지를 불러올 때는 OOM 오류가 발생할 가능성이 높다. 이때 OOM 오류란 이미지 용량이 커 앱의 메모리가 부족해서 발생하는 오류를 말한다. 이를 해결하려면 이미지 용량(크기)를 줄여야 한다.이외에 Glide 나 Pic..
-
브로드캐스트 리시버(Broadcast Receiver)Android 2024. 8. 28. 13:06
정의- 시스템에 부팅 완료와 같은 특정 상황이 발생할 때 (= 이벤트가 발생하면) 실행되는 컴포넌트- 줄여서 리시버라고 함. - 해석하면 '방송 수신기' → 시스템에서 특정 상황이 발생했을 때 이를 받아서 처리하는 수신기인 브로드캐스트 리시버를 앱에 장착한다. 실행 방법안드로이드 4대 컴포넌트 중 하나이므로, 시스템에 인텐트를 전달하여 실행한다. 브로드캐스트 리시버 생성/등록class MyReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { // 다른 컴포넌트에서 해당 리시버를 실행하려고 인텐트를 시스템에 전달하면, 리시버의 onReceive() 함수가 자동 호출된다. // ..
-
-
Material LibraryAndroid 2024. 7. 31. 15:54
12-1. AppBarCollapsingToolbarLayout ... 12-2. TabLayout(com.google.android.material.tabs.TabLayout)Tab 버튼을 동적으로 만드는 경우(kotlin)val tabLayout = binding.tabsval tab1: TabLayout.Tab = tabLayout.newTab()tab1.text = "Tab1"tab1.icon = .. tabLayout.addTab(tab1) Tab 버튼을 정적으로 만드는 경우(xml) .. Tab 버튼 event 처리val tabLayout = binding.tabstabLayout.addOnTabSelectedListener(object: TabLayou..
-
-
QA - 테스트 시나리오 만들기Android 2024. 6. 18. 21:22
나는 최종 팀플에서 개발과 함께 QA 역할을 맡았다.QA가 하는 역할은 뭘까?앱 배포를 위해선 앱 테스트 버전 등록이 필요하다. 이때, MVP에 리젝 사유 또는 기능 결함이 있으면 안된다.QA가 하는 역할은 앱 배포가 정상적으로 되기 위한 과정을 감독하고 관리하는 것이다. 오늘은 팀프로젝트 중간 발표 이후 QA 를 진행했다.아래와 같이 각 화면별로 테스트 케이스에 대한 시나리오를 만들어보았다.non-pass 는 오류 사항이고, 빨강색은 앱 배포시 리젝이 될 수 있는 경우로 표시해보았다.해당 부분을 오늘 진행하면서 느낀점이 있다. 이렇게 하면 좋은점은 정확히 어느 부분에서 오류가 생기는지 좀 더 쉽게 알 수 있다.또한, 아쉬운 점은 기존 팀플을 진행할 때는 오류가 생긴걸 발견했을 때 그때 인지하고 고치는 ..