전체 글
-
Jetpack NavigationAndroid 2023. 2. 24. 02:18
Jetpack Navigation 이번에는 Jetpack에 소개된 Navigation에 대해서 작성해 보도록 하려고 합니다:) 이번 개인 프로젝트에서 팀장님께서 써보라고 소개해주셨는데, 처음 보는 개념이어서 공부하는 겸 블로그를 작성해 보겠습니다ㅎㅎ The Chanllenge of ViewModel Sharing [Jetpack Navigation][https://developer.android.com/guide/navigation] 은 하나 또는 여러 fragment로 구성된 적은 수의 Activity로 설계된 앱에서 사용가능합니다. 이 아키텍처를 선택한 이유들은 Ian Lake의 Single Activity:Why, When and How에서 다루고 있는데요, 개인적으로 이해한 것은, 기존 여러 개의..
-
View Binding in FragmentAndroid 2023. 2. 24. 02:10
Fragment에서 View Binding을 사용 시 발생하는 이슈가 있어 해당 이슈를 알아보는 글을 포스팅하려고 합니다. Problems in ViewBinding View Binding in Fragment private var _binding: ResultProfileBinding? = null // This property is only valid between onCreateView and // onDestroyView. private val binding get() = _binding!! override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { _..
-
Custom CalendarAndroid 2023. 2. 24. 02:03
CustomCalendar 생성하기 Android 내부에도 Calendar View가 존재합니다 java.lang.Object ↳ android.view.View ↳ android.view.ViewGroup ↳ android.widget.FrameLayout ↳ android.widget.CalendarView 하지만 커스텀할 수 있는 범위도 너무 한정적이고, 예쁜 디자인에 맞는 캘린더를 개발하기 위해서는 직접 달력을 커스텀하여 개발하는 과정이 필요합니다. 필자는 캘린더를 커스텀하기 위해서 RecyclerView + GridLayoutManager를 사용했습니다. 캘린더의 생성만을 확인하기 위해 databinding, LiveData, architecture등의 사용을 제외했고, 추가적인 기능..
-
Rxjava Observable 만들어보기!RxJava 2023. 2. 24. 02:00
안녕하세요! mash up 10기 안드로이드 팀 정세희라고 합니다 : ) 이번 mash up 안드로이드 팀에서는 Rxjava를 공부해보고 질의응답 해보는 시간을 가져봤는데요! 제일 기본적인 Observable 을 만들어보는 것에 대해 포스팅하도록 하겠습니다. Observable 은 Observer 가 관찰하는 대상입니다. 데이터 갯수와 상관없이 상태 변화가 발생할 때 Observer에게 변화를 전달할 수 있습니다. 대표적으로 onClick과 같은 클릭리스너가 대표적은 Observer 패턴의 예시입니다. Observable은 기본적으로 세가지 알림을 Observer에게 전달합니다. Q. 그럼 Observable 과 Observer 가 도대체 뭔가요 ?! A. Observable 의 의미인 ‘관찰 할..
-
Dark ThemeAndroid 2023. 2. 24. 01:52
안녕하세요. 10기 양민욱입니다 :) 오늘의 주제는 Android Q에 도입된 굉장히 인기가 많았던 기능으로 저 또한 평소에 선호하고 있는 Dark Theme입니다!! Dark Theme 다크 테마는 안드로이드 스튜디오, 크롬과 최근에 GitHub에서 다크 테마를 공식적으로 지원해 주면서 Mash-up 전체 톡방에 한번 이슈가 되었던 기능이기도 합니다. 다크 테마를 앱에서 사용하면 어떤 점이 좋을까요? 다크 테마의 장점 전력 사용량을 상당히 절약할 수 있습니다(기기 화면 기술에 따라 다름). 시력이 낮은 사용자와 밝은 빛에 민감한 사용자를 위한 가시성을 개선합니다. 누구나 어두운 환경에서 쉽게 기기를 사용할 수 있습니다. 필수적인 기능은 아니지만 다크 테마를 좋아하는 저와 같은 사람들을 위해, Dark ..
-
Custom ViewAndroid 2023. 2. 24. 01:44
안녕하세요 안드로이드 9기 강다현입니다. 이번에 알아볼 내용은 Custom View 입니다! 안드로이드로 앱을 개발할 때, 기존에 존재하는 뷰에 기능적인 부분을 조금 더 커스터마이징해서 구현하거나 여러 화면에서 같은 기능, 속성을 가지는 뷰를 재사용하고 싶을 때 여러 뷰를 통합하면서 원하는 속성을 넣고 싶을 때 등등… 이러한 needs가 생길 때 Custom View를 만듭니다. 그러면 어떻게 만드는가? 부터 시작해보도록 하겠습니다. Custom View 만들기 View 기본 먼저 View를 좀 알아야 Custom View도 만들던가 하겠죠? 기본적으로 모든 view 클래스들(Button 이라던지..ImageView 라던지)은 View 클래스를 상속하기 때문에, 바로 View를 상속하거나 subclass..
-
Dagger - Raw DaggerAndroid 2023. 2. 24. 01:32
Dagger - Raw Dagger 이번에는 제가 프로젝트에 적용하며 공부해 본Dagger2에 대해 복습하는 겸! 해서 글을 작성해 보겠습니다. (이하 Dagger) Dagger는 리플렉션을 사용하지 않고 런타임에 바이트코드도 생성하지 않는 것을 특징으로 가지는 Android의 DI 라이브러리입니다. DI란 무엇인가? 에 대해서는 일단 알고 있다고 가정하겠습니다. 흔히 다른 DI 라이브러리라고 알려지는 Koin과 비교되는데 Koin은 정확히 말하자면 DI 라이브러리는 아닙니다. Koin은 Service locator라는 패턴이고, 이와 관련해서는 진성님의 글을 참조하도록 합시다. 아무튼 이런 Dagger는 보일러 플레이트 코드를 없애는 나름의 단계를 거친다고 할 수 있습니다. (완전히 자의적으로 정한 단..
-
Kotlin Scope FunctionKotlin 2023. 2. 24. 01:21
안녕하세요 여러분! mash-up 10기 신입 유희진입니다! 햐햐 저는 이번 코틀린 스터디에서 다뤄본 범위 지정 함수에 대해서 써볼까 합니다. 저는 개인적으로 코틀린을 처음 사용해본 것이 이번년도 7월이었는데, 그 때 제대로 배우질 못해서, 좀 코틀린을 자바처럼(?) 사용했던 것 같아요. 그러다 범위 지정함수라는 let, also, run, with, apply이 다섯 종류의 함수들을 알게되었는데, 제일 자바와는 다르게 느껴졌던 기능이었고, 계속 헷갈리는 기능들인 것 같아요. 저는 사실 이름에서 기능을 유추하기도 힘들다고 생각해요,,(ㅎ) 아무튼간, 이번 코틀린 스터디에서 다시 한 번 다루게 되면서 이젠 제대로 좀 알아보자싶어 블로그에 정리하면서 복습해보려고 합니다. Scope Function 범위 지정..