현재 안드로이드 공식 사이트에서 컴포즈를 현재 따라 쳐보면서 뜯어 보고 있다modifer를 통해서 해당 View의 속성을 정의 하는것같다.package com.example.composetestimport android.os.Bundleimport android.widget.Buttonimport androidx.activity.ComponentActivityimport androidx.activity.compose.setContentimport androidx.activity.enableEdgeToEdgeimport androidx.compose.foundation.layout.Arrangementimport androidx.compose.foundation.layout.Columnimport andr..
오늘 배워 볼 것오늘은 Flow에 대해서 이야기 해보겠다.FlowFlow는 비동기적 데이터 스트림으로 Flow는 연속적으로 데이터를 보냅니다.Flow는 원어 그래로 Data Stream, 데이터의 흐름을 말하며, 생산자는 데이터를 Flow 타입으로 입력하고 소비자는 Flow에서 데이터를 수집하는 역할을 합니다. 즉 Data Layer단계에서 데이터를 생성하는 생산자 역할이 되면 Presentation Layer가 해당 데이터를 소비하는 소비자라고 볼 수 있겠습니다.그리고 Flow는 크게 2가지 형식의 데이터 흐름으로 나눌 수 있습니다.바로 Cold Stream과 Hot Stream이다.Cold Stream은 우리가 일반적으로 Flow 타입으로 반환하는 것을 말하며, Hot Stream은 대표적으로 Sta..
금일 알아 볼 것오늘은 오랫만에 글을 포스트하려고 한다.한 동안 프로젝트 등에 찌들어서 쓸 시간이 없었다.오늘 알아 볼 것은 Splash 화면이다.Splash 화면Splash 화면은 앱을 실행하게 되면 가장 먼저 잠깐 뜨는 화면을 말한다.오늘 글을 포스트하게 된 이유는 해당 Splash화면을 구현하는데 있어서 안드로이드 12부터는 고유 Splash 화면을 지원해주기 때문이다.이게 좋기는 하지만 뭔가 아직 자유로운 화면을 짜기는 무리가 있어 보인다.그래서 총 3가지 방벙이 있다.Android12 SplashScreen 기능을 사용하는 방법해당 방법은 Android 12에서 지원해주는 기능을 사용하는 방법이다.SplashScreen API 사용하는 방법해당 방법은 기존 Android 12 이하의 버전에도 A..
어떤 것을 공부해야 될지 보는 로드 맵 링크https://github.com/skydoves/android-developer-roadmap GitHub - skydoves/android-developer-roadmap: 🗺 The Android Developer Roadmap offers comprehensive learning paths to help you🗺 The Android Developer Roadmap offers comprehensive learning paths to help you understand Android ecosystems. - skydoves/android-developer-roadmapgithub.com
오늘 알아 볼 것 오늘은 간단하게 .gitignore에 대해서 알아 보려고 한다. .gitignore gitignore은 안드로이드 개발을 하다 보면 한번 씩은 봤을 파일이다. 이 파일이 뭘까 하는 고민을 하기도 하는데 이 .gitignore 파일은 개발을하다가 commite, push를 할 때 제외하고 싶은 파일을 설정해주는 파일이다. 정확히는 프로젝트에 원하지 않는 백업 파일이나 로그파일 혹은 컴파일 된 파일들을 Git에서 제외할 수 있는 설정 파일을 말한다. 이게 무슨 뜻이냐면 가끔씩 협업 개발을 하다보면 보일 것이다. 내가 쓴 파일이 아닌데 같이 commite, push할 때 같이 뜨는 것을 볼 수 있을 것이다. 보통 이런 파일은 개인 android studio의 설정 파일이다. 이게 문제가 되는..
오늘 알아 볼 것 앱을 배포할 때 apk에서 aab로 바꾸는 것을 볼 수 있을 것이다. 왜 그럴까? 오늘 알아 볼 것은 바로 apk에서 aab로 바꾸는 이유에 대해서 간단히 알아 볼 것이다. 구글에서 정책을 바꾸다? 우리가 사용하는 앱에도 특정 확장자가 붙는다. 바로 .akp이다. IOS앱에서는 .ipa가 안드로이드에서는 .apk가 붙는다. 그런데 구글이 2021년 8월 부터 구글 플레이에 새로 올라오는 모든 앱은 AAB 형식이어야 한다는 정책을 바꾸었다. 그렇다면 왜 바꾼 것일까? 그리고 AAB는 무엇일까? AAB? 우리가 사용하는 앱의 확장자인 APK(Android Package)는 이미 완성된 안드로이드 앱 파일을 말한다. 그렇다면 AAB(Android App Bundle)은 무엇일까? AAB는 바..
오늘의 알아 볼것 요즘 바뻐서 TIL을 쓸 여유가 없었다. 과제 및 프로젝트가 겹쳐서....ㅠㅠ 그래도 오늘 여유가 되서 저번에 쓰려고 해던 참조 함수를 직접 사용하는 예제에 대해서 글을 포스트한다. 내가 배운 것을 정리하기 위해서!! 참조 함수 우리가 흔히 RecyclerView의 item에 대해 클릭 이벤트를 작성하기 위해서는 interface를 많이 사용한다. 하지만 만약에 각각의 똑같은 item에 대해서 한 가지 이벤트가 발생하면 참조 변수를 사용하여 간단히 구현할 수 있다. 자 알아보자 아래코드는 Activity,Fragment에서 사용되는 실제클릭에 대한 이벤트 코드이다. private fun setCategoryAdapter() { categoryAdapter = CategoryAdapter..
오늘은 알아 볼 것 오늘은 간단히 코틀린 함수 참조에 대해서 알아보려고한다. 람다식 일단 함수에 참조에 대해서 알아기 전에 간단히 람다식에 대해서 알아보자 람다는 익명 함수를 말하며 주로 메소드를 따로 선언하지 않고 일회용으로만 사용할 때 사용한다. 아래의 있는 기본 메소드를 예시로 들어보자 fun sum(x: Int, y:Int): Int{ return x + y } 위 함수를 람다식으로 표현하면 // 1방법 val sum = {x: Int, y: Int -> x + y} // 2방법 val sum:(Int,Int) -> (Int) = {x:Int, y:Int -> x + y} println(sum(2,3)) 위 방법 처럼 일반적인 함수를 람다식을 통해서 표현 할 수 있으며, 기본적인 문법은 아래와 같..
오늘 알게 된 것 금일도 개발 중에 알게 된 것을 이지 않기 위해서 글을 쓴다. TabLayout 스크롤 감지 오늘 글을 쓰게 된 이유이자 조금 낳이 고민했던 부분이다. 스크롤이 가능한 TabLayout을 구현하는 도중에 화면을 넘어가는 tabItem이 선택 되었을 때 해당 tabItem에 스크롤과 화면을 잡아 줘야되었다. 여기서 문제가 발생했다. 해당 tabItem에 선택은 되는데 해당 화면이 스크롤되어 자동적으로 화면에 보여주지 않았다. 물론 tablayout의 함수 중 setScrollPosition(index, 0f, false)[해당 아이템 인텍스, 인덱스 오프섹, updateSelectedTabView(boolean)]가 존재 했다. 즉 해당 함수를 이용하면 TabLayout의 tabItam의..