웹뷰를 감싸는 Flutter 앱을 만들면서 여러가지 이슈를 겪었다. 기억에 남는 이슈를 여기에 (두서없이ㅎ) 남겨보겠다. 참고로 나의 상황은 아래와 같다. 크로스 플랫폼으로 앱을 개발해보는 것은 처음이었다. 안드로이드 개발만 했던 나에게는 다른 진영의 개발은 상당히 생소했다. 물론 Xcode도 처음 사용해보았다. 뿐만아니라 iOS 개발 및 배포와 관련된 경험이 모두 처음이었다. Flutter를 다루는 것도 처음이었다 Xcode 빌드 Fail이 될 때 Flutter로 개발하더라도 안드로이드와 iOS는 개별로 빌드를 해야한다. iOS는 Xcode로 빌드를 했는데... 처음부터 잘 될리가 없다. 안드로이드의 clean and build와 같은 방법이 있을 것으로 예상했고 예상대로 그런 방법이 있었다. 빌드 혹..
개발은 완료했지만 배포할 때되면 앱 아이콘, 스크린샷, 개인정보처리방침등이 필요할 수 있다. 개발자 혼자서 이 모든 것을 챙길 수 없다. 하지만 심사를 위해 임시로 이런 것들을 만들 수 있다. 아래 방법은 모두 필자가 사용한 방법이며 심사도 통과한 방식이다. 동시에 이 모든 과정이 무료다. 앱 아이콘 무료 아이콘 서비스를 통해 앱과 유사한 아이콘을 하나 받는다. (https://www.flaticon.com) 파일로 받은 아이콘 파일을 App Icon generator에 넣어서 앱 아이콘 포맷을 다운받는다.(https://www.appicon.co) 받은 아이콘을 적절하게 iOS와 Google play에 적용한다. 스크린샷 플레이스토어와 앱스토어는 각각 요구하는 스크린샷의 해상도가 다르다. 하지만 유사한..
한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다...만진심이 담겨있습니다. 허위 사실 유포는 😎일절 없음. 안드로이드 개발 서적을 고르는 기준 수많은 개발 서적이 있고, 그 중 베스트셀러도 있기 마련. 그 중에서도 하나를 고를려면 어떤 기준으로 골라야할까. 개발 분야는 짧은 기간에 많은 것들이 바뀐다. 트렌드부터 Deprecated되는 기술까지 여러 형태로 업데이트된다. 그래서 공부를 할 때 최신 정보가 맞는지 중요하다. 물론 기본서라면 기본서의 역할에 맡게 쉽고 충분한 설명이 포함되어야 한다. 그리고 그 기본서가 안드로이드 개발 서적이라면 '최신' 정보가 포함되어 있는지도 중요하다. 왜 그럴까? 위에서 보이는 것처럼 안드로이드는 수많은 API 버전이 존재한다. API 버전이 올라가면서 안드로이..
한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다...만 진심이 담겨있습니다. 허위 사실 유포는 😎일절 없음. 대부분의 안드로이드 개발 서적은 입문서 역할을 하고 있다. 처음 안드로이드 개발을 하는 분들을 위한 서적이란 뜻이다. "오준석의 안드로이드 생존 코딩" 역시 입문서에 가깝다. 그렇다면 입문 레벨이 아닌 분들에게 이 서적은 의미가 없을까? 입문 수준은 아니지만 중급도 아닌 개발자라면 본 서적의 4장부터 학습을 하면 된다. 4장도 코틀린의 기본을 다루지만 왜인지 모르고 사용하는 것이 있을 수 있다. 예를 들면 SAM 변환이 그렇다. (p.112) 편하게 OnClickListener를 사용하고 있지만 추상화되는 과정을 모르고 쓰는 경우가 많다. button.setOnClickListener(o..
Expandable layout이 무엇인가. 위 이미지를 보면 리스트뷰에서 다른 화면으로 전환하지 않고 리스트 내부의 뷰를 확장시키면서 현재 화면을 유지하고 있다. 이런 형태를 Expandable layout 혹은 Expandable list라고 부른다. 흔하게 보이는 이 위젯을 만드는 방법이 다양한데 간단한 방법부터 외부 라이브러리를 쓰는 방법까지 살펴볼 예정이다. 아래 샘플 코드가 사용된 사례가 보고 싶다면 필자의 github를 참고하시라. conquerex/WhatTheMvvm 우헤헿헤헤. 이게 뭐당가????? Contribute to conquerex/WhatTheMvvm development by creating an account on GitHub. github.com 🎀 1. animateL..
하나의 자료형을 다른 자료형으로 바꾸는 작업을 우리는 캐스팅이라고 한다. 우리나라말로는 형변환이라고도 한다. 기본적이지만 조금씩 헷갈려서 외우기 어려운 경우가 있다. 내가 그렇다. 맞다. 핑계다. 신경써서 외우질 않으니... 외우지 않는다면 정리라도 잘해보자. 이번에 다룰 주제는 String에서 Date로, 혹은 Date에서 String으로 캐스팅하는 방법이다. ⏰ 1. 서버로부터 들어온 date 정보를 살펴보기 이번에 작업할 대상은 아래와 같이 날짜 정보가 주어졌다. "createdAt":"2021-03-29T08:57:57.000Z" 듣도 보도 못한 양식이지만 우리 선배님들께서 이런 양식도 포매팅을 하는 방법을 블로그에 많이 올려주셨다. DateTimeFormatter를 이용해서 포매팅을 해주자. i..
⚠️ 경고 ⚠️ 본 카테고리, Dev Memo는 필자가 깊게 다루기는 귀찮지만 궁금한 것들을 체험해보고 간단하게 기록을 남기는 공간입니다. 디버깅 노트, 써드파티 라이브러리 사용기, 버전 업데이트, 어이없는 실수, 오탈자 발견 등 각종 시덥지 않은 내용이 들어 갈 수 있다는 점 참고바랍니다. (우헤헿) 새로운 PC(드디어 맥북 M1😘)를 받고 안드로이드 스튜디오를 설치한 후 코드를 빌드하는데 다음과 같은 에러가 나타났다. 확인해보니 반드시 안드로이드 네이티브에서만 나타나는 것은 아니고 리액트 네이티브에서도 볼 수 있는 에러였다. License for package Android SDK Build-Tools 30.0.2 not accepted. M1에서 나타나는 이슈인가해서 살짝 긴장을 했는데, 다행히 그..
최근에 Koin을 다시 공부하면서 샘플 코드에 RecyclerView를 사용했었다. 그 때 DataBinding도 사용했는데 "DataBinding과 RecyclerView를 모두 사용할 것이면 BindingAdapter도 사용하는게 더 낫지 않을까?"라는 생각을 했었다. (물론 RecyclerView와 BindingAdapter는 직접적으로 관계는 없다.) 그래서... BindingAdapter 두둥 등장!!! (아래 샘플 코드는 필자의 github를 참고바란다.) 🤔 BindingAdapter ? BindingAdapter는 속성값을 설정하거나 이벤트리스너를 설정하는 것처럼 View(xml 레이아웃)의 attribute를 정의하고 로직을 작성하는데 사용된다. Android의 기본 UI들은 대부분 이미..
⚠️ 경고 ⚠️ 본 카테고리, Dev Memo는 필자가 깊게 다루기는 귀찮지만 궁금한 것들을 체험해보고 간단하게 기록을 남기는 공간입니다. 디버깅 노트, 써드파티 라이브러리 사용기, 버전 업데이트, 어이없는 실수, 오탈자 발견 등 각종 시덥지 않은 내용이 들어 갈 수 있다는 점 참고바랍니다. (우헤헿) 우연히 "Logger로 안드로이드 로그향상하기"라는 글을 보았다. 개발자라면 무수한 로그를 보는데 조금이라도 깨끗한 + 정리된 + 예쁜 로그를 볼수록 정신건강에 좋다. 그래서 따라해보았다. // build.gradle (app) // OkHttp implementation "com.squareup.okhttp3:okhttp:$okhttpVersion" implementation "com.squareup.o..
DI(의존성 주입)라고 들어보았나? 의존성 주입을 하게 되면 아래와 같은 이점을 얻게 된다. 의존 관계 설정이 실행시에 이루어지므로 컴포넌트 간의 결합도를 낮춘다. 코드 재사용성이 증가한다. 단위 테스트의 편의성을 높여 준다. 스코프를 사용하여 객체를 관리할 수 있다. 그래도 모르겠다면 아래를 읽어보자. [MVVM 정복] 4. 어렵고 이해도 잘 안되는 DI, 그리고 Koin 이번편에서도 코드를 보면서 학습하길 권한다. conquerex/mvvm-template MVVM 학습과 앞으로 활용을 위한 템플릿. Contribute to conquerex/mvvm-template development by creating an account on GitHub. github.. devvkkid.tistory.com..
Comment