본문 바로가기

전체보기

(217)
책장 넘기는 UX 구현 현재 개발 중인 '식물일기'는 책과 유사한 UI/UX로 구현했고, 그중에서 식물 등록 화면에 적용된 책장을 넘기는 UX에 대해 포스팅하겠습니다. 앱 디자인의 컨셉과 세부적인 부분을 참고한 사이트 목록입니다. 참고 사이트 Pinterest free vector icons lottiefiles.com/search?q=book&category=animations Pinterest 모바일 관련 ui를 참고 할 수 있는 사이트로 전체적인 컨셉을 잡는데 도움이 되는 사이트입니다. free vector icons 무료 아이콘을 제공하는 싸이트로, 책을 ui로 표현하는데 도움을 받은 사이트 입니다. lottie files Air bnb에서 만든 애니메이션 라이브러리로, 어도비의 after effect에서 만든 json..
Livedata(MVVM) + RxAndroid 사용시 주의 사항 mvvm 패턴으로 간단한 rxAndroid와 함께 사용하여 식물관리 앱을 개발중입니다. mvp를 처음 도입할때도 그랬지만 많은 시행 착오를 겪고 수정하면서 체계를 잡아가고 있습니다. 그러던중 주의해야할 상황이 생겨 공유 및 복기 목적으로 남깁니다. 먼저 rxAndroid를 엑티비티 라이프사이클에 맞춰 메모리 누수를 막기위한 용도로 마이너하게 사용하고 있습니다. 잘못되게 사용하고 있다면 댓글 및 방명록으로 지적해주시면 감사하겠습니다. ※사용중인 라이브러리 - Livedata, viewModel(AAC), rxAndroid, kotlin, koin, room > 앱 설명 + 상황 '식물관리'앱의 메인에는 식물 리스트가 좌측에 위치하고 리스트중 선택한 식물의 정보가 우측에 존재합니다. 그리고 우측화면 하단엔 ..
Firebase 다이나믹 링크로 인앱 설치 유도 이번 포스팅에서는 다이나믹 링크 생성법과 사용법에 대해선 다루지 않고 사용하면서 겪은 문제와 해결 방법에대해 다루니 참고해주시기 바 랍니다. 그리고 더 나은 방법은 댓글이나 방명록을 통해 안내해주세요. 다이나믹 링크뿐만 아니라 Firebase에선 앱 운영시 필요한 다양한 기능들이 많으니 적극 활용하는걸 추천합니다! 구글 콘솔 내부 테스트 활용 본론으로 들어가 앱을 설치하지 않은 유저가 다이나믹 링크를 클릭해서 앱을 스토어에서 다운 받고, 열기 버튼으로 앱을 열었을때 특정 화면으로 이동하도록 출시했지만 작동하지 않았습니다. 테스트를 해야했지만 출시를 해야지만 가능하다고 생각해 하지 못했습니다. 근데 구글 콘솔에 '내부 테스트'란 기능이 통해 테스트 유저들을 선정하면 스토어에 접근했을때 상용 apk가 아닌 ..
안드로이드 launch mode 선택 앱과 엑티비티의 특성에 맞지 않는 무분별한 launch mode 설정은 사용자들에게 불편함을 주기 때문에 주의해야 합니다. 속성 standard singleTop singleTask singleInstance standard 가장 일반적으로 많이 사용되는 속성이고 default값이다. 기존에 생성된 Task에 엑티비티를 계속 쌓고 버튼을 연속 두번 누를 경우 같은 엑티비티가 2개 이상 쌓일수 있다. ( A > B > A > A ) singleTop 설정된 엑티티가 같은 Task 제일 상단에 존재할 경우 새로운 엑티비티를 생성하지 않고 기존에 생성된 엑티비티를 재 사용하며 onNewIntent 메서드를 호출한다. ( B > C 상태에서 C 호출시 B > C > C 가 아닌 B > C 스텍 유지 ) ※ C ..
TargetSdkApi 29 대응하기 이제 11월부면 신규앱도 구글 스토어에 등록할때 targetSdkApi를 29로 조정해야합니다. 등록하기 앞서 기존에 사용중이던 기능들이 제대로 작동하는지 파악해야합니다. 굵직한 변화들은 이미 많은분들이 포스팅을 통해 소개했기 때문에 실질적으로 마이그레이션시 신경써야 하는 부분들을 서술 하도록 하겠습니다. >> 비SDK 사용 금지 구글 문서에 공식화 되지 않은 SDK들로 강제로 사용하는 경우가 있다고 하네요. 생소해서 처음 들어보긴 하지만 blacklist(차단목록)에 포함된 인터페이스에 접근하려고 할때 에러가 발생할 수 있으니 사용중이라면 제거하고 출시하는게 맞을것 같아서 찾아 봤습니다. 먼저 비 SDK API는 3가지로 구분됩니다. blacklist ( 차단 목록 ) - 앱의 타겟 api 수준과 상관..
페이스북 광고 sdk 적용 다국어 서비스 출시를 생각하고 있는데 카카오 애드핏은 해외 유저들에게 적합하지 않을것 같아 애드몹 / 페이스북으로 대체 하고자 합니다. 앞서 수익이 애드몹이나 애드핏과 어떻게 차이 나는지 확인할 겸 선 추가 했습니다. 페이스북 광고 계정을 생성하고, 앱을 등록해야 합니다. 링크를 클릭해 페이스북 로그인 후 광고 계정을 생성 해주세요. 계정을 생성하면 비지니스(?) 라고 생성하라고 하는데 ( 해당 내용은 캡쳐를 못했습니다. ㅠㅠ ) 앱의 개념 보다는 페이스북 관련 비지니스를 총괄 하는 관리 계정을 생성한다고 생각하시면 되겠습니다. 앱 추가 관리 계정 생성후 좌측 상단에 '수익 관리자' 메뉴로 들어간 후, 바뀐 메뉴들중 '통합' > '자산' 으로 들어가서 자산을 생성하시고 기존에 출시했거나 출시할 예정인 앱..
[And/Kotlin] Numberpicker를 활용한 생년월일 선택 뷰 만들기 최초 작성 : 2020/10/13 numberpicker input type 수정 : 2020/10/23 numberpicker editText 값 가져오기 포스팅 추가 : 2021/03/23 기본적으로 제공하는 Datapicker와 DatepickerDialog를 활용해서 날짜 선택 화면을 만들 수 있습니다. spnnier 와 calendar 2가지중 적합한 UI를 선택할 수 있습니다. ( 개인적으로 이쁜건 spnnier라고 생각하고 조금 더 신경쓴(?) 느낌입니다. ) datepickermode와 calednarViewshown 옵션으로 간단하게 spinner와 calendar 설정이 가능하다. 하지만 간혹 커스텀된 UI로(아래 사진 참고) 날짜를 선택해야할 경우가 있는데 그럴땐 Numberpicke..
[Android] Webview내 카카오톡 공유하기 에러 / 해결방안 앱내 웹뷰에서 카카오톡으로 공유하는 기능이 포함되어 WebviewClient()에 intent 기능을 수행하도록 처리 했습니다. 웹뷰에서 다른 앱을 실행시킬때 intent://로 시작해 보통 아래 코드와 같이 적용하면 문제 없이 작동했었습니다. class BaseWebClient(val context: Context) : WebViewClient() { var isHistoryClear = false override fun shouldOverrideUrlLoading(view: WebView?, url: String?): Boolean { if(url != null){ when{ url.startsWith("intent://") -> { try { val intent = Intent.parseUri(ur..