전체 글(110)
-
android Socket IO Random Chat - 전체 구성
1. 전체 패키지 구성 2. data 3. Domain 4. Presentation 4. Util
2022.12.01 -
android Socket IO Random Chat - nickname
닉네임 화면 compose로 ui를 구성하는 건 생략하려고 합니다. ( 혹시 궁금하시면 한번 글 작성해보겠습니다. 댓글로 남겨주시면 감사하겠습니다. ) 각자 원하는 스타일이 다를 수 있기 때문에 그거에 맞춰서 만들어 주시면 됩니다. 간단하게 그냥 텍스트에 버튼 달고 log로 확인하셔도 무방합니다. 자! 이제 어떻게 연결하고, 사용하는지 그 과정을 소개하도록 하겠습니다. 대략적인 과정은 이렇습니다. 닉네임 만들고 -> emit 으로 전송 -> 소켓에서 닉네임 체크 -> 중복 결과 안드로이드로 전송 -> 화면에 결과 알려줌 1. Viewmodel 위의 화면을 mainScreen라 부르겠습니다. 먼저 socket을 만들어야겠죠? viewmodel 에 하나 만들어줍니다. 참고로 저는 최대한 ..
2022.11.28 -
android Socket IO Random Chat - Object Socket
1. build.gradle socket.io dependency 추가 implementation('io.socket:socket.io-client:1.0.1') { exclude group: 'org.json', module: 'json' } 2. Socket.Io Controller 추가 - object로 싱글톤 구현 - SnackBarManager로 오류 시에 앱을 다시 실행해달라 스낵바 메시지 출력 ( SnackBarManager는 내장된 라이브러리가 아닙니다. 저 자리에 log를 찍으셔서 확인 하시면 됩니다. ) - uriDevice는 안드로이드 스튜디오에서 Virtual Device와 Socket.IO 통신을 가능하게 합니다. - 실물 기계에서..
2022.11.26 -
android Socket IO Random Chat - Socket IO 연결 과정
Socket IO 통신 연결을 알아보자!! 소켓 IO가 무엇인지 이런 거는 생략하고 안드로이드에서 어떻게 사용하는지 이번 시간에는 연결 방법을 알려드립니다. 먼저 서버용 Node js 를 위해 Visual Code도 필요함을 말씀드립니다! node js 에서도 socket io 모듈이라는 걸 다운로드할 겁니다. 그때 받은 버전에 따라 안드로이드 버전도 맞아야합니다. 이 글을 보고 하실 분들은 저와 같이 맞춰주시면 되겠습니다 이제 visual code 가 있으신 분들은 스킵하시고 없으신 분들은 아래의 링크에서 다운로드하시면 됩니다. https://code.visualstudio.com/ Visual Studio Code - Code Editing. Redefined Visual Studio Code is ..
2022.11.26 -
andorid socket IO random chat app 글 시작
!!!!!!!!!Android Radom Chat!!!!!!!! 이번 글에서는 Random Chatting 어플을 만드는 첫 글을 작성해보려고 합니다. 만들면서 겪은 우여곡절을 기록하여 만드는 과정에서 배운 여러 개의 기능들과 정보들을 공유해보도록 하겠습니다. 먼저 build setting 과 안드로이드 버전을 알려드리고 다음으로 넣어가겠습니다. 이번 프로젝트 도중 android studio를 Dolphin을 업데이트 했습니다. 일단 Project 단위 build.gradle 입니다. buildscript { ext { compose_ui_version = '1.3.1' } dependencies { classpath 'com.google.dagger:hilt-android-gradle-plugin:2...
2022.11.26 -
Retrofit + OkHttp + Coroutine 날씨 공공데이터 API 예제 - 3(Data)
2편에 이어 이번엔 Repository 편입니다. Data package의 전체적인 구조입니다. 먼저 DefaultLocationTracker입니다. class DefaultLocationTracker @Inject constructor( private val locationClient: FusedLocationProviderClient, private val application: Application ) : LocationTracker { override suspend fun getCurrentLocation(): Pair? { val geo = Geocoder(application.applicationContext, Locale.KOREA) val hasAccessFineLocationPermiss..
2022.10.08