본문 바로가기

Android/Project10

[MBTree] 기록#2: 채팅 화면 구현 채팅창 화면 구현 시, 멀티뷰 타입 RecyclerView 구현 프로젝트 구현 중에, 위와 같이 받는 사람의 위치와 말풍선이 다르고, 질문창도 띄울 때 여러 개의 뷰를 이용하여 리사이클러뷰를 만들어야 해서 찾아보던 중 멀티뷰 타입으로 리사이클러뷰를 구현할 수 있음을 알게되었다. 2022. 8. 15.
[MBTree] 기록#1: 웹소켓으로 안드로이드 채팅 구현 안드로이드에서 실시간 채팅 기능을 구현하고자 할 때, 웹서버에 저장하는 방법과 Firebase를 이용하는 방법이 있다. 서버에 저장하는 경우(Websocket이용), 추후 채팅에 대한 추가 기능 개발같은 것을 하게 된다면 보다 용이하지만 서버와 클라이언트 모두 웹소켓에 대한 이해가 필요하다. Firebase의 경우에는 웹소켓보다는 쉽게 학습이 가능하므로 빠른 시간 내에 구현이 가능하지만 반대로 복잡한 기능은 추가하기 어려운 경우를 만날 수도 있다고 한다. 나는 이번 프로젝트에서 단순 채팅 기능보다 랜덤 매칭 등 부가적인 기능을 더할 것이므로 웹 소켓으로 구현하고자 한다. WebSocket - 서버와 클라이언트 간에 socket connection을 유지하여 실시간 양방향 통신과 데이터 전송을 가능하도록 .. 2022. 7. 13.
[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.
[Cafe In] 기록 #2: Retrofit2 Retrofit2 - REST통신 라이브러리 - AsyncTask없이 백그라운드 스레드 실행 → 콜백을 통해 메인스레드 UI에서 업데이트 - HttpUrlConnection의 반복 작업 간소화 - Annotation사용으로 코드의 가독성이 뛰어남 구성요소 - DTO (POJO) : Json타입변화에 사용 - Interface : 사용할 http CRUD메소드들을 정의해놓은 메소드 - Retrofit.Builder클래스 : baseUrl(url) / Converter 설정할 인터페이스 인스턴스 HTTP 요청 CRUD방식 HTTP요청메소드 설명 Create @POST 정보 생성, body에 전송할 데이터를 담아서 서버에 생성 Read @GET 정보 조회, url에 정보 포함해서 전달 Update @PUT 정.. 2022. 3. 2.
[Cafe In] 기록 #1 1. ImageButton 버튼의 아이콘 크기 조절 속성 ->https://dreamaz.tistory.com/154 android:scaleType="fitCenter" 2. 키보드와 UI 동시에 올리기 ->Manifest.xml 파일 3. Fragment내의 RecyclerView의 아이템 클릭 시, 다른 Fragment로 교체하기 -> Adapter에서 처리 @Override public View getView(int i, View convertView, ViewGroup viewGroup) { //말풍선 클릭 시 댓글창 넘어감 btn_comment.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View vi.. 2022. 2. 17.