사전적 의미로는 단거리 레이스
또는 단거리 전력질주
라는 뜻으로,
짧은 단위의 계획을 바탕으로 프로젝트를 발전시켜 나아가는 방법론의 하나이다.
MoMo
팀에서는 3일 단위의 스프린트를 활용하여 프로젝트를 진행하기로 했다 !
✔️ 각 스프린트마다 목표
, 알게된 지식들
, 느낀점
, 다음 스프린트에 대한 다짐
정리
2021-01-13(수)
~ 2021-01-15(금)
view.animate
view.animate
를 통해 alpha값과 duration을 조정하면 fadeIn 또는 fadeOut되는 로딩 애니메이션 효과를 구현할 수 있다! private fun fadeInSwipeUpImage() {
viewBinding.imageViewSwipeUp.apply {
visibility = View.VISIBLE
alpha = 0f
animate()
.alpha(1f)
.setDuration(resources.getInteger(android.R.integer.config_longAnimTime).toLong())
.setListener(null)
}
}
private fun fadeOutSwipeUpImage() {
viewBinding.imageViewSwipeUp.apply {
visibility = View.VISIBLE
alpha = 1f
animate()
.alpha(0f)
.setDuration(resources.getInteger(android.R.integer.config_longAnimTime).toLong())
.setListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator) {
viewBinding.viewLoading.visibility = View.INVISIBLE
}
})
}
}
RecyclerView.OnScrollListener()
RecyclerView.OnScrollListener()
를 이용하면 스크롤 상태를 감지할 수 있다.SCROLL_STATE_IDLE
- 스크롤 중이 아닌 상태SCROLL_STATE_DRAGGING
- 스크롤 중인 상태 private fun setListeners() {
viewBinding.recyclerViewGradient.addOnScrollListener(scrollListener)
}
private val scrollListener = object : RecyclerView.OnScrollListener() {
override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
super.onScrollStateChanged(recyclerView, newState)
when (newState) {
SCROLL_STATE_IDLE -> fadeInSwipeImage()
SCROLL_STATE_DRAGGING -> fadeOutSwipeImage()
}
}
}
✳️ 좋았던 점
데모데이 전날에 끝나는 정말 마지막 스프린트라 더더욱 아쉬운 마음이 들지 않게끔 임하려고 했던 것 같다. 덕분에 큰 문제 없이 여유롭게(!) MoMo를 잘 완성해낼 수 있었다! 특히 내가 맡은 부분을 다 끝낸 후에 계절학기 때문에 바빴던 다른 안드 친구를 도와줄 수 있었던 점도 너무 좋았다!! 내가 다른 누군가에게 도움이 될 수 있다니,, 굉장히 새로운 경험이었다
❎ 아쉬웠던 점
가장 아쉬운 점은 앱잼이 끝났다는 점..
하지만 아직 릴리즈가 남았으니 아쉬운 마음은 접어두기로 했다!