일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- suspend programming
- 최댓값 최솟값
- keystore
- 데이터베이스
- Bitrise
- 피보나치 수 2
- Android
- 2레벨
- 실버2
- capitalize
- LazyColumn
- 데이터베이스 첫걸음
- navigation component
- 프로그래머스
- DB
- 브론즈1
- 백준
- Myungpyo Shim
- DB 기능
- compose
- 개발하는 정대리
- kotlin
- gradlew
- 브론즈 1
- 성빈랜드
- .github
- LazyRow
- 실버 4
- Activirty
- github action
- Today
- Total
목록Android (16)
plzy의 개발 블로그
Bitrise 의 기본 세팅으로 Android progect 를 빌드할려고 할 때 gradlew 파일이 없어 해맸던 적이 있습니다. 이때 해결방법을 공유해 볼려고합니다. Generate Gradle Wrapper 를 step 에 추가합니다. 이 세팅은 만약 gradlew 파일이 프로젝트에 포함되어 있지 않을 때 Bitrise 자체에서 설치를 해주는 겁니다. .Install missing Android SDK components step 의 gradlew 의 경로를 변경합니다. 변경할 경로는 $GRADLEW_PATH 로 지정해 줍니다. 위의 방법대로 설치를 해준다면 성공적으로 build 가 성공하는 것을 확인해 볼 수 있습니다.
Compose를 사용하기 전에는 Splash Theme를 사용하거나, startActivity 등 사용해서 만들면 됐었다. 하지만 Compose에서는 조금 방법이 다르다. 바로 Navigation을 사용해야한다. 먼저 splash로 사용할 화면과, splash 후에 나올 화면을 NavHost에 정의해 준다. startDestination 에서 어느 화면이 가장 먼저 실행될 것인지 명시해준다. @Composable fun BosoDiaryApp() { // navigation 설정 val navController = rememberNavController() NavHost( navController = navController, startDestination = Screen.Splash.route ) { ..
기존에 list 뷰를 만들려면 RecyclerView.Adapter, RecyclerView.ViewHolder 등을 만들어야 했다. 무척 번거로웠지만 compose에서는 어떻게 만들면 될까? LazyColumn LazyColumn이란 compose에서 list를 만들 때 쓰는 layout이다. 이름부터 볼 수 있듯이 세로형 list를 만들 수 있는 것인데 한번 코드를 살펴보자. @Composable fun Greetings(name: List = List(1000) { "${it}" }) { LazyColumn(Modifier.padding(vertical = 4.dp)) { items(name) { name -> Greeting(name = name) } } } items에 어떠한 데이터가 들어갈지 ..
Compose에서 쓰이는 기존 레이아웃 요소에는 Column Row Box 3가지가 있다. 각각 어떻게 쓰이는지 알아보자. Column column의 하위 요소는 세로로 그려진다. 이 코드를 봐보자. Column( modifier = Modifier .fillMaxWidth() .padding(24.dp) ) { Text(text = "hello.") Text(text = name) } 이 코드를 preview로 봐보면 이러한 상태가 되며 각 Text가 세로로 그려진다. Row row의 하위 요소는 가로로 그려진다. 이 코드를 봐보자. Row( modifier = Modifier .fillMaxWidth() .padding(24.dp) ) { Text(text = "hello.") Text(text = ..
Android 개발을 할 때 java언어에서 kotlin 언어로 변경되고 있는 추세이다. 어떤 이유에서 kotlin으로 변경되는 걸까? 그걸 알기 전에 kotlin먼저 알아보자. Kotlin 이란? kotlin이란 자바 플랫폼에서 돌아가는 새로운 프로그래밍 언어이다. 자바와 코드가 호환이 되며 코드가 간결하고 간단하다. 성능도 자바와 같은 수준이니 kotlin을 안 쓸 이유는 없다. 이 말은 죽순 java가 쓰이는 곳에 kotlin이 다 쓰일 수 있다는 것이다. ex) 구글, 트위터, 링크드인 등 java를 사용하고 있는데 kotlin을 쓰면 더 쉽게 개발할 수 있을 것이다. 정적 타입 언어 Kotlin은 Java와 마찬가지로 정적 타입 언어이다. 컴파일 시 타입을 검증해준다. 동적 타입 언어는 타입에 ..
나는 기존 프로젝트에 LiveData를 중점적으로 썼었다. 이로 인해 여러 에러 사항이 많았는데 특히 A의 activity에 데이터를 호출 한 후 B의 Activity로 이동했다가 다시 돌아오면 기존에 있던 observe가 남아 있어 다시 호출되는 현상이 있었다. 이를 해결하기 위해 SingleLiveData, EventLiveData 등 여러 해결책이 있었지만, 각각 해결책마다 또 다른 이슈가 있어 이번 기회에 flow에 대해 공부하고 정리한다. flow를 알기 전에 먼저 리액티브 프로그래밍의 개념부터 알아야 한다. 왜냐하면 flow는 기존 중단 함수와 달리 여러 값을 순차적으로 내보낼 수 있다. 리액티브 프로그래밍의 개념을 다시 짚어보자면 리액티브 프로그래밍이란? 리액티브 프로그래밍이란 함수형 프로그..
CI라는 말을 들어본적이 있는가? CI는 Continuous Integration 의 약어로 개발> 빌드> 테스트의 과정을 자동화하는 것이다. 참고로 배포를 자동화 하는것은 CD 이다, CI가 왜필요한걸까? 보통 사이드 프로젝트 같은 경우에는 자동화하는데 걸리는 시간이 소요된다. 무척 귀찮아 질수 있기 때문에 수동으로 하는 걸 선호하는 개발자도 있다. 이럴 경우 추천한다! 인원이 많은 경우 인원이 많을 경우 출돌과 코드 변경 정도가 심해지고 검증도 깊어지기 때문에 각자 작업한 코드가 정상적으로 반뎡되는지가 중요하다. 프로젝트 규모가 큰 경우 내가 수정한 내용이 다양한 영역에 영향이 끼칠수 있기 때문에 필요하다. 본론으로 어떻게 사용하면 되는 것일까? 먼저 자신의 프로젝트에 Actions을 클릭해준다. 그..
민약 KeyStore를 잃어버렸다면, 전글인 생성하는 법부터 보고 오자. https://happy-kmc.tistory.com/24 구글플레이스토어 에 있는 KeyStore랑 다를 때 해결법이다. 먼저 구글플레이 콘솔 지원팀에 문의해야한다. 사이트 : https://support.google.com/googleplay/android-developer/gethelp?hl=ko&visit_id=637843048324170570-2291390246&rd=1# 로그인 - Google 계정 하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인 accounts.google.com 우리는 KeyStore 문제이기 때문에 1. 무엇을 도와드릴까요? : 플레이 스토어에 있는 KeyStore가 다르다고 ..