Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

228 screen loading speed improvement #241

Merged
merged 13 commits into from
Jun 12, 2024

Conversation

KimDonghyeok
Copy link
Collaborator

@KimDonghyeok KimDonghyeok commented Jun 7, 2024

:: 최근 작업 주제 (하나 이상의 주제를 선택해주세요.)

  • 기능 추가
  • 리뷰 반영
  • 리팩토링
  • 버그 수정
  • 컨벤션 수정

:: 구현 목표 (해당 브랜치에서 구현하고자 하는 하나의 목표를 설정합니다.)

  • 홈화면 로딩 속도 개선

:: 구현 사항 설명 (작업한 내용을 상세하게 기록합니다.)

  • HomeScreenViewModel.initHomeScreen() 에서 Future.wait 적용하여 병렬처리로 동작하도록 변경
    • getRecommendedFeedsUseCase, getSearchFeedsUseCase 유스케이스에 적용
  • 홈화면 배경이미지 CachedNetworkImageProvider 통한 캐싱 처리
  • 홈화면 스크린 전체 로딩 인디케이터 제거
  • 홈화면 위치, 현재 날씨, 현재 기온, 전일 대비 기온 위젯으로 분리
  • RecommendOotdWidget 스켈레톤 위젯인 SkeletonRecommendOotdWidget 작성
  • RecommendOotdListWidget 로딩 상태에 따른 shimmer 로딩 효과 적용

:: 성장 포인트 (해당 기능을 구현하며 고민했던 사항이나 새로 알게된 부분, 어려웠던 점 등을 작성합니다.)


:: 기타 질문 및 특이 사항

  • HomeScreenViewModel.initHomeScreen()getDailyLocationWeatherUseCase 에서 GPS, 날씨 정보를 받아오는 부분에서 지연시간이 발생하여 홈화면 전체의 로딩속도에 영향을 끼침, 해당부분 로직 및 속도 개선이 필요할 듯

@KimDonghyeok KimDonghyeok self-assigned this Jun 7, 2024
@KimDonghyeok KimDonghyeok linked an issue Jun 7, 2024 that may be closed by this pull request
2 tasks
Copy link
Contributor

@somarok somarok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다.
코멘트 확인 부탁드릴게요 :)

}
}

class SkeletonRecommendOotdWidget extends StatelessWidget {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기존 RecommendOotdWidget 과 child 부분만 빼고 동일한데,
굳이 분리하지 않고 child를 nullable로 만들어서 재사용하면 더 좋을 것 같습니다.

color: Colors.white,
),
),
viewModel.dailyLocationWeather != null
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

viewModel.dailyLocationWeather 의 null 여부를 확인하는 중복 코드들이 보이는데,
따로 한줄로 빼서 사용하면 좋을 것 같습니다.
그리고 위젯을 선언해서 값을 넣어야 할 필드에 삼항연산자로 처리하면 더욱 깔끔할 것 같네요

@@ -249,3 +239,115 @@ class _HomeScreenState extends State<HomeScreen> {
);
}
}

class HomeScreenCityTextWidget extends StatelessWidget {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

분리한 위젯은 컴포넌트 폴더로 뺴주시면 감사하겠습니다.

Copy link
Collaborator

@NalaJang NalaJang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@KimDonghyeok KimDonghyeok reopened this Jun 8, 2024
@KimDonghyeok KimDonghyeok merged commit be6644f into dev Jun 12, 2024
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[홈화면] 로딩 속도 개선
3 participants