본문 바로가기

분류 전체보기241

[Flutter, C#] .env 파일 추가 서론) Flutter 개발환경에서 nodejs의 dotenv 같은 환경 설정이 필요했다. dart-define 문법을 활용하여 처리할 수도 있겠지만 그냥 바로 생각나는게 dotenv더라. flutter환경에서 dotenv를 지원하는 패키지가 존재한다. https://pub.dev/packages/flutter_dotenv 프로젝트 파일에 .env 파일을 추가하고 초기화를 진행한다. Future main() async { // To load the .env file contents into dotenv. // NOTE: fileName defaults to .env and can be omitted in this case. // Ensure that the filename corresponds to the.. 2023. 10. 23.
[Android] Splash Screen API 분석 안드로이드 12(API 31, 32)부터 Splash Screen API가 추가되었다. 기존에 Splash Screen을 커스텀해서 사용하던 방식을 개선하고자 공식적으로 지원하는 API이다. 앱의 실행 상황(Cold start)에 맞게 적절한 리소스를 사용하기 위해 API를 제공한다. 앱이 처음 시작되는 경우 Cold start에 해당한다. 앱을 실행시키기 위한 프로세스단 처리부터 시작된다. Warm Start의 경우 액티비티의 onCreate부터 호출이 된다. Hot Start의 경우, 액티비티가 메모리에 존재하여 초기화를 하지 않는다. 메모리가 달라진 경우에 한정되어 다시 만드는 처리를 진행한다. 안드로이드 12부터 스플래시 스크린 API를 공식적으로 제공하여 애니메이션을 주거나, Splash Scr.. 2023. 10. 22.
[iOS] 앱스토어 심사 거절 정리 경험했던 앱스토어 심사 거절 사유를 정리합니다. Guideline 2.1 - Performance - App Completeness 회원가입 기능 중에 카메라 사용하는 부분이 있는데 이 부분에서 앱이 죽는다고 한다. 카메라 사용 정보를 앱 내에 수정하여 재심사 진행. (Android 쪽도 같이 확인하여 수정했다) Guideline 2.3.3 - Performance - Accurate Metadata 스크린샷이 실제 사용하는 앱을 충분히 보여주지 않는다고 합니다. 지원중인 기기에서 사용중인 앱이 정확히 반영되도록 스크린샷을 수정해야 합니다. 애플 가이드에 따르면, 1. 앱의 UI를 반영하지 않는 마케팅, 프로모션 정보는 스크린샷에 적절하지 않습니다. 2. 스크린샷은 앱의 주요 특징과 기능을 반영해야 합니.. 2023. 10. 22.
[Flutter] Missing Push Notification Entitlement 앱 내부에서 푸시 알림 기능을 사용하지 않더라도, 푸시 알림이 허용된 상황을 가정하여 iOS 스위즐링을 처리하고 있는 플러그인이 존재한다. https://github.com/flutter/flutter/issues/9984#issuecomment-1664282440 앱 내에서 사용하지 않더라도, 푸시 알림 설정만 변경해주면 해결할 수 있다. To not receiving this email anymore, you can workaround by enabling publish notification in your App. (You don't have to implement any publish notification features, just simply enable the feature and capab.. 2023. 10. 22.
[메타프루츠] WebRTC 기반 포트폴리오 [작품 이름] 메타프루츠(Metafruits) [작품 바로가기] 웹 사이트: https://metafruits.kro.kr [작품 소개] 메타프루츠는 '메타'와 '프루츠'의 합성어로, 메타버스 환경에서 과일이 되어 채팅이나 다자간 화상회의를 진행할 수 있습니다. [개발 기간] 23.09.27~23.10.17 [주요 기능] 1. 다자간 화상회의 2. 채팅 - 전체 채팅 - 회의방 채팅 3. 캐릭터, 닉네임 변경 4. 장치설정 - 카메라, 마이크 제어 - 장치 선택 - 마이크 테스트 5. 모바일웹(사파리 브라우저) [사용 기술] 언어: javascript, HTML, CSS 서버: node.js(express) 라이브러리: Mediasoup, Phaser, Socket.io, Webpack 프로토콜: HTT.. 2023. 10. 17.
[Portfolio Log] WebRTC 기반 포폴 기록 11 (메타프루츠) 모바일 웹 환경에서 캐릭터를 움직일 수 없어서 조이스틱을 추가했다. https://rexrainbow.github.io/phaser3-rex-notes/docs/site/virtualjoystick/ 또한 getUserMedia가 정상적으로 동작하지 않아서 navigator.getUserMedia = navigator.mediaDevices.getUserMedia || navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; if(navigator.getUserMedia) { naviagtor.mediaDevices... } 이런 형태로 수정했다. iOS 환경에.. 2023. 10. 17.
[Portfolio Log] WebRTC 기반 포폴 기록 10 (메타프루츠) 자잘한 이슈가 왜이리 많이 나오는지. 기어코 주말을 반납하고 말았다. 주말에는 좀 쉬어야 하는데 또 개발만 해버렸구나. 이제 정말 이 프로젝트를 마무리 지으면 좋겠다. 이번에 추가한 작업은 마이크/카메라 상태에 따른 UI 갱신과 트랙 변경 오류이다. replaceTrack을 처리하는 부분에서 약간의 딜레이를 주지 않으면 정상적으로 동작하지 않는 이슈가 있었다. 또한 자신의 트랙을 바꾸는 상황에서 음성 인식 리스너를 날리고 다시 처리해줬다. 스트림을 받는 쪽에서는 바꾼 트랙을 기준으로 음성 인식 처리를 잘하더라. 배경음악을 추가하고, 포탈, 버튼 클릭시 효과음이 나오도록 추가했다. 아마존 프리티어를 활용하여 1GB짜리 램을 가진 EC2에 배포를 해봤다. 생각보다 잘 돌아가더라. Putty 사용법 및 EC2.. 2023. 10. 16.
[Portfolio Log] WebRTC 기반 포폴 기록 9 (메타프루츠) 미디어 수프 멀티 연동 작업을 진행했다. 룸 입장시 영상을 추가하고 퇴장시 영상을 삭제하도록 처리한다. 원래 비디오 트랙만 가져다가 개발하고 있었는데, 나중에 오디오 트랙도 추가하니까 produce 이벤트가 2번 오면서 뷰가 2개씩 생성되는 이슈가 있었다. 중간에 socketId 값을 넘겨서 socket 단위로 뷰를 생성하는 코드를 작성했다. 방 퇴장 시에도 자신이 가진 consumers 정보를 삭제하지 않는 이슈가 있어 수정했다. 앞으로 남은 작업 - 마이크/카메라 상태에 따른 UI 갱신 - 트랙 변경 오류 수정 2023. 10. 14.
[Portfolio Log] WebRTC 기반 포폴 기록 8 (가제: 메타프루츠) 1. 포트폴리오 가제 설정 'meta'와 'fruits'의 합성어인 메타프루츠가 될 것 같다. 2. 웹팩 적용 Mediasoup 설치에서 웹팩이나 browserify를 쓰라는 이야기가 있어서 웹팩을 적용했다. 처음 해보는 거라 서버 파일 실행 안 시키고 클라js 파일로 돌리고 있고... Dom Element 접근 안 되는 이슈가 있기는 했는데 결국 고치긴 했다. (footer에서 index.js 참조) https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event 윈도우의 onload를 사용하는 방법도 있다. 3. 코드 분리 과정 기존 index.js에 모여 있던 Socket 코드, UI 코드를 분리하는 과정을 거쳤다. 이 과정에서 잘 모르고 있던.. 2023. 10. 11.
[Portfolio Log] WebRTC 기반 포폴 기록 7 1. 포탈 동기화 로직 추가 이전에 있었던 장면에서 플레이어를 없애라는 요청을 다른 플레이어에게 보내고 자신은 새로운 정보를 받는다. 그리고 넘어가는 장면에 존재하던 플레이어에게 새로운 유저 정보를 넘겨주면 된다. 기존에 broadcast로 처리하고 있던 부분을 room 개념을 추가하여 작업했다. 2. 이름 변경 및 캐릭터 변경 로그(채팅) 삭제 설계적으로 특이점을 하나 발견했다. 예를 들어 전체 채팅방에 A라는 유저가 캐릭터를 바꿨다는 로그가 계속 뜨는게 맞는건가? 다른 맵에 있는 사람도 그 정보를 받아서 뭔지도 모르는 A라는 유저가 캐릭터를 변경했다는 정보를 받아야 하는가? 다른 사람이 궁금한 정보인가? ㄴㄴ 다른 사람이 알아야 하는 핵심적인 정보인가? ㄴㄴ 다른 맵에 있는 사람이 누군가 캐릭터 설정.. 2023. 10. 8.