일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- rxandroid
- 공유오피스
- 자바
- 스택관리
- 스택
- Android
- SAA
- 안드로이드
- Stack
- andrdoid
- MVVM
- 알고리즘
- popEnterAnim
- 코틀린
- Kotlin
- exitAnim
- 패파
- hiltViewModel
- 키보드위로
- 후기
- 사무실
- enterAnim
- 키패드위로
- 파이썬
- 패스트파이브
- 아키텍쳐
- 백준
- 싱글액티비티
- singleActivity
- popExitAnim
- Today
- Total
목록안드로이드 (20)
삽질도사
안녕하세요. 최근 몇 개월동안 3가지정도의 앱을 개발하면서 SAA를 적극적으로 사용해보았습니다.SAA는 한마디로 액티비티를 하나만 사용해서 앱을 만드는 건데, 이것도 하다보니 실력이 늘고 익숙해지더라구요.이제는 SAA가 아니면 아키텍쳐가 좀 복잡하거나 가독성이 떨어진다고 느껴질 정도 였습니다. 처음에 제가 SAA를 사용하게 된 계기는 단순히1. 화면 간에 정보 교환이 어렵다. (intent가 쓰기 번거롭다.)2. 화면이 많아질수록 화면이동이 힘들다.3. 액티비티가 많아지니 앱이 무거워진다.대략 이정도였는데요. 아무래도 보통 이러한 이유 때문에 플래그먼트를 섞어서 많이 사용합니다. 그러면 또 들었던 생각이.. 1. 액티비티+플래그먼트 -> 화면안에 화면을 디테일하게 구성하는 경우는 거의 없음 (일단 터치하..
다른 방법도 많지만 안드로이드 스튜디오 아래쪽에 위치한 자체 터미널을 사용하는 방법이 가장 편합니다. * 키해시 값 -> debug: [Mac] keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -storepass android -keypass android | openssl sha1 -binary | openssl base64 [Window] keytool -exportcert -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore -storepass android -keypass android | openssl sha1 -binary | o..
일단 결과물입니다. 배속, 스킵, 남은시간, 상하단 바 자동 사라짐 ExoPlayer 라이브러리를 사용하다보면 기본적으로 잘 되어있어서 크게 건드릴게 없지만, 내장된 여러 기능이나 특히 controller를 figma디자인에 맞게 커스텀하기 위해서는 커스텀을 해야하는 경우가 있습니다. app:use_controller="true" 를 사용해서 기본으로 제공하는 controller를 사용하거나, false를 설정하여 아래 코드를 추가하면 됩니다. (참고: https://jinha3211.tistory.com/32) app:controller_layout_id="@layout/커스텀뷰id" 다만, 이러한 경우에는 exoplayer 내부에 기본으로 정의된 style과 기능을 사용해야한다는 제한적인 단점이 있..
보시다시피 Cannot create an instance of class 라는 런타임 에러가 나오기 전까지는 뷰모델을 생성 할 때에, 기존에는 아래와 같이 viewModel()을 사용했는데, 이러한 경우엔 뷰모델을 생성할 때에 hilt inject로 아무것도 안넘겨 줄때에 사용이 가능했습니다. 당연히 이 경우엔 뷰모델 생성할 시에 파라미터로 아무것도 안넘겨준다는 개념하에 작동하기 때문에 아무 문제가 없었지만, 기본적으로 뷰모델 생성시에 useCase같은 것을 inject한다던지 무언가를 전달 할 때에는 위 같은 런타임 에러가 발생합니다. 따라서 hiltViewModel()을 사용하면 변경된 아래와 같이 inject로 해당 뷰모델에 직접 무언가를 주입하려면 hiltViewModel()로 생성하면 문제가 해..
enterAnim A -> B 로 갈 때 B가 보이는 방식 exitAnim A -> B 로 갈 때 A가 가사라지는 방식 popEnterAnim 뒤로가기로 B -> A로 갈 때 A가 나타나는 방식 popExitAnim 뒤로가기로 B -> A로 갈 때 B가 사라지는 방식
SAA 구조를 사용한 형태에서 스플래시 화면 -> (로그인 및 기타 화면) -> 홈화면 -> 다른 화면 -> (뒤로가기 버튼 누름) -> 홈화면 일반적인 경우 이런 비슷한 구조를 채택할텐데, SAA에서 popUpTo 혹은 PopUpInclusive를 알고 사용한다 하더라도 쉽게 떠오르거나 해결되지 않아서(개인적으로..) 매번 생각하느라 고생고생을 한다. 그래서 이러한 구조를 다른 프로젝트에 사용한다던지 혹은 다른 방식으로 구조를 짜더라도 유연하게 생각하기 위해서 이러한 일련의 과정을 기록하기로 했다. package kr.foorun.uni_eat.feature.main import androidx.activity.viewModels import androidx.navigation.NavController..
빗썸에서 가져온 정보를 코인어플처럼 뿌려줄 것입니다. 결과부터 보시죠. 퍼렇게 멍든 코인들.. 지속적으로 코인의 api를 가져와서 갱신해주고 검색을 하였을 때에 해당 코인의 정보를 다시 지속적으로 갱신해주는 방식입니다. 살펴보기 전에 api docs를 봅시다. api docs에 나온 규칙대로 요청을 하면됩니다. 그럼 기능구현에 필요한 클래스들을 한번 살펴보도록 합시다. MainActivity (View의 역할) class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding private lateinit var ET_Observable_Disposable: Disposable private latein..
일단 dependencies추가하고 sync합니다. dependencies { implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' implementation 'io.reactivex.rxjava3:rxjava:3.0.7' implementation 'com.jakewharton.rxbinding4:rxbinding:4.0.0' } rxjava를 활용해서 xml의 EditText를 관찰하기 위해 RxAndroidUtils라는 클래스를 하나 생성해줍니다. public class RxAndroidUtils { private static final String RXTAG = RxAndroidUtils.class.getSimpleName(); private static..