Tech & Programming/모바일(Android, Flutter) 20

안드로이드 가로/세로모드 고정하는 방법

최근 회사에서 Tablet 해상도에 가로모드를 지원을 위해서 개발을 진행했었습니다. 가로/세로 모드를 적용하다보면 여러가지 기초 지식들이 햇갈릴 때가 많은데요. 그래서, 저도 다시 공부하고 여러분께도 도움이 되고자 화면전환과 구성변경 관련되서 연재 포스팅 합니다. 아마 이번 포스팅 포함해서 2~3번 정도면 모두 정리 될 것 같네요. 먼저, 오늘은 가로 또는 세로 방향으로만 고정하는 방법에 대해 말씀드릴께요. 1. 가로 또는 세로 방향으로 고정하는 방법 먼저, 안드로이드에서 방향을 고정하기 위한 방법은 두가지가 있습니다. 첫번째는 AndroidManifast.xml 의 을 이용해 가로 또는 세로로 고정시키는 방법입니다. 그리고, screenOrientation 에서 사용할 수 있는 value는 아래 안드로..

구성변경(Configuration)에 따른 엑티비티 재시작

이전 글 : 2019/09/13 - [Tech & Programming/안드로이드 & 모바일] - 안드로이드 가로/세로모드 고정하는 방법 2. 구성변경(Configuration)에 따른 엑티비티 재시작 이 전 포스팅(2019/09/13 - [Tech & Programming/안드로이드 & 모바일] - 안드로이드 가로/세로모드 고정하는 방법) 에서 언급한 것처럼 화면방향, 휴대폰 Locale 등이 변경되어 Activity 를 재시작하면 하나의 인스턴스를 가지고 재사용 하는 것이 아니라, 기존 인스턴스는 onDestroy()까지 실행하고 새 인스턴스가 onCreate() 부터 새로 시작됩니다. 1) 구성 한정자란? 구성(Configuration) 은 Actvity를 비롯한 컴포넌트에서 어떤 리소스를 사용할 ..

[안드로이드] Migrating to the New Places SDK Client (구 버전은 2019.7.29 종료)

회사에서 서비스하는 어플에 Place Autocomplete, Current Place 등을 사용하고 있습니다. 이런 기능들을 제공하던 place-services-places Places SDK 가 2019년 7월 29일 서비스가 종료되었습니다. 그래서, 최근 회사에 새롭게 바뀐 Places SDK 로 교체했습니다. 혹시 아직 교체 안하신 분이 있을까 해서 포스팅합니다. 1. 요약 Google Play Services 버전의 Places SDK(com.google.android.gms:play-services-places)가 2019년 1월 29일부터 deprecated 되고, 2019년 7월 29일부터 서비스가 종료됩니다. 따라서, 새로운 버전의 Places SDK 버전으로 교체해야합니다. 2. 사전 ..

View의 내용을 어떻게 이미지 파일로 만들었나요?

2018/12/30 - [Toy Project] - 2019년 신년 메시지는 '기분 좋은 인사' 로 보내세요. 2019년 신년 메시지는 '기분 좋은 인사' 로 보내세요. '기분 좋은 인사 : 2019년, 새해 인사말 및 안부, 감사, 경조사 등 인사말' 확인 - https://play.google.com/store/apps/details?id=com.toyproject.greeting 2019년 새해, 지인들에게 '기분 좋은 인사'로 새해인.. developside.tistory.com 지난 번 면접시에 사이드프로젝트로 진행한 '기분 좋은 인사' 의 기능을 설명하면서, 이미지와 사용자가 입력한 메시지 텍스트를 어떻게 이미지 파일로 만들어 보내냐는 질문을 받았었습니다. 코드를 작성한 지 오래되서 알음알음 ..

ViewHolder 가 무엇인가요?

최근에 제가 안드로이드 면접을 봤었습니다. RecyclerView 이야기가 나와서 설명하다가 ViewHolder에 대해서 설명해 보라는 면접 질문을 받았었는데, 막상 아는 내용이지만 설명하려고 하니 어렵더군요. 그래서 ViewHolder와 이를 사용하는 ListView와 RecyclerView에 대해서 간략하게 정리를 해 보았습니다. 1. ViewHolder란? 한마디로 설명하면 각 뷰를 보관하는 Holder 객체로 이야기 할 수 있습니다. "ListView / RecyclerView 는 inflate를 최소화 하기 위해서 뷰를 재활용 하는데, 이 때 각 뷰의 내용을 업데이트 하기 위해 findViewById 를 매번 호출 해야합니다. 이로 인해 성능저하가 일어남에 따라 ItemView의 각 요소를 바로..

