Android
-
Lock ScreenAndroid 2023. 2. 24. 02:23
안녕하세요, 안드로이드 10기 강다현입니다. 이번에는 제 개인 프로젝트에 쓰이는 lock screen - 잠금화면에 대해 알아보겠습니다. (프로젝트 전 복습 겸 블로그 글도 써버리기…) 제가 알기로는 서비스와 브로드캐스트리시버의 사용 에제로 많이 등장하는 친구입니다. 잠금화면 자체가 좀 옛날에 유명했던 느낌? 인것 같네요 잠금화면을 만들기 전에 먼저 Andoid 8.0 Oreo 버전에 있었던 변화를 알아봐야 합니다. Andoid 8.0 Oreo 에서의 변경점 - Background Execution Limits Oreo Background Execution Limits 기본적으로 백그라운드 서비스에 제한이 생깁니다. Background Service Limitations: While an app is i..
-
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등의 사용을 제외했고, 추가적인 기능..
-
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는 보일러 플레이트 코드를 없애는 나름의 단계를 거친다고 할 수 있습니다. (완전히 자의적으로 정한 단..
-
Room - Android Local DatabaseAndroid 2023. 2. 23. 13:02
🙇 안녕하세요 ! Mash-Up 10기 Android Developer 정현성 인사드립니다. 🙇 이번 포스팅 주제로 무엇을 할까 고민을 하다,,,, 최근 취업 준비를 하며 그동안 개발했던 애플리케이션들을 하나의 포트폴리오로 보여주는 애플리케이션을 개발한 적이 있습니다. 개발하며 사용했던 기술 스택 중 하나인 Room에 대해 다시 정리해볼 겸 포스팅 주제로 선정하였습니다. 💾 Local Database 안드로이드에서는 앱의 데이터를 효율적으로 관리하기 위한 저장소로 SQLite라는 데이터베이스를 제공하고 있습니다. 이는 다른 외부 Database들과 달리 소규모 데이터를 관리하고 사용하는 데 적합한 관계형 데이터베이스입니다. 예를 들어, 애플리케이션 사용 과정에서 발생하는 용량이 크지 않은 데이터들은 굳이..