Do what you want

    앱이 출시되었다

    앱이 출시되었다

    개인정보처리방침이 필요하다지난 글에서 앱이 거부되었다고 했다. 이유는 잘못된 개인정보처리방침을 작성했기 때문인데, 해당 앱은 어떠한 개인정보도 수집 및 사용하지 않는다. 고 생각했지만 구글에 따르면 기기 위치www.pinslog.com개인정보처리방침이 없어 앱 업로드가 거부되었었다. 그리고 곧이어 이전에 올라가있던 PP 마저 개인정보처리방침 때문에 거부당했다. 무슨 수를 써야만 했다. 그래서 GPT에게 도움을 요청했다. 내가 만든 앱들은 사용자의 개인정보 중 어떠한 것도 수집 및 공유하지 않기 때문에 별다른 내용을 포함하지 않아도 되었다. 위치 정보가 필요하긴 하지만 서비스를 제공하기 위함이고 마찬가지로 수집 및 공유하지 않기 때문에 해당 내용을 포함시켜 업로드를 했다. 개인정보처리방침을 업로드하려면 플..

    개인정보처리방침이 필요하다

    개인정보처리방침이 필요하다

    지난 글에서 앱이 거부되었다고 했다. 이유는 잘못된 개인정보처리방침을 작성했기 때문인데, 해당 앱은 어떠한 개인정보도 수집 및 사용하지 않는다. 고 생각했지만 구글에 따르면 기기 위치는 개인 정보 및 민감한 사용자 데이터로 분류된다. 실제로 다른 업무 때문에 암호화되어야 하는 민감정보로 사용자 위치 데이터가 분류되어 있는 것을 본 적이 있다. 사실 해당 항목은 이전에 PP 업로드 할 때도 지나가면서 본 적이 있는데 그때는 개인정보포털에서 개인정보처리방침을 손쉽게 만들어 업로드를 하면 되는 문제였다. (나는 그때도 만들지 않고 내 블로그 주소를 입력했었는데 앱이 승인이 되어 게시 됐다.) 그래서 이번에는 개인정보처리방침을 만들어야겠다 생각하고 사이트에 접속했는데 아무리 봐도 만드는 페이지가 나오지 않았다...

    앱이 거부됐다

    앱이 거부됐다

    검토를 요청해두고 며칠이 지나서 들어가보니 세상에 앱이 거부당했다 ㅇ0ㅇ PP 업로드할 때는 이런 일이 없었는데.... 원인은 위와 같았다. 음 조만간 원인과 해결방법을 포스팅해야겠다!

    WearWeather : 기온별 옷차림을 확인해보세요!

    WearWeather : 기온별 옷차림을 확인해보세요!

    올해 목표 중 하나였던 ’두번째 앱 출시하기‘를 목전에 두고 있다. 첫번째 앱을 출시하고 약 1년 만이다. Pair Play : 이름과 맥주소로 손쉽게 페어링하세요!올해 목표 중 하나였던 ‘앱 개발 후 출시하기’를 이루었다. 원래 출시하려던 앱은 아니었지만 (그건 아직도 개발중…눈물) 만든 이유도 좋고, 나름 쓰임새도 좋아 뿌듯하다. 지금부터 홍보를(?www.pinslog.com Pair Play - Google Play 앱손쉬운 블루투스 페어링play.google.com첫번째 앱 Pair Play 와 마찬가지로 대단한 기능을 가진 앱은 아니지만 이번 WW의 경우는 개발을 배우기 전부터? 안드로이드 개발을 배울때부터? 만들어보고 싶었던 거라 감회가 새롭다. 그도 그럴 것이, 실제로 이 프로젝트는 안드로이..

    집단지성의 방 : 1st Hackathon - Deep Into the Code

    집단지성의 방 : 1st Hackathon - Deep Into the Code

    작년에 왔던 집단지성의 방(이하 집지방), 죽지도 않고 올해 또 왔습니다. 😂 사실 작년에 비해 올해는 활발한 활동을 이어나가진 못했습니다. 혈기왕성 열정만땅이었던 신입에서 어딘가 한풀 시들어버린, 재미없는 직장인들이 되어버려 의욕은 자취를 감춘지 오래였죠. (는 제 얘기) 이번엔 해커톤이다 그렇게 서로의 의욕없음(?)에 대해 성토하던 어느 날, 불현듯 그런 생각이 들었습니다. 이대로 피곤한 현생 뒤에 숨기는 싫다...저번 컨퍼런스처럼 우리를 자극시킬만한 무언가를 하고 싶다! 뭐가 있지? 해커톤! 그래 해커톤을 열자! 어디서 본 건 많고 나름 그런데에 끼고 싶기도 했던 극I인 저는 해커톤도 꼭 참여해보고 싶었습니다. (캬캬) '여름에 놀러가서 같이 개발하면 재밌지 않을까? 일과 재미 모두 잡는 시간이 될..

    집단지성의 방 : 북클럽을 개장합니다.

    집단지성의 방 : 북클럽을 개장합니다.

    집단지성의 방 : 북클럽을 개장합니다. 어느덧 집단지성의 방의 문을 열어 젖힌지도 만 1년이 넘었습니다. 다들 바쁜 현생에도 불구하고 일주일에 한번은 꼬박꼬박 모여(사정상 건너뛸 때도 있습니다.) 그간 있었던 일들도 공유하고 같이 알고리즘 문제도 풀면서 골머리도 좀 썩혀보고....아무튼간에 도란도란 잘 지내고 있습니다. 그러는 와중 집지방 올해 첫번째 프로그램, 북클럽을 개장했습니다. IT 트렌드 2023 김지현 저 IT 트렌드 2023 | 김지현 - 교보문고 IT 트렌드 2023 | 2023년 IT 트렌드의 중심, 웹3 모든 사람이 알아야 할 최소한의 IT 상식우리는 새로운 기술의 등장과 새 인터넷 시대의 첫발, 그로 인한 경제 흐름의 변화에 직면하고 있다. 또 빠르 product.kyobobook.c..

    [Android] 프로그래밍 방식으로 동적 링크 만들기

    [Android] 프로그래밍 방식으로 동적 링크 만들기

    동적 링크를 생성하는 여러가지 방법 저번 글에서 언급한 것 처럼 동적 링크를 생성하는 데는 여러 방법이 있다. 전에 살펴본 것이 콘솔을 이용한 방법이었다면, 이번에는 프로그래밍 방식으로 생성하는 것을 알아보려고 한다. Android 에서 동적 링크 만들기 Firebase Dynamic Links Builder API 를 이용해 동적 링크를 만들 수 있다. 링크가 여러개인 경우나 사용자 간 공유를 위해 앱에서 동적으로 링크를 만드는 데에 적합한 방법이다. Firebase 및 동적 링크 SDK 설정 Android 앱에서 동적 링크를 만들기 위해서는 Firebase SDK를 포함해야 한다. 프로젝트를 추가하지 않았다면 추가를 먼저 해주어야 한다. 이후의 과정은 프로젝트를 추가한 상태에서 기술된다. 이전글을 참..

    [Android] 공유하기 기능 추가하기 | Firebase Dynamic Links

    [Android] 공유하기 기능 추가하기 | Firebase Dynamic Links

    상황 메인 화면에서 공유하기 버튼을 클릭하면 다음과 같이 ShareSheet가 뜨고, 공유했을 때 앱이 실행되거나 설치 되지 않은 경우 설치 화면으로 이동할 수 있도록 해주려고 한다. Firebase Dynamic Link 앱 설치 여부와 상관 없이 여러 플랫폼에서 원하는 대로 작동하는 링크 관련 검색을 해보다 ‘동적 링크’라는 것을 알게 되었다. 그러니까, 해당 링크를 실행하는 플랫폼이 무엇이든 거기에 맞는 환경을 제공할 수 있는 것이다. 원리 동적 링크를 만들기 위해서는 Firebase Console, REST API, iOS 또는 Android Builder API 를 사용하거나 앱에 지정된 도메인에 동적 링크 매개변수를 추가하여 URL을 생성하면 된다. 이때 매개변수에는 사용자의 플랫폼 및 앱 설..

    집단지성의 방 : 첫번째 방의 문을 닫으며

    집단지성의 방 : 첫번째 방의 문을 닫으며

    집단지성의 방 : 첫번째 방의 문을 닫으며 안녕하세요. 핀수입니다. 올해 초 처음 개설했던 스터디 집단지성의 방의 송년회를 오늘 랜선으로 개최했습니다. 이렇게까지 진지하게 할 생각은 없었는데..그래도 이왕이면 제대로 해서 이렇게 기록도 남기고, 남긴 기록으로 내년에는 올해를 회상하며 추억에 잠기기 위해 키보드를 잡았습니다. (차례대로 도삼, 루디, 핀수입니다 😎) 집단지성의 방은 올해 초 정보처리기사 자격증을 취득하기 위해 비전공자 같은 학원 출신 셋이 모여 만든 스터디 입니다. 처음에는 단순히 자격증만 딸 생각이었는데...원래 학원에서부터 친하게 지내기도 했고! 다들 생각하는 것도 비슷해 잘 맞았던 도삼, 루디, 핀수는 어쩌다보니 이것저것 해보며 한 해를 보내게 되었습니다. 그렇게 자격증도 따고 알고리..

    [Android] locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) 이 null을 반환할 때

    [Android] locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER) 이 null을 반환할 때

    상황 날씨앱이다 보니 현재 위치를 받아와야 하는 것은 당연하다. 현재 위치의 좌표를 구하기 위해 LocationManager 클래스의 getLastKnownLocation 메서드를 이용한다. 그런데 해당 메서드가 Location이 아닌 null을 반환하는 바람에 현재 위치도, 현재 주소도 알 수 없어졌다. getLastKnownLocation(provider) Gets the last known location from the given provider, or null if there is no last known location. The returned location may be quite old in some circumstances, so the age of the location should a..

    [Android] Bottom Appbar와 FloatingActionButton (feat. Appbar left margin 없애기)

    [Android] Bottom Appbar와 FloatingActionButton (feat. Appbar left margin 없애기)

    제작일지 벌써 붙잡고 있은지 일년이 넘어가는 내 아픈 손가락... 날씨 앱..이다지도 골치 아픈것이었단 말인가 날씨날씨 앱 만드신 분들 정말 존경합니다..너무 잘쓰고 있어요..(갑자기 분위기 영상편지 쉬게 된 김에 반드시 제대로 만들어 출시시키겠다는 목표를 가지고 다시 키보드를 잡았다. 아 개발자가 화면 구성하려니 머리가 다 뽑히는 것 같은데 사실상 이것 때문에 일년 가까이 시간 잡아 먹었다는게 학계의 정설 (해당 카테고리 이전 글을 읽으면 모두 알 수 있는....) 디자인 하시는 분들도 정말..정말 존경합니다. 각설하고 필자는 이런식으로 앱 구성을 하길 원했다. 후자 쪽이 내가 더 원하던 느낌이었는데 이건 바텀 네비게이션은 아닌 것 같고… 도대체 뭘까 하며 뒤져보다 우연히 바텀 앱바와 플로팅 액션 버튼..

    [Android] 전역적인 예외처리하기 | Thread.setDefaultUncaughtExceptionHandler

    [Android] 전역적인 예외처리하기 | Thread.setDefaultUncaughtExceptionHandler

    상황 앱 사용 중 앱이 픽 죽어버리거나 응답 없음 창(ANR)이 뜨는 것을 경험한 적 있을 것이다. 한두번이야 왜이래~~ 하면서 다시 앱을 실행해 사용하겠지만 이러한 상황이 지속된다면? 끔찍한 사용자 경험을 제공하게 되고 사용자들은 더 이상 해당 앱을 찾지 않을 것이다. 개발을 하다보면 여러가지 오류와 만나게 된다. 예상 가능한 범위의 오류는 처리할 수 있다지만 그렇지 못한 경우에는 어떻게 해야할까? 오늘은 전역적인 예외 처리에 대해 알아보려고 한다. 비정상 종료 가장 최근 업데이트한 버전 1.1.0에서 비정상 종료가 발생한 것을 확인했다. 경험으로 미루어보아 앱이 냅다 꺼져버린 거겠지 해당 원인을 찾아 해결하는 것도 중요하지만 이러한 상황이 발생했을 때 앱이 죽도록 내버려두는 것이 아니라 이를 사용자에..