안드로이드 (166) 썸네일형 리스트형 [Android] 이미지 버튼 만들기 이미지 버튼을 만들땐 해상도에 따라 버튼의 넓이를 조절할 것인지, 고정 dp로 할것인지에 따라 다르게 작업해야 합니다. 해상도에 따라 버튼의 넓이를 조절하고 높이는 고정으로 할 경우 이미지를 다운받아서 적용하면 이미지 원본 비율을 유지한채 나머지 넓이는 여백으로 가득 찰 것 입니다. 그래서 상황에 맞는 이미지를 적용해야 합니다. >> 통 이미지를 그대로 적용했을 경우 여백을 채우고자 scalyType을 fill_xy로 지정하는등 억지로 늘린다면 이미지가 깨지는 결과를 초래합니다. 그렇기 때문에 이미지의 넓이만 늘리는 작업은 vector기반으로 작업하거나 넓이에 따라 높이를 늘려주거나 centerCrop으로 모든 이미지를 보여주진 않지만 꽉차게 보이게 할순 있습니다. 하지만 위와 같은 결과를 원하진 않기 .. [Android] Firebase Crashlytics 추가하기 FirebaseCrashlytics는 Firebase에서 제공하는 강력한 기능중 하나로 사용자들이 앱을 사용하다가 발생하는 에러들을 수집하는 툴로 앱에 없으면 안되는 라이브러리중 하나 입니다. firebase console에서 앱을 추가하고 난 뒤 과정(앱 설정)을 설명하며 추가 하는 방법은 콘솔에서 제공하는 가이드를 따르면 쉽게 할 수 있습니다. 앱 설정 가이드도 google에서 가이드 문서를 제공하지만 내용 설명이 부족해 가이드 문서대로 진행했을 경우 앱이 실행되지 않는 이슈가 있어 별도 포스팅을 작성했습니다. 신규 앱에 추가하는 경우가 아닌 Fabric에서 업데이트 하는 경우도 제 포스팅을 참고해주세요. >> Project Level build.gradle buildscript { repositor.. [Android] Firebase Crashlytics Error 개발중인 앱에 firebase Crashlytics를 붙였는데 빌드시 2번에 한번 꼴로 에러가 발생했습니다. 에러 : the crashlytics build id is missing. this occurs when crashlytics tooling is absent from your app's build configuration. please review crashlytics onboarding instructions and ensure you have a valid crashlytics account. 원인을 검색 해봐도 대부분 fabirc 시절에 내용들뿐이고 에러 해결에 도움이 되는 글은 마땅히 없었습니다. 제가 작성하는 글도 정확한 원인을 파악한 경우는 아니지만 해결이 되어 공유드립니다. buil.. [Android] SHA key 간편하게 얻기 기존에 SHA 키를 얻으려면 터미널을 이용하거나 소스코드를 작성해서 빌드해서 얻는 방법을 사용했었습니다. 어렵진 않지만 다소 번거롭고 코드를 찾아서 복/붙을 해야했는데 AndroidStudio에 Gradle View를 이용하면 간단하게 알 수 있습니다. >> SigningReport GradleView -> app(개발중인 앱 폴더 명) -> Tasks -> Android -> signingReport 위 경로를 클릭하면 하단에 콘솔창에 나타나게 됩니다. >> 결과 사진 우측 빨간 네모안에 나오는 데이터를 긁어다 쓰시면 됩니다. [Android/Kotlin] Room 마이그레이션 Entity(테이블)의 컬럼이 추가되거나, Entity 자체를 추가하는등 Database 수정이 발생했을때 아무런 조치를 취하지 않고 버전만 올린다면 저장되어 있던 데이터가 날아가 사용자에게 불편함을 줄 수 있어 필수로 처리 해줘야 합니다. Room 사용법은 제 포스팅을 참고해주세요. >> 버전업 @Database(version = 2, entities = [PlantData.Item::class,DiaryData.Item::class]) abstract class DB : RoomDatabase() { Room의 구성요소중 하나임 RoomDatabase에 명시된 버전을 수정합니다. [ ex) 1 -> 2 ] >> Migration 객체 생성 및 sql 문 작성 private var MIGRATION_1.. [Android/Kotlin] Room으로 앱내 데이터 저장하기 Room은 내부 디비 라이브러리로 AAC(Android Architecture Component)중 하나로 많은 분들이 사용하고 있습니다. >> Gradle 설정 (androidX 기준) 최신버전은 공식 문서를 참고해주세요. def room_version = "2.2.5" // room implementation "androidx.room:room-runtime:$room_version" kapt "androidx.room:room-compiler:$room_version" androidTestImplementation "androidx.room:room-testing:$room_version" // optional - RxJava support for Room implementation "android.. [Android/Kotlin] 양방향 데이터 바인딩으로 더 mvvm답게 ! mvvm + livedata + room으로 작업하신다면 양방향 데이터 바인딩 도입을 고려해보시길 추천 드립니다 ! 조금 더 mvvm 답게 코딩할 수 있습니다. (mvvm 도입을 고민하거나 도입 초기이신 분들에게 추천합니다. ) >> 데이터 바인딩 데이터 바인딩은 mvvm을 도입하지 않으신 분들중에도 이미 익숙한 주제입니다. 혹시 모르시는 분들은 아래 포스팅이나 다른 분들이 쓰신걸 참고하세요. [안드로이드/Android] 데이터 바인딩 사용하기[1/2] 안녕하세요 이번 포스팅은 '데이터 바인딩' 입니다. 개발 문서의 내용이 많아 나누어 수록하도록 하겠습니다. 시작하기 앞서 데이터 바인딩을 사용하실려면 AndroidStudio 버전 1.3 이상이 필요하니 superwony.tistory.com >> Mvv.. [코틀린]Kotlin Coroutine 사용하기 안드로이드 프로그래밍에서 비동기 프로그래밍은 서버 통신 및 디비 접근과 같이 많은 부분에서 사용되는데, 그 부분을 조금 더 유연하고 간편하게 사용하도록 도와주는게 코루틴인것 같습니다. 비동시 프로그래밍시 스레드를 신중하게 다뤄야 하는데 스레드 생성 및 해제, Context-Switching시 CPU의 메모리를 소모해 많은 수의 스레드를 갖는데 어려움이 있고, 메인 스레드에서 일정시간 한가지 TASK를 수행하면 ANR에러가 발생하기 때문입니다. 그에반해 코루틴은 스레드가 아닌 서브 루틴을 일시정지(suspend)시키는 방식으로 Context-Switching비용이 발생하지 않아 라이트한 스레드라고도 불립니다. context-swiching : 스레드 실행 혹은 종료시 스레드의 상태를 저장하고 복구하는 프로.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 21 다음