일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- IOS앱개발
- mvvm
- 2024회고
- 포트폴리오
- swift 소켓 데이터
- 사이드프로젝트
- swift 바이트 버퍼
- Dependency Injection
- swift 소켓통신
- swift-nio
- ByteBuffer
- 앱개발자
- 의존성 주입
- universal link
- SWIFT
- 클린아키텍쳐
- DeepLink
- SOCKET
- 딥링크
- swift bytebuffer
- deferred deeplink
- RxSwift
- clean architecture
- ios개발
- 유니버셜링크
- 앱출시
- iOS 아키텍쳐
- ios binary data
- swift 바이너리 데이터
- binary data to struct
- Today
- Total
hyunn
[피피] 사이드프로젝트 회고 본문
24년 4월 1일.
사이드프로젝트를 시작한 날짜이다.
기획과 디자인은 내가 진행했다.
우선 기획에 대해 말하기 전에 "피피" 에 대해 먼저 설명하자면,
피피라는 이름은 Private과 Public의 앞글자를 따와서 만들었다.
앱에 대해 설명하자면, 일기와 커뮤니티 게시글 을 작성할 수 있는 앱이다.
Private - 개인적인 일기를 작성할 수 있다.
Public - 공개적인 게시글을 작성하여 커뮤니티에 업로드 할 수 있다.
기획
팀원을 구하기 위해서는 기능명세는 꼭 필요할 것 같아 기능명세를 작성했다.
디자인
디자인은 피그마에 진행했는데, 중요하지 않으니 넘어가겠다. (피그마 툴을 사용할 줄 아는거 뿐이다.. ㅎㅎㅎ)
개발
인원
- iOS - 2명
- 안드로이드 - 2명
- 백엔드 - 2명
소통 및 기록
- 슬랙
협업
- 깃
나에겐 새로운 도전이었던 SwiftUI
SwiftUI를 끄적인적은 있다. 무신사 앱의 메인 화면의 UI를 클론코딩해본게 다이긴 하다.
하지만, 프로젝트 하나를 완성해본 적은 없다.
그런 의미에서 SwiftUI 프로젝트는 내게 새로운 도전이였다.
• 뷰를 그릴때 정말 편한 Modifier
Modifer 덕분에 정말 편하고 빠르게 뷰를 그릴 수 있었다.
UIKit에서는 뷰의 프로퍼티에 접근하는 반면, SwiftUI에서는 Modifier가 View를 반환하기 때문에 체이닝으로 연결해서 코드를 작성할 수 있다.
뷰를 변수에 담고, 변수를 여러번 쓸 필요없이 체이닝으로 바로 연결해서 쓸 수 있는 점이 매우 편했다.
• 새로운 개념들 @State @Published ??
UIKit에는 없던 개념들이 나왔다.
바로 프로퍼티 래퍼(wrapper) 이다.
프로퍼티 래퍼(Property Wrapper)는 Swift 5.1에서 도입된 기능으로, 프로퍼티의 저장 방식을 관리하는 코드를 재사용할 수 있게 해주는 특별한 속성이다.
Property Wrapper 특징
- 구문: '@' 기호로 시작하며, 프로퍼티 선언 앞에 위치한다.
- 캡슐화: 프로퍼티의 접근과 설정 로직을 캡슐화한다.
- 재사용성: 동일한 프로퍼티 관리 로직을 여러 프로퍼티에 쉽게 적용할 수 있다.
- 코드 간소화: 반복적인 보일러플레이트 코드를 줄여준다.
RxSwift와 비슷한 Combine
이번 프로젝트에서는 비동기 통신을 도와주는 Combine 프레임워크를 사용했다.
RxSwift와 Combine은 둘 다 비동기 이벤트 스트림을 다루고 옵저버블/퍼플리셔 패턴을 사용한다는 공통적인 패러다임을 따르기 때문에, RxSwift 프로젝트를 진행해봤던터라 Combine도 금방 할 수 있었다.
하지만, 문법과 네이밍이 비슷하나 차이가 있었기 때문에 구글링하면서 하느라 시간이 좀 걸리긴했다.
다른 iOS 개발자와의 협업
그동안은 iOS파트는 항상 혼자 개발했었다.
그러나 이번에 사이드프로젝트를 진행하면서 다른 iOS개발자와 함께 작업할 수 있었다.
Git에서 각자 피처별로 브렌치를 따서 작업했고, 완료된 작업은 Pull Request를 보내 상대방이 코드를 확인하고 merge해주는 방식으로 협업하였다.
• 좋았던 점
다른 사람의 코드를 보면서 생각의 폭을 넓힐 수 있었다.
또한 서로 해결방안에 대해 의논하면서 더 나은 해결방법으로 코드를 수정할 수 있었다.
뭐 이런저런거 있지만, 일단 다른 사람의 생각을 듣고 볼 수 있다는게 가장 좋았던 것 같다.
그동안도 나는 맨날 혼자 생각하고 혼자 개발한다면 우물 안 개구리가 되지 않을까 하고 생각했었기 때문에 이번 사이드프로젝트에서의 협업 경험이 나는 매우 좋았다.
배포 및 출시
24년 7월 9일.
앱스토어에 출시되었다.
• 세번의 심사 거절
유저 차단을 구현해야된다는 이유와 EULA(최종 사용자 라이센스 계약) 약관이 추가되어야하는 등의 이유로 심사가 거절됬었다.
유저가 직접 게시물을 생성하는 거라 민감한 부분이라서 충족해야될 심사 기준이 많은 것 같았다.
그래도 끝까지 수정하여 심사를 통과하고 앱스토어에 출시할 수 있게 되었다!
끝으로 피피 많관부~
'Diary' 카테고리의 다른 글
2024년 상반기 회고 (0) | 2024.07.09 |
---|