안드로이드 http 프로토콜 접속 시 예외발생 조치 (ERR CLEARTEXT NOT PERMITTED)

어제 앱을 개발 중 glide v4를 사용하여 웹에 있는 그림을 load 하였는데, 아래와 같은 예외를 주며 동작을 하지 않았습니다. com.bumptech.glide.load.engine.GlideException: Fetching data failed, class java.io.InputStream, REMOTEThere was 1 cause:java.io.IOException(Cleartext HTTP traffic to ~~~~ not permitted) call GlideException#logRootCauses(String) for more detail 처음에는 glide 4로 버전업을 하면서 뭔가 바뀐 것이 있나 싶어서 glide 문서를 뒤지고, 관련 코드들을 보았는데 특별한 것이 없었습니다..

2018 GDG DevFest in 서울 참석 후기

어제(18.11.10) 세종대학교 광개토관 컨벤션홀에서 GDG DevFest 서울이 있었습니다.저는 GDG DevFest 행사 소식이 있자마자 서울 나들이 겸 다녀와야 겠다는 생각으로 미리 블라인드 티켓을 구매해놨었습니다. 그래서, 어제 가을 나들이 겸 서울까지 겸사겸사 다녀왔습니다. QR코드로 체크인을 하고, 굿즈를 받았습니다.굿즈는 무릎담요 + DevFest 스티커 였고요. 사진을 찍었어야 했는데 정신없이 돌아본다고 사진을 깜빡했네요. 이번 시즌에는 요기요, 카카오페이, bank salad, cracker 채용 관련 부스가 있었습니다.명함 이벤트를 모두 진행했는데, 당첨이 하나도 안되서 아쉽더군요. 아무튼, 각 부스를 돌아다니며 이벤트도 참여하고, 스티커를 모으다 보니 어느 덧 Keynote 시작 시..

AlertDialog의 setSingleChoiceItems 리스트 아이템이 안보이는 경우 확인사항

몇 일전 토이프로젝트를 진행하다가 어이없는 실수를 저질렀습니다. 꼼꼼하게 공식개발문서를 읽지 않고, 예제소스코드도 대충보고 짜서 저질러진 일인데 똑같은 실수를 방지하기 위해서 이렇게 부끄러움을 무릅쓰고 블로깅을 합니다. 일단 문제의 소스코드 입니다. 간략하게 해당소스에 대해서 말씀드리면 구글 Geocoding API의 결과를 받아서 결과가 여러개일 경우 선택할 수 있게 single choice 리스트 형태로 AlertDialog를 띄우는 부분입니다. 한번 보시고 어디가 문제 인지 한번 찾아보시길 바랍니다. 혹시 AlertDialog에 대해서 선행 학습이 필요하신 분은 아래 공식문서 및 블로그의 글을 한번 읽어 보시면 됩니다.구글 대화상자 공식문서 : https://developer.android.com/..

Soundpool 재생이 안되는 경우 해결방법 (Soundpool.load 딜레이)

토이프로젝트로 마켓에 출시했던 '어린이 낱말카드' (2017/11/29 - [Toy Project] - 어린이 낱말카드) 에 낱말카드로 할 수 있는 게임기능을 넣어달라는 요청이 있어 최근에 개발을 했습니다. 낱말카드 중 하나의 텍스트를 보여주고, 4가지 낱말카드 이미지 중 텍스트에 해당하는 이미지를 찾는 게임입니다. 이 때 이미지를 터치하게 되면 효과음이 나도록 하기 위해서 SoundPool을 이용해서 구현하였습니다. 간단한 거니까 당연히 되겠지하며 테스트를 했는데, 효과음이 나지 않았습니다. 확인을 해보니 아래와 같은 문제가 있었습니다. 현상아래와 같은 코드로 SoundPool을 사용하였으나, 제대로 효과음이 나지 않음. 디버깅으로 breakpoint를 걸어 한줄씩 실행 시 효과음이 발생함. publi..

Intent를 이용한 카카오톡 / SMS 텍스트, 이미지 보내기

지난 번 새해 때 급하게 만들었던 인사말 관련 안드로이드 어플리케이션 때 사용한 기능을 소개해 드릴려고 합니다. 버튼을 클릭하면 텍스트나 이미지를 카카오 톡 또는 문자메시지로 보내는 코드입니다. 1. 텍스트 보내기텍스트 보내기는 간단합니다. 기본 코드는 아래와 같습니다. 아래 코드로 응용해서 다양하게 이용할 수 있을 것으로 생각됩니다. 1) 문자메시지 String message = "보낼 내용"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra("sms_body", message ); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); 2) 카카오 톡 String messa..