반응형
Flutter로 앱 개발하면서 만났던 이슈들
Android, iOS 2023. 8. 8. 16:04

웹뷰를 감싸는 Flutter 앱을 만들면서 여러가지 이슈를 겪었다. 기억에 남는 이슈를 여기에 (두서없이ㅎ) 남겨보겠다. 참고로 나의 상황은 아래와 같다. 크로스 플랫폼으로 앱을 개발해보는 것은 처음이었다. 안드로이드 개발만 했던 나에게는 다른 진영의 개발은 상당히 생소했다. 물론 Xcode도 처음 사용해보았다. 뿐만아니라 iOS 개발 및 배포와 관련된 경험이 모두 처음이었다. Flutter를 다루는 것도 처음이었다 Xcode 빌드 Fail이 될 때 Flutter로 개발하더라도 안드로이드와 iOS는 개별로 빌드를 해야한다. iOS는 Xcode로 빌드를 했는데... 처음부터 잘 될리가 없다. 안드로이드의 clean and build와 같은 방법이 있을 것으로 예상했고 예상대로 그런 방법이 있었다. 빌드 혹..

앱 배포할 때 앱 아이콘, 스크린샷, 개인정보처리방침이 필요하면?
Android, iOS 2023. 8. 8. 15:43

개발은 완료했지만 배포할 때되면 앱 아이콘, 스크린샷, 개인정보처리방침등이 필요할 수 있다. 개발자 혼자서 이 모든 것을 챙길 수 없다. 하지만 심사를 위해 임시로 이런 것들을 만들 수 있다. 아래 방법은 모두 필자가 사용한 방법이며 심사도 통과한 방식이다. 동시에 이 모든 과정이 무료다. 앱 아이콘 무료 아이콘 서비스를 통해 앱과 유사한 아이콘을 하나 받는다. (https://www.flaticon.com) 파일로 받은 아이콘 파일을 App Icon generator에 넣어서 앱 아이콘 포맷을 다운받는다.(https://www.appicon.co) 받은 아이콘을 적절하게 iOS와 Google play에 적용한다. 스크린샷 플레이스토어와 앱스토어는 각각 요구하는 스크린샷의 해상도가 다르다. 하지만 유사한..

[안드로이드] Expandable layout을 만드는 3가지 방법
Android, iOS 2021. 4. 18. 23:54

Expandable layout이 무엇인가. 위 이미지를 보면 리스트뷰에서 다른 화면으로 전환하지 않고 리스트 내부의 뷰를 확장시키면서 현재 화면을 유지하고 있다. 이런 형태를 Expandable layout 혹은 Expandable list라고 부른다. 흔하게 보이는 이 위젯을 만드는 방법이 다양한데 간단한 방법부터 외부 라이브러리를 쓰는 방법까지 살펴볼 예정이다. 아래 샘플 코드가 사용된 사례가 보고 싶다면 필자의 github를 참고하시라. conquerex/WhatTheMvvm 우헤헿헤헤. 이게 뭐당가????? Contribute to conquerex/WhatTheMvvm development by creating an account on GitHub. github.com 🎀 1. animateL..

[Android] java.time 패키지 때문에 String to date casting이 안될 때
Android, iOS 2021. 4. 14. 18:00

하나의 자료형을 다른 자료형으로 바꾸는 작업을 우리는 캐스팅이라고 한다. 우리나라말로는 형변환이라고도 한다. 기본적이지만 조금씩 헷갈려서 외우기 어려운 경우가 있다. 내가 그렇다. 맞다. 핑계다. 신경써서 외우질 않으니... 외우지 않는다면 정리라도 잘해보자. 이번에 다룰 주제는 String에서 Date로, 혹은 Date에서 String으로 캐스팅하는 방법이다. ⏰ 1. 서버로부터 들어온 date 정보를 살펴보기 이번에 작업할 대상은 아래와 같이 날짜 정보가 주어졌다. "createdAt":"2021-03-29T08:57:57.000Z" 듣도 보도 못한 양식이지만 우리 선배님들께서 이런 양식도 포매팅을 하는 방법을 블로그에 많이 올려주셨다. DateTimeFormatter를 이용해서 포매팅을 해주자. i..

[안드로이드] BindingAdapter!! 두둥등장!!
Android, iOS 2021. 3. 17. 18:01

최근에 Koin을 다시 공부하면서 샘플 코드에 RecyclerView를 사용했었다. 그 때 DataBinding도 사용했는데 "DataBinding과 RecyclerView를 모두 사용할 것이면 BindingAdapter도 사용하는게 더 낫지 않을까?"라는 생각을 했었다. (물론 RecyclerView와 BindingAdapter는 직접적으로 관계는 없다.) 그래서... BindingAdapter 두둥 등장!!! (아래 샘플 코드는 필자의 github를 참고바란다.) 🤔 BindingAdapter ? BindingAdapter는 속성값을 설정하거나 이벤트리스너를 설정하는 것처럼 View(xml 레이아웃)의 attribute를 정의하고 로직을 작성하는데 사용된다. Android의 기본 UI들은 대부분 이미..

[안드로이드] 오락실용 코인 아님. 코틀린용 의존성 주입, Koin
Android, iOS 2021. 3. 7. 04:21

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..

[안드로이드] local.properties에 API Key값 숨기기
Android, iOS 2021. 2. 26. 05:15

예를 들어보자. Daum 이미지 검색 API를 안드로이드 내부에서 사용한다면... 카카오 개발 계정이 필요할 것이고 앱키를 얻기 위해 애플리케이션을 등록하고 등록된 애플리케이션으로부터 REST API 키를 얻고 "Daum 검색" 개발 가이드에서 이미지 검색 API 정보를 얻으면 된다. 여기서 3번의 REST API를 안드로이드 코드 내부에 들고 있어야 한다면 어딘가에 저장을 할 것이다. 이 저장하는 과정에서 섬세하게 다루지 않는다면 비밀번호처럼 드러나면 안되는 API Key값을 Github 등에서 누구나 접근가능하게 되버려 곤란한 상황을 겪게될 수 있다. (오우 소름) 그렇다면 숨겨야 할 값을 안보이게 하는 방법으로 무엇이 있을까? local.properties에 Key값 숨기기 local.propert..

Kotest로 해보는 안드로이드 테스트 (하)
Android, iOS 2021. 2. 7. 23:35

본 글에서는 RxJava 혹은 RxKotlin의 기본 지식이 필요하다. 그리고 만약 이전 글이 궁금하다면 아래 링크를 접속해보자. Kotest로 해보는 안드로이드 테스트 (상) 테스트 코드를 만들어 본 적은 있지만 안드로이드 프로젝트 내에 테스트 코드를 적용해 본 적이 없었다. 그래서 TDD같은 단어는 그림의 떡. 남들이 말하는 유닛 테스트는 "우와 멋있는 말"이라고 devvkkid.tistory.com 앞에서 Kotest를 사용하기 위한 준비를 마쳤다. 이제 사용을 해 볼것이다. 이미 만들어진 프로젝트가 있다. (해당 링크는 필자의 Github repository이다.) 이 프로젝트에는 REST API 형태로 통신하는 모듈이 들어있다. 이 API를 테스트해 볼 것이다. 1. 테스트 클래스 생성 먼저 t..

Kotest로 해보는 안드로이드 테스트 (상)
Android, iOS 2021. 1. 22. 00:01

테스트 코드를 만들어 본 적은 있지만 안드로이드 프로젝트 내에 테스트 코드를 적용해 본 적이 없었다. 그래서 TDD같은 단어는 그림의 떡. 남들이 말하는 유닛 테스트는 "우와 멋있는 말"이라고 감탄할 뿐이었다. 그렇다고 언제까지 감탄만 할 것인가. 부러워만 하지 말고 이제 테스트 코드를 넣어보자. 하다못해 넣는 척이라도. (권장사항 : Junit으로 테스트하는 방법을, 간단하게라도 알고 오면 해당 내용이 더 쉬울 수 있다. Junit을 사용하는 방법만 알고 본 내용을 읽어도 괜찮다. 본 내용은 코틀린으로 진행하지만 많은 샘플을 찾아 볼 수 있는 Java로라도 Junit을 사용하는 방법을 알아보자.) 어디서부터 접근을 해야할까? 테스트를 할 포인트를 잡아야 할 텐데... 기획자나 디자이너의 요청으로 변경이..

안드로이드 맨땅에 Repository 박기
Android, iOS 2021. 1. 13. 19:01

Repository. 사전적 의미부터 시작해보자. repository 미국식 [rɪˈpɑːzətɔːri] 영국식 [rɪˈpɒzətri] 1. (어떤 것의 대량) 저장소 2. (지식·정보 등의) 보고(寶庫) - 출처 : 네이버 사전 결국 레포지토리(혹은 리포지토리)는 무엇을 저장하기 위해 존재한다. 안드로이드에 아키텍처를 적용하면서 자주 보게되는 Repository. 이 레포지토리를 이해하려면 Repository 패턴도 같이 이해하는 것이 좋다. Repository 패턴 타 블로그에서 Repository 패턴을 어떻게 정의했는지 가지고 와 보았다. 데이터 출처(로컬 DB인지 API응답인지 등)와 관계 없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 것을 Repository 패턴이라고 한다. 레포지..

728x90
반응형