본문 바로가기

Android20

[MBTree] 기록#2: 채팅 화면 구현 채팅창 화면 구현 시, 멀티뷰 타입 RecyclerView 구현 프로젝트 구현 중에, 위와 같이 받는 사람의 위치와 말풍선이 다르고, 질문창도 띄울 때 여러 개의 뷰를 이용하여 리사이클러뷰를 만들어야 해서 찾아보던 중 멀티뷰 타입으로 리사이클러뷰를 구현할 수 있음을 알게되었다. 2022. 8. 15.
[Compose Layout] Column, Row, Box 사용법 Column(){ ... }: 수직 배치를 지원하는 레이아웃 Row(){ ... } : 수평 배치를 지원하는 레이아웃 - modifier: 크기, 동작, 모양을 변경하거나 사용자의 입력 처리 변수 - horizontalArrangement(Arrangement.Horizontal) : 수평 배치를 설정하는 변수 Android Compose 튜토리얼 | Android 개발자 | Android Developers Jetpack Compose는 네이티브 Android UI를 빌드하기 위한 최신 도구 키트입니다. Jetpack Compose는 더 적은 수의 코드, 강력한 도구, 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화합니다. 이 developer.android.com [C.. 2022. 7. 24.
[MBTree] 기록#1: 웹소켓으로 안드로이드 채팅 구현 안드로이드에서 실시간 채팅 기능을 구현하고자 할 때, 웹서버에 저장하는 방법과 Firebase를 이용하는 방법이 있다. 서버에 저장하는 경우(Websocket이용), 추후 채팅에 대한 추가 기능 개발같은 것을 하게 된다면 보다 용이하지만 서버와 클라이언트 모두 웹소켓에 대한 이해가 필요하다. Firebase의 경우에는 웹소켓보다는 쉽게 학습이 가능하므로 빠른 시간 내에 구현이 가능하지만 반대로 복잡한 기능은 추가하기 어려운 경우를 만날 수도 있다고 한다. 나는 이번 프로젝트에서 단순 채팅 기능보다 랜덤 매칭 등 부가적인 기능을 더할 것이므로 웹 소켓으로 구현하고자 한다. WebSocket - 서버와 클라이언트 간에 socket connection을 유지하여 실시간 양방향 통신과 데이터 전송을 가능하도록 .. 2022. 7. 13.
[안드로이드/Kotlin] Retrofit2 + okhttp 개념 서버 통신 라이브러리 OkHttp - REST API, Http통신을 간편하게 구현할 수 있도록 다양한 기능을 제공해주는 Java 오픈소스 라이브러리 - Retrofit 라이브러리의 베이스 Retrofit2 - Rest API 통신을 위한 라이브러리 - AsyncTask가 없이 Background스레드를 실행 -> CallBack을 통하여 Main Thread에서 UI를 업데이트 - OkHttp를 기반으로 더 안전하고 직관적으로 사용할 수 있게 만들어진 라이브러리 - Annotation사용으로 코드의 가독성이 좋고, 직관적인 설계 가능 - 통신 결과값을 JSON으로 변환해 줄 필요없이 바로 객체 대입 가능 - 결과값을 메인 스레드에서 바로 사용 가능 ✔️ okhttp의 경우 네트워크 Intercepter.. 2022. 6. 27.
[Cafe In] 기록 #4: 애뮬레이터에 테스트용 사진 넣기 Device File Explorer - sdcard - Pictures - 우클릭 후 upload 2022. 6. 27.
[Cafe In] 기록 #3: 자동 로그인 구현 사용자가 한 번 로그인을 하면 그 이후에 앱을 실행할 때는 바로 로그인 화면을 거치지 않고 메인 화면으로 넘어가게 해주고 싶었다. 그렇지만 무조건 사용자의 토큰값을 확인하는 액티비티를 거쳐서 다음 액티비티로 넘어가게 되어서 뒤로가기를 누르면 불필요한 액티비티를 마주했다. 이를 처음에는 finish() 함수를 사용할 생각을 못했어서, Splash화면을 따로 만들어서 그곳에서 토큰값에 따라 intent를 다르게 넘겨주려고 했다. 근데 그냥 startActivity()실행 후 이어서 코드에 finish()를 적어주면 해결됐다. 1. 토큰값 생성 및 받아오는 함수 private String getToken(){ spf = getSharedPreferences("Token", MODE_PRIVATE); Strin.. 2022. 6. 27.