Android
-
사용자 수면 시간 추적하기Android 2025. 8. 31. 21:15
안녕하세요. 오늘은 사용자의 수면 시간을 추적하는 원리에 대해 한번 소개해볼려고 합니다!1. 사용자가 잠든 시각 추적하기시스템 정보로부터 사용자가 잠든 시간을 추적해 볼 수 있습니다. 하나씩 살펴보겠습니다!1-1. 매니저 받아오기/사용 권한 받아오기val usageStatsManager = getSystemService(USAGE_STATS_SERVICE) as UsageStatsManager 안드로이드에서 getSystemService() 호출할 때, 어떤 종류의 시스템 서비스 객체를 얻고 싶은지 문자열 상수로 지정해줘야 합니다. USAGE_STATS_SERVICE 상수를 통해 앱 사용 통계 관련 서비스를 요청합니다. 이때, UsageStatsManager는 안드로이드에서 앱 사용 기록, 화면 사용 시..
-
채팅 기능 구현하기(with 챗봇)Android 2025. 6. 22. 21:44
안녕하세요~ 일요일 주말 저녁이네요. 요즘 낮엔 더운데 저녁엔 바람이 불어서 산책하기 좋은 것 같아요 😆오늘은 챗봇과 함께 채팅을 하는 기능을 한번 알아보고자 합니다. 참고로 제가 제목 옆에 괄호로 'with 챗봇' 이라고 한 이유는 다른 실제 유저랑 채팅하는 경우도 있기 때문인데요. 이 부분은 추후에 한번 다뤄보겠습니다!채팅 기능 원리채팅 기능의 기본적인 원리는 바로 리사이클러뷰 (RecyclerView) 입니다. 특히 리사이클러뷰에서 뷰타입을 여러개 사용하는 Multi-viewType RecyclerView 가 핵심입니다. 채팅 기능 구현1. UI (XML 기반)첫 번째로, UI 를 작성합니다. RecyclerView 를 배치한 다음에 하위에 사용자가 직접 채팅을 칠 수 있는 대화창을 만들면 됩니다..
-
Bottom Sheet Dialog, Slider, ProgressBarAndroid 2025. 6. 8. 22:06
안녕하세요~ 오늘은 유저 인터페이스(UI) 에 관련된 요소 3가지를 다뤄보려고 합니다 🫠1. Bottom Sheet Dialog화면 아래에서 위로 슬라이드 되어 올라오는 창으로, 부가적인 내용을 사용자에게 제공될 때 사용됩니다. 전체 화면을 덮지 않고 일부만 덮어 효율적이고 직관적으로 화면을 구성하기 좋습니다. 구현 방법부터 알아보겠습니다! 먼저 루트 레이아웃을 FrameLayout 기반인 CoordinatorLayout 으로 해줘야 합니다. bottom sheet dialog 와 관련된 레이아웃은 따로 작성하여 포함시키기 위해 include 속성을 사용합니다. // @layout/bottom_sheet_dialog // ... 첫 번째로, layout_behavior..
-
네이버 지도 SDK 사용하기Android 2025. 6. 1. 22:30
안녕하세요~ 6월의 시작이네요. 점점 여름이 다가오는 듯 합니다.오늘은 숙소를 표시하기 위해 필요한 네이버 지도를 연동하는 방법을 알아보겠습니다! 😀1. 네이버 클라우드 플랫폼에서 애플리케이션 등록하기 먼저 네이버 클라우드 홈페이지를 접속한 다음, 로그인을 해줍니다. 그 다음에는 콘솔창을 누릅니다. 네이버에서 다양한 서비스를 제공해주는데요. 저희는 네이버 지도가 필요하기 때문에 Application Services 에서 Maps 를 선택합니다. 하단의 이용 신청을 눌러주고 이후에 나오는 어플리케이션 등록 버튼도 눌러줍니다. 여기서는 Application 에 대한 정보를 기입해야 합니다. Application 이름, API 선택, Android 앱 패키지 이름이 필요합니다. API 선택은 꼭 Dynam..
-
카카오 로그인 기능 구현하기Android 2025. 5. 11. 21:29
안녕하세요~ 오늘은 카카오 로그인 기능에 대해서 다뤄보려고 합니다! 작년에 해커톤을 나갔을 때 카카오 로그인을 사용하지 않고 백엔드에서 자체 서버를 구현했었는데 이와 관련한 심사위원 피드백이 생각났습니다. 어뷰징(abusing), 즉 자체 로그인 시스템을 쓰면 한 사람이 여러 개의 계정을 만들어 댓글을 조작하는 등 악의적인 행위를 할 수 있다고 합니다. 따라서 이번에는 피드백을 반영하여 자체 서버를 사용하지 않고 카카오, 네이버, 구글 API 을 이용해보기로 했습니다. 1. 애플리케이션 추가하기 먼저, 해당 url 의 홈페이지에 접속한 다음 카카오 계정으로 로그인을 합니다. 이후에는 '내 애플리케이션'을 클릭합니다. 그 다음엔, 애플리케이션 추가하기를 클릭해줍니다. 그 다음엔 해당 화면이 뜨는데요. 엡..
-
하단 내비게이션 바(BottomNavigationView)Android 2025. 5. 4. 22:28
안녕하세요! 오늘은 캡스톤 진행을 하면서 꼭 필요한 UI 요소 중 하나인 BottomNavigationView 에 대해 소개하겠습니다. 저희 팀은 일차적으로 메인 대시보드 화면을 이렇게 만들어 보았습니다. 그 중 초록색 영역으로 표시한 부분은 하단네비게이션뷰(BottomNavigationView)라고 합니다. 안드로이드 공식 문서를 한번 살펴보겠습니다. 1) 정의"Represents a standard bottom navigation bar for application" → "애플리케이션용 표준 하단 내비게이션 바를 나타낸다" 2) 사용하는 이유 및 제한 요건"Bottom navigation bars make it easy for users to explore and switch between top-..
-
알람 기능 구현하기(AlarmManager)Android 2025. 4. 27. 22:10
안녕하세요! 오늘은 알람 울리는 기능에 대해서 한번 알아보고자 합니다 🙌알람 기능을 구현하기 위해서는 안드로이드 4대 컴포넌트 중에 액티비티, 브로드캐스트 리시버, 서비스 가 필요합니다. 하나씩 짚어보겠습니다!1. AlarmManager 에서 BroadcastReceiver 등록// AlarmSettingFragmentval alarmManager = requireContext().getSystemService(Context.ALARM_SERVICE) as AlarmManagerif(alarmManager.canScheduleExactAlarms()) { val intent = Intent(requireContext(), AlarmReceiver::class.java) val pending..
-
서버와 통신하기(retrofit)Android 2025. 3. 16. 22:34
띡띡띡... 오늘의 할일 작성 완료! 😎 어? 근데 데이터가 어떻게 저장이 되는걸까?🤔 사용자가 입력한 데이터는 어떻게 저장이 될까요?크게 내부 저장소와 외부 저장소로 나뉠 수 있는데, 데이터양이 많을 경우에 더 적합한 외부 저장소, 즉 서버에 데이터를 저장하는 방법에 대해 다뤄보고자 합니다. 안드로이드에서는 이를 위해 retrofit 을 주로 많이 사용합니다. 한번 하나씩 파헤쳐 보겠습니다! 1. retrofit 의존성 추가retrofit 을 사용하기 위해서는 먼저 관련된 의존성을 모듈 단위의 build.gradle 에 추가해야 합니다.implementation("com.squareup.retrofit2:retrofit:2.9.0")implementation("com.squareup.retrofit..