- Total
목록분류 전체보기 (291)
꿈꾸는리버리
드디어 저의 앱에도 원격 notification이 들어갑니다 ~~신 기능이나 새로 업데이트 되었을 때 알림을 보낼 예정이에요!1. FirebaseMessaging 추가하기 2. 개발자 계정에 Key 생성 로그인 - Apple idmsa.apple.com위 링크에서 Key 가 생성되고 Name, Key ID, Services 에 대한 내용이 나오게 되는데 해당 파일은 다운을 다시 받을 수 없기 때문에 다운 받아두기 3. Firebase 에 Key 업로드 로그인 - Apple idmsa.apple.com참고로 Team ID는 여기 링크에서 확인 가능! 4. Xcode Project 에 기능 추가5. FCM 토큰을 받기 위한 코드 추가import SwiftUIimport Firebaseimport Fireb..
어떤 앱인가요? 스마트 인솔과 AI를 활용해 스쿼트 자세를 실시간으로 분석해주는 앱 SquirFit을 만들었다. 이 앱은 ‘운동을 더 안전하고, 덜 외롭게 만들 수 없을까?’라는 질문에서 출발했다. 카메라 영상은 AI 서버로 보내고, 무릎·골반·발목 각도를 분석해 자동으로 횟수를 세어준다. 발바닥 압력 센서(FSR)를 통해 체중 분배도 바로 눈으로 확인할 수 있게 했다. 운동 중에는 ‘람이’ 캐릭터가 옆에서 달리며 말도 걸어주고, 음성으로 자세 피드백도 해준다. 1학기 MVP 테스트에서 캐릭터와 시각적 피드백이 운동 지속에 효과 있다는 걸 확인했고, 2학기에는 음성 피드백, AI 자세 점수, 운동 기록까지 추가하며 완성도를 끌어올렸다. SquirFit - 다람이와 함께 운동을 ! 앱 - App Stor..
상황 정리 현재 계정(A), 새로 판 계정(B)이라 하겠습니다. 기존 개발자 계정 유형(A)은 "개인"으로 설정되어 있으나, 연결된 결제 프로필이 "조직"으로 되어 있어 유형 불일치 문제가 발생해 첫 수익금을 받지 못했다. 문의를 해보니 둘 다 "개인"이어야 한다는 답변을 받았으며, 결제 프로필 유형을 "개인"으로 변경을 못하니, 25달러를 지불해서 개발자 계정과 결제 프로필(B)을 새로 생성해야 하며, B를 생성한 이후 A의 앱을 B로 이전해야 한다고 답변을 받은 상태... WOW... 왜 조직에서 개인으로 변경이 안돼..?왜 새로 생성하고 이전해야해..? 하지만 2-3일 정도 구글링도 하고 문의하기도 여러 부서로 했는데 모두 같은 답변을 받았기에 그냥 진행했다... 주의사항 1. 개발자 계정과 결..
안녕하세요, 꿈꾸는 오뚝이 개발자 리버입니다 ㅎㅎ 꿈꾸는 개발자 리버의 프로필안녕하세요, 삶의 경험을 앱으로 표현하는 개발자, 리버입니다. 제가 만든 앱에서 행복한 시간을 보내시길 바라며, 오늘도 좋은 하루 되세요 ♡litt.ly2025년은 마지막 대학생활과 사업을 병행해서 되게 바쁘기도 했지만, 그만큼 느낀 점도 많았던 한 해였던 것 같습니다. 올해 저에게 여러 조언과 사랑을 나눠준 모든 인연들에게 감사드리며, 한 해동안 감사했습니다! 내년에도 함께 즐거운 시간들을 포갤 수 있길 기대하며, 2025년의 기나긴 회고를 시작합니다 :)ps. 회고록인 만큼 솔직한 이야기를 담아내기 위해 일기 반말 모드 시작하겠습니다.. ㅎㅎ 우선 내가 2025년 올해에 느낀 건 "바르고 올곧게 살아가기 위해서는 많은 노력과..
가끔 애뮬레이터가 검정화면이 뜨는 경우가 있거나Activity class {~~.MainActivity} does not exist와 같은 에러가 발생하면Tools -> Device Manager원하는 기기의 ... -> Wipe Data하면 다시 제대로 실행된다. ( 에뮬레이터 강제 초기화 )
프로덕트 빌더로 성장하기 !!요런... 프로그램으로 당근에서 1박 2일 해커톤을 다녀왔습니다...! 엔지니어를 넘어 ‘빌더’로, 당근 Builder’s Camp 해커톤 | 당근 블로그당근 팀이 일하는 문화와 방식을 소개해요.about.daangn.com Danangn Builder's Camp를 지원하게 된 계기 라는 선배의 말을 시작으로 준비하게 된 Camp..!!그간 취업에 대한 생각을 안 한 건 아니었지만 Ourday, CHAKK 개발에 바빴기 때문에 계속 여차저차 뒤로 미루다가 이번에는 홀린 듯이 지원서를 제출하고 당근 빌더스 캠프를 다녀왔다. 이유는 딱히 없다. WHY NOT?프로덕트 필더? 완전 나잖아 ~~~Danangn Builder's Camp에서 지원해준 것1. 참여자 모두에게 Claud..
MainActivity (Entry Point) ↓ NavController 생성HomeView (Navigation Container) ↓ NavHost 설정HomeMainView (UI Layer) ↓ 버튼 클릭onEvent(HomeEvent) 발생 ↓ 이벤트 전달HomeView의 when 분기 ↓ 네비게이션 실행NavController.navigate(Route) 1. Event 정의하기// HomeEvent.ktpackage com.yourapp.feature.homesealed interface HomeEvent { data object NavigateToSetting : HomeEvent data object NavigateToContentEdit : Ho..
이미지를 저장할 때는 asImage를 활용해서 하면 가능 근데 Data의 형태로 이미지를 저장할 때는 아래와 같이 png, jpeg 2가지 방법이 있다.jpegData()을 하게 되면 배경이 칠해진 채로 캡쳐가 되기 때문에 pngData()로 하는 게 편리하다.// UIImage 저장시let uiImage = 어떤뷰.asImage// 데이터로 저장시let data1 = 어떤뷰.asImage.pngData()let data2 = 어떤뷰.asImage.jpegData(compressionQuality: 1)extension View { var asImage: UIImage { let controller = UIHostingController(rootView: self.edgesIgnorin..
