전체보기 (217) 썸네일형 리스트형 [안드로이드] 카카오 애드핏 연동시 주의해 앱 정지를 막자 - 기타 광고 포함 구글에선 19년 5월 29일에 가족 정책과 그에 맞는 요구사항을 업데이트 했고 개발자들이 준수해야할 필수 사항이 됐습니다. 그 취지는 가족과 어린이 유저들이 플레이 스토어에서 앱과 게임을 다운받을때 최상의 환경을 제공받게 하기 위함으로 어린이 유저들이 성인앱이나 성인 광고와 같이 유해 컨텐츠에 노출되지 않도록 하는 목적이 가장 큰것으로 보입니다. 그래서 앱을 출시하고 광고를 연동할땐 주의해야 이 부분을 주의하지 않으면 정지될 수 있음을 인지하시고 다시 한번 본인들의 앱을 확인해주시고 잘못된 정보는 업데이트 해주세요! ( ※ 해당 포스팅은 개선된 구글 콘솔을 기반으로 작성했습니다. ) >> 앱 및 게임의 타겟층 개발자 콘솔에 앱을 선택하고 정책 > 앱 콘텐츠 > 타겟층 및 콘텐츠 를 다시 한번 확인해주세요.. [안드로이드/Android] Gridlayout으로 시간표 만들기 시간표나 달력을 구현할때마다 '이번엔 뭐로 구현해볼까', '어떻게 해야 좀 호율적이고 간단하게 만들 수 있을까?'를 고민 했었습니다. Linearlayout으로 이뤄진 뷰들을 xml에 하나하나 그리고 칸 하나마다 list로 관리하거나 Recyclerview로 만들어서 xml이 적은대신 ItemAdapter나 Viewholder 클래스를 생성하는 방식을 주로 선택했습니다. 그런데 이번엔 Gridelayout 으로 시간표를 만들게 돼, 간단한 사용법과 다른 구현 방법들과 차이점을 정리했습니다. >> 구현하기 build.gradle ( app ) implementation "androidx.gridlayout:gridlayout:1.0.0" xml Gridlayout 은 Linearlayout이나 Constr.. [안드로이드/Kotlin] WorkManager를 활용한 백그라운드 작업 Android Jetpack의 일부로 백그라운드 작업시 구글에서 권장하는 API입니다. ( API 14이상 모두 지원 ) 기존에는 서비스를 생성하거나, 브로드캐스트 리시버를 사용해서 개발자가 원하는 시점에 앱을 깨워 작업할 수 있었습니다. 하지만 Target SDK 26이상부터는 제약으로 인해 WorkManager를 활용해야만 원활한 백그라운드 작업이 수행 가능합니다. 타겟이 이전인 예전 프로젝트나, 스토어에 출시하지 않는다면 기존 방법들도 사용 가능합니다. ( 현재 마켓 Target SDK는 29가 아니면 출시 불가 ) >> WorkManager를 활용한 경우 - 알람 매니저로 특정 시점에 서버 통신의 결과를 Noti로 보여줘야 하는 경우 ( 버전별 알람 매니저 적용법 ) - 알람 매니저로 특정 시점에.. [Android/Kotlin] Transformations를 사용해 Livedata 활용하기 Livedata는 양방향 데이터 바인딩이나 Transformation과 함께 쓸수록 더 유용하게 사용할 수 있습니다. Transformation은 하나의 Livedata가 변경될때마다 다른 Livedata를 변경해줄때 사용하면 유용합니다. >> Transformations.map ( 공식문서 ) 첫번째 인자로 Livedata 넘겨준다. 두번째 인자 리턴 형태가 있는 함수를 넘겨주는데 반환 타입에 제한은 없다 ( 리턴된 타입이 String이면 Livedata으로 반환된다.) var name = MutableLiveData() var displayName = Transformations.map(name){ mapName -> "우리${mapName}" } 디비에 저장된 이름을 불러오는 'name' 변수가 있.. [Android/ios] 카카오톡 공유하기 api - 템플릿 설정 및 앱 적용 작성이력 - 21.2.6 : 최초 작성 - 21.5.31 : 카카오 커스텀 이미지 전송 링크 추가 기본적으로 FEED, LIST, COMMERCE를 제공하는데 오늘은 FEED만 다룰 예정이며, SDK 설정과 기능 및 카카오 디벨로퍼를 설정하는 부분은 공식 사이트를 참고해주세요 >> 템플릿 생성 위 세가지 유형중 한가지를 선택하고 간략한 설명을 기재하면 템플릿이 생성됩니다. ID : SDK 연동할때 필요한 템플릿 아이디 값입니다. 템플릿 설명 : 진행중인 앱/웹 프로젝트의 구성원들이 판별하기 쉽도록 의도에 맞는 이름을 넣어주세요. ex)친구초대 링크 사용 목적 : '카카오 링크/나에게 보내기'를 선택합니다. >> 상세 정보 설정 탭별로 나뉘어져 있는 정보들을 설정하면 왼쪽에 미리보기를 통해 전달됐을때 메세.. [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.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 28 다음