Skip to content

inju2403/MindWeather

Repository files navigation

Link

Play Store

마음의 날씨 (Android AI Diary App)

Version

1.1.1

Project Description

'오늘, 내 마음의 날씨는 무엇일까?'

'마음의 날씨'는?

딥러닝을 활용한 NLP를 사용하여 한글어 감정 분석을 통해 사용자가 작성한 일기의 내용을 분석하여 감정 상태를 분석, 도출한 뒤, 사용자에게 결과를 그래프로 시각화하여 제공하여 피드백을 줄 수 있는 일기 안드로이드 애플리케이션

Background

일기의 경우, 단순 기록으로만 끝나는 경우가 많은데 이를 넘어서 감정도와 레포트를 제공함으로써 사용자에게 동기부여 및 의미있는 기록을 돕고 사회적으로 긍정적인 결과를 기대할 수 있음

Role

안드로이드 모바일 어플리케이션 UI/UX, 아키텍쳐 설계 및 구축, 데이터 시각화 및 전처리, User contacts

Used Libraries

  • ViewModel (Store and manage UI-related data)
  • LiveData (Observable data)
  • Retrofit (HTTP client)
  • Gson (A Java library that can be used to convert Java Objects into their JSON representation)
  • Kotlin Coroutine (Light-weight threads)
  • MPAndroidChart (A powerful & easy to use chart library for Android)
  • DiffUtil (A utility class that calculates the difference between two lists and outputs a list of update operations that converts the first list into the second one)
  • ViewPager2 (Swipe views allow you to navigate between sibling screens, such as tabs, with a horizontal finger gesture, or swipe)
  • dotsindicator (This library makes it possible to represent View Pager Dots Indicator with 3 different awesome styles. It supports ViewPager and ViewPager2)

Architecture

This AI Diary app uses MVVM architecture. There is also a Repository layer, which is for interacting with API calls or DB transactions.

// View
viewModel!!.diaryList.observe (this, Observer {
    // TODO
})

// ViewModel
private val diaryListState = MutableLiveData<List<Diary>>()
val diaryList: LiveData<List<Diary>> get() = diaryListState

diaryListState.value = repo.getDiarys() // get data from API and/or DB

Author

Licence

Copyright 2020 LEE SEUNGJU.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.