android(35)
-
Viewmodel / manage string res
Solution! stringres를 사용하는 방법sealed class AppString{ data class Res(@StringRes val resId: Int, vararg val arguments: Any): AppString() data class Quantity(@StringRes val quantityResId: Int, quantity): AppString data class Text(val value: String): AppString() } 이제 새 AppString클래스는 단일 인터페이스를 제공하여 ViewModel에서 View까지 다양한 유형의 문자열을 정의하는 데 도움이 되며, AppString클래스와 해당 내용이 POJO(또는 POKO)이므로 리소스를 포함할 필요 없이 단위 테..
2023.10.23 -
Android useful kickass tools
Stetho오픈소스 디버깅 플랫폼페이스북에서 개발했음Chrome의 개발자 도구 이용네이티브 android 앱을 디버깅할 수 있도록 해줌트리 구조 확인SQLite DB검사네트워크 작업 모니터링 등 지원 Android Assets StudioAndroid 아이콘 및 애니메이션 생성기 LeakCanarySquare에서 개발한 강력한 메모리 누수 감지 도구메모리 누수 발생할 때마다 전체 스택 추적알림 제공 DryRunAndroid 라이브러리 테스팅 도구라이브러리 시험해보는데 아주아주 좋음! Slides Code Highlighter코드 스니펫 예쁘게 만들어서 보여주는 친구~ Takt디버깅 하는 동안 다양한 기능의 FPS를 확인해줌버그와 지연을 포착해줌유저 사용성 개선 Drawable OptimizerImage ..
2023.08.08 -
Dialog With Navigation
Dialog는 Navigation으로 연결할 수 있다!Dialog도 결국 흐름에 연결된 화면이기때문~ Dialog Fragment를 만들고class MyDialog : BottomSheetDialogFragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { return inflater.inflate(R.layout.my_dialog, container, false) } } 팔레트에서 DialogFragment로 연결인데… 요렇게 들어오면 안된다…Dialog기 때문에 Dialog로 들어와야됨. 코드 좀 고쳐줌< dialog android:..
2023.08.08 -
Connectivity Manager
Connectivity Manager란Android 시스템 서비스네트워크 연결 상태에 대한 쿼리에 응답하는 클래스. 네트워크 연결이 변경되면 app에 알린다. 역할네트워크 연결 모니터링(WIFI, GPRS, UMTS)네트워크 연결 변경시 broadcast intent 전송네트워크 연결 끊긴 경우 페일 오버 시도앱이 사용 가능한 네트워크의 대략적 혹은 세분화된 상태를 쿼리하는 API제공App이 데이터 트래픽에 대한 네트워크를 요청하고 선택할 수 있도록 API 제공 클래스 얻기val cm = getSystemService(CONNECTIVITY_SERVICE) as ConnectivityManager 콜백voidonAvailable(Network network) 프레임워크가 연결되고 사용할 준비가 된 새 네..
2023.07.28 -
QA / release모드 변경
원인 firebase crashlytics에서 qa 버전, release 버전이 혼용되어 사용중임… 보기 불편.. qa만 따로 모아서 보고싶음 해결 방안 firebase 콘솔에서 앱 추가해줌 패키지명 설정 (나중에 빌드시에 이걸로 되는거 감안해서 크게 다르지 않은걸로 설정) service-json받음 -> 나는 원래 파일이 .app내에 있어서 거기 위치시켜줌 .env 업데이트 (패키지명 변경으로 앱 아이디도 변경됨) RELEASE_APP_ID = "릴리즈앱의 아이디(in fb project)" QA_APP_ID = "QA앱의 아이디(in fb project)" FIREBASE_TOKEN = "FB토큰" GOOGLE_DRIVE_FOLDER_ID = "업로드할 구글 드라이브 폴더의 id" SIGNING_KE..
2023.05.03 -
reified + inline
reified 키워드 reified 키워드란…? inline과 함께 쓰이며, 런타임시 generic 타입을 알 수 있게 하는 키워드임! fun printGenerics(value: T, classType: Class) { when (classType) { String::class.java -> { println("String : $value") } Int::class.java -> { println("Int : $value") } } } printGenerics("print generics function", String::class.java) printGenerics(1000, Int::class.java) 원래 generic 사용하면 이렇게 타입 정보를 넘겨야하지만, 위의 키워드를 사용하면 inlin..
2023.05.03