본문으로 건너뛰기

2025.04 3주차

4월 13일

  • 앱 스토어 등록

  • 초기에 so-group으로 identifier를 이름지었는데, 추후 sogroup으로 바꾸면서 이름이 중복이라고 메세지 뜸. 그냥 생성된 sogroup identifier로 앱 정보 다 옮기고 등록

  • archive하고 앱 올리니까 warning 뜨긴 하는데 문제는 없는듯..?? 관련 링크

  • 개인정보 관리, 지원 url, 저작권 등 앱스토어 등록하기 위한 요소들 작성

  • Expo에서 EAS를 빌드하지 않고는 개발 환경 분리를 할 수 없음.. 몇시간의 시도 끝에 구조적으로 불가능함을 꺠닫고 포기

  • EAS local build 하려했더니 계속 오류..

    • sudo를 붙이면 apple login permission 없다 뜸
    • 안붙이면 cocoapod 없다 뜸
      • -> ?
  • npx expo prebuild로는 google service info 파일을 여러개 가져서 여러 scheme target을 가질 수 없다ㅠㅠ

4월 18일

  • member id를 통해 멤버 조회 구현.. isLeader, isGuest 같은거 상태 다룬다고 약간 신경썼다

  • notification 보낼때 groups, members를 collection으로 뺐는데 그거 대응 안해줘서 발송이 안되는 문제 해결

  • 알림 App Badge로 관리하는 기능 추가

  • useFocusEffect로 refetch() 수행시 무한 호출 발생해, useFocusOnEffect 훅 작성

  • 대표 그룹 설정 기능 추가

  • 최대 그룹 생성 제한 추가

  • 알림에서 groupName을 가져오도록 수정 + 클릭시 'groupName 그룹으로 전환' 문구와 함께 currentGroup 전환하도록 수정

  • groupDatamap으로 관리하는 로직 작성

const notifications: ClientNotification[] = [];
const groupDataMap = new Map<
ClientGroup['id'],
ClientGroup['groupName']
>();

for (const notificationDoc of querySnapshot.docs) {
const data = notificationDoc.data() as Notification;
if (!data.metadata.groupId) {
notifications.push(
this.convertToClientNotification(notificationDoc.id, data),
);
continue;
}

if (!groupDataMap.has(data.metadata.groupId)) {
const groupRef = doc(database, 'groups', data.metadata.groupId);
const groupDoc = await getDoc(groupRef);
if (groupDoc.exists) {
const groupData = groupDoc.data() as Group;
groupDataMap.set(data.metadata.groupId, groupData.groupName);
}
}

const clientNotificationData = {
...data,
metadata: {
...data.metadata,
groupName: groupDataMap.get(data.metadata.groupId),
},
};

notifications.push(
this.convertToClientNotification(
notificationDoc.id,
clientNotificationData,
),
);
}