project 55

[iOS] Memory Debug Graph 분석해 프로젝트 구조 개선

[iOS] Memory Debug Graph 분석하기 IT 동아리에서 2개월간 작은 서비스를 개발했다 기간이 짧았던 만큼 앱 규모도 작았지만, 그에 비해 메모리를 과다하게 사용하고 있다고 느껴졌다. SwiftUI + Combine을 기반으로 프로젝트를 작업 우선 처음으로 의심해 본 부분은 메모리 릭이 발생하는 것 같다고 생각해서, 메모리 릭을 체크해봤다. 우선 프로파일링을 열어서 Leak을 체크 Leaks에 체크되는 부분은 없었지만 무언가 계속 증가하고 있었다. 그래서 그 다음에 생각되었던 부분은 앱 구조에서 무거운 객체를 여러번 생성하는게 아닐까 싶었다. 실질 개발기간이 약 1개월이었기에 (첫 배포까지는 약 3주) 각 Repository 및 UseCase에서 각 객체를 독립적으로 생성했다. 개발 단계에..

[iOS] Spotlight (SearchAPI)

Spotlight Kuring 1.4.3 버전에 해당 기능을 도입 현재 public 레포지토리로 kuring-v2를 작업하고 있어서, 해당 기능을 v1 레포에서 작업 진행Kuring은 app과 sdk로 이루어져 있는데, 해당 기능은 app 모듈 작업만으로도 가능했음. 목차 - 개발환경 - 작동화면 - kuring에 적용한 코드 설명 - 개발 이슈 정리사항 개발 환경Xcode 15.0iOS 16.0 +SwiftUI 🎉 벌써 프로젝트가 2년이 넘어서, PR이 118개🌟 쿠링 새로운 기능 🌟https://kuring.notion.site/kuring/iOS-eef51c986b7f4320b97424df3f4a5e3c 작동화면 GIF Core Spotlight 중 Search 기능을 사용하기 ..

[Kuring] 1.4.0 release 개발일지

1.4.0 release 개발일지 이번에 1.4.0을 개발하면서 있었던 것들을 정리해두고자 함.해당 버전에서 주로 학과 기능 공지 개발을 담당하였음. 🔨 Xcode 14.2iOS 15.0 + # 구현해야 할 기능 - API - 학과 공지 - 학과 공지 구독 - 학과 리스트 - api v2로 모두 변경 - 화면 - 학과 공지와 관련한 모든 뷰 - 구현 - 학과 리스트 검색 - 구독한 학과 리스트 검증 # 학과 구현 외 버그 개선 작업 - notification 버그 개선 (사일런트 푸시 및 기존 내가 받은 알림이 저장되지 않던 버그) - 학교 url이 변경되어 그에 따른 대응 🏗️ 프로젝트 구조 개선 작업 - Tuist 도입 처음에 개발을 맡게 되었을 때는 얼마나 ..

[iOS] Debug Scheme 분리하기

[iOS] Debug Scheme 분리하기 - Debug Scheme을 분리하기로 한 이유. - 개발단계의 작업물을 iOS 개발자 외에 다른 분들도 사용해야하는 경우가 있는데, 기존 프로젝트와 동일하게 두어서 출시한 앱과 헷갈리는 불편함 존재 - 또한 Debug 앱은 출시한 앱과 달리 다른 버그를 잡기 위한 토큰 값 등이 UI로 노출되어 있으며, 개발 단계에서도 스킴을 수정해 줄 필요 없이 한번 설정해두면 좋겠다 싶었음. 1. 아래와 같은 사진의 상태에서 New Scheme을 클릭 - 아래 사진은 벌써 만들어 둔 상태 2. 타겟을 둔 상태로 이름을 작성 3. Asset으로 이동하여 기존 AppIcon을 복사하여 AppIconDebug를 생성 후 Debug용 이미지를 넣어주기. 4. 아래 사진처럼 Disp..

iOS SPM No Such Module

iOS SPM No Such Module  기존에는 패키지 기반으로 작업하지 않았는데, 최근에 로컬 소스도 Swift Package로 작업하는 예제들을 보아서 이를 공부하고 적용해보고자 함. 에러 스크린샷 패키지에서 개발할 때는 안되었는데 해당 패키지를 다른 영역에서 사용할 때 해당 에러가 발생  오류가 발생한 패키지 코드아래는 오류가 발생한 패키지 코드임// swift-tools-version: 5.6// The swift-tools-version declares the minimum version of Swift required to build this package.import PackageDescriptionlet package = Package( name: "kuring-campus-m..

[iOS] SPM 프로젝트 이름 변경시 오류

SPM 프로젝트 이름 변경시 오류 🚨 에러코드 Build input file cannot be found: '/Users/Jason/Desktop/kuring-campus-map-ios/kuring-campus-map-ios.xcodeproj/kuring_campus_map_ios_Info.plist 🚨에러상황 프로젝트에서 새로운 기능을 추가하고자 했습니다. 해당 기능을 추가하면서, 프로젝트를 따로 관리하고자 했고, 처음에 만든 프로젝트 이름이 마음에 들지 않아서 프로젝트 이름을 변경하고자 했습니다. 변경은 성공했으나 위와 같은 에러가 나타났습니다. - 방법 2가지 1. 경로 변경: 이렇게 해서 해결되면 아주 쉽다,, 근데 안되며 2번으로 2. info.plist 파일 만들어서 넣어주기 그냥 직접 만들어..

Lottie 리소스 문제로 앱이 초기화되는 현상

Lottie 리소스 문제로 앱이 초기화되는 현상 웹 앱이었는데 간단한 동작에서 크래시 발생결론: 로티 리소스 자체의 문제 개발활경Xcode 13.2.1  문제상황1. 특정 상황에서 메모리가 비정상적으로 튐.2. 스크롤을 하다가 앱이 죽거나 앱이 흰 화면이 뜨면서 초기화가 되어버림.  접근법RxSwift 기반으로 되어 있어서 어느 지점에서 메모리릭이 나는게아닐까 접근 Xcode Instruments 시도1. Edit Scheme > Profile에 들어가서 build configuration을 debug로 세팅상단에 Xcode simulator 설정하는거 옆에 위치2. 아래 사진처럼 저 부분을 꾹!! 누르고 있으면 저렇게 뜨는데 저거 Build for Profiling으로 변경 3. 아래와 같은 Instr..

[git] Git-flow 전략과 프로젝트 예시(feat. Kuring)

Git-flow 전략과 프로젝트 예시(feat. Kuring) (포스팅 최초 작성) 2022.06.10(포스팅 수정) 2024.08.29커밋 내역 관리하는 방법 수정   ✅ Kuring에서 사용하는 Git-flow 분석과 Git-flow에 대해서 공부하며, Kuring에서 내가 사용하는 커밋 규칙을 정리하고자 포스팅합니다.  🥕 목차 🥕1. 우아한 형제들 Git-flow 전략에 대해서 알아보기2. Kuring의 Git-flow 전략 분석 (소규모 팀에서의 Git-flow 전략)3. Git-flow 전략을 개인 레포에 적용하고 연습해보기4. git 충돌 해결 방법  ✅ 1. 우아한 형제들 Git-flow 전략에 대해서 알아보기우아한 형제들 기술 블로그를 참고하여 Git-flow 전략에 대해서 공부해 봅..