본문 바로가기

안드로이드

(8)
카카오 로그인 API - 출시를 위한 키 해시 등록하는 방법 이전에 카카오 로그인 API를 안드로이드 앱에 연동하는 방법을 알아봤습니다. develop-writing.tistory.com/31 [Android] 카카오 로그인 연동하기 이번에는 카카오 로그인을 연동하려고 합니다. 카카오 로그인을 실서비스에 적용하려고 하려고 할 때 필요한 작업은 다음 세 가지가 있습니다. 1. 프로젝트 설정 2. 기능 구현 3. 릴리즈 해시 키 develop-writing.tistory.com 카카오 로그인 기능이 있는 앱을 플레이 스토어 출시하기 위해서 릴리즈 해시 키를 카카오 개발자 홈페이지에 등록해야 합니다. 릴리즈 해시 키를 등록했지만 카카오 로그인 기능이 작동을 안하는 상황이 있습니다. 바로 Google play app signing 기능을(구글이 앱 서명키를 앱 개발자 대..
[Android / Kotlin] DataBinding을 사용해 뷰와 데이터를 연결해주기 뷰를 데이터를 연결하는 과정 1. 데이터 클래스를 만든다. data class MyName(var name: String = "", var nickname: String = "") 2. 레이아웃 태그 안에 data 태그를 만들고, 을 정의한다. name은 데이터를 layout xml 파일에서 view에 연결할 때 사용된다. type은 1번에서 만든 데이터 클래스를 사용한다는 의미이다. 3. MainActivity에서 data class의 객체를 만든다. private val myName: MyName = MyName("Seung") 4. 바인딩 오브젝트에 1번에서 만든 data class의 객체로 설정한다. binding.myName = myName 5. XML 파일에서 뷰의 텍스트를 에서 정의한 nam..
안드로이드에서 Data Binding을 왜 사용할까? Data Binding을 왜 쓰는가? 앱의 한 Activity에 View 계층 구조가 복잡한 경우 findViewById()는 비용이 많이 들고 앱 속도가 느려지는데, 안드로이드는 원하는 View를 찾을 때까지 루트부터 보기 계층을 통과하기 때문이다. 이에 대한 해결책으로 각 View에 대한 참조가 포함된 객체를 만드는 것이다. Binding 오브젝트라고 불리는 이 오브젝트는 앱 전체가 사용할 수 있다. 이 기술을 데이터 바인딩이라고 한다. 앱에 대한 바인딩 개체가 생성되면 뷰 계층을 통과하거나 데이터를 검색할 필요 없이 바인딩 개체를 통해 View 및 기타 데이터에 액세스할 수 있다. Data Binding의 이점 코드가 짧아지고 읽기 쉬워진다. findByView()를 사용하는 것보다 유지, 보수하기..
ConstraintLayout 이해, 정복하기 목표 ConstraintLayout, Constraint, Chain, Constraint 삭제 방법, Baseline constraint 등에 대해서 알아봅시다! ConstraintLayout 무엇? 유연한 방식으로 자식뷰의 위치, 크기를 조정할 수 있는 뷰 그룹이다. ConstraintLayout에 있는 각각의 뷰들의 위치는 적어도 하나의 수평과 수직 제약을 사용해 정해진다. 하나의 제약은 한 뷰를 다른 UI 요소, 부모 레이아웃, 보이지 않는 기준선에 연결하거나 나란히 한다. ConstraintLayout을 사용함으로써 얻는 이점 스크린 사이즈나 해상도가 다양한 기기에 반응해 레이아웃을 만들 수 있다. LinearLayout보다 평평한 뷰 위계를(a flatter view hierarchy) 결과로..
모서리가 둥근 ImageView, Button, TextView 만들기 뷰의 모서리를 둥그렇게 만드는 방법 2가지는 1. 둥그런 효과를 주는 xml을 만들어 뷰의 background 속성에 넣는다. 2. CardView를 사용한다. 버튼이랑, 텍스트 뷰의 경우 1번으로도 충분히 위 이미지 같이 모서리가 둥그래진다. 하지만 이미지 뷰의 경우 메인 이미지 때문에 백그라운드 속성이 적용이 안돼 모서리가 직각으로 나온다. 그래서 이미지뷰의 경우 카드뷰를 사용해 둥그런 효과를 준다. 1. 둥그런 효과를 주는 xml을 만들어 뷰의 background 속성에 넣는다. (버튼, 텍스트뷰) - activity_main.xml - round.xml Radius 속성을 통해 원하는 모서리만 둥그렇게 만들 수 있다. 2. CardView를 사용한다. implementation 'com.andro..
[RecyclerView]Header와 Footer를 가진 리사이클러뷰 리사이클러뷰에 헤더와 푸터를 달아서 보여주는 리스트가 무엇을 의미하는지 알 수 있습니다. 리사이클러뷰에서는 헤더와 푸터를 적용하는 방법은 RecyclerView.Adapter의 getItemViewType 함수를 사용하면 됩니다. 리사이클러뷰는 헤더와 푸터를 각각 하나의 아이템으로 생각하기 때문에 getItemViewType 함수를 통해 보여줄 뷰가 아이템인지, 헤더, 푸터 인지에 따라 다르게 작업을 하면 됩니다. 즉 뷰홀더 레이아웃은 총 3개(아이템, 헤더, 푸터)가 필요합니다. 필요한 코드는 다음과 같습니다. - MainActivity.java public class MainActivity extends AppCompatActivity { RecyclerView recyclerView; ArrayLi..
[안드로이드/Android] 플레이스토어 앱 강제로 업데이트하기 출시한 앱의 경우 업데이트가 됐을 때 사용자에게 업데이트를 하라고 알려줘야 한다. 안드로이드에서는 AppUpdateManager 객체를 제공한다. 업데이트 요청 방식은 '즉시' , '유연' 으로 총 두 가지 방식이 있다. '유연' 요청은 앱 백그라운드에서 업데이트를 받는 방식이다. 한 마디로 앱을 업데이트하면서 앱을 사용할 수 있게 하는 방식이다. '즉시' 요청은 사용자가 앱을 업데이트하고 다시 시작해야 하는 전체 화면 사용자 환경입니다. 즉 앱 업데이트를 해야 앱을 사용할 수 있는 것이다. 이 포스팅에서는 '즉시' 업데이트에 대해서 알아볼 것이다. 필요사항 1. 업데이트는 Android 5.0(API 수준 21) 이상을 실행하는 기기에서만 작동하며, 2. Play Core 라이브러리 1.5.0 이상 사..
[안드로이드/Android] 기기 네트워크 연결 상태 확인 앱 내에서 네트워크 연결을 확인해야 할 상황이 많이 있다. 예를 들어 실시간 방송 중 네트워크가 끊겼다면?, 채팅을 보낼 때 인터넷이 연결이 안 되는 상황이면? 등등 사용자가 네트워크에 연결이 됐는지 안 됐는지, 연결이 됐다면 와이파이인지 셀룰러 통신(3G, LTE, 5G)을 사용하고 있는지를 알기 위한 코드이다. * 셀룰러 통신 : 주파수 자원을 효율적으로 활용해 기지국을 공간적으로 확장하는 이동통신 - 네트워크 연결 상태를 토스트 메세지로 띄우도록 한 결과 화면입니다. - 메니페스트 파일 네트워크 상태 접근하기 위한 권한 추가 - 네트워크 연결 확인 java 코드 public void getConnectivityStatus(Context context) { // 네트워크 연결 상태 확인하기 위한 Co..