포스트

HealthKit (14)

Code Comments

DocC를 활용하여 우리가 만든 프로젝트에 우리가 Docs를 만드는 과정을 진행한다.

Cmd + Option + / 를 사용하면

CleanShot 2024-12-18 at 05 52 05

이렇게 함수에 대해 설명을 할 수 있는 주석이 생성이 된다.

사용 예시: 리턴함수

아래와 같이 fetchStepCount 함수에 대해 작성을 해보았다.

이때 Description을 작성할때는 아래와 같이 ///를 하나더 두고 작성한다.

1
2
3
4
5
/// Fetch last 28days of step count from HealthKit
///
/// This is where you would describe the method further.
/// - Returns: Array of ``HealthMetric``
func fetchStepCount() async throws -> [HealthMetric] {}

작성후 아래 사진처럼 Documentation을 빌드한다

CleanShot 2024-12-18 at 05 54 56

우리가 적은게 있는 fetchStepCount로 가보면

CleanShot 2024-12-18 at 05 56 00

이렇게 우리가 적은 내용이 프로젝트 Docs에 적히는걸 확인할 수 있다.

또한 이제는 우리가 fetchStepCount 함수를 호출을 할때,

CleanShot 2024-12-18 at 05 59 22

이렇게 호출하는 함수에 대해 설명이 나오게 된다.

비교용으로 아직 설명을 적지않은 fetchWeights의 경우는?

CleanShot 2024-12-18 at 06 00 22

위와같이 주석을 작성하지 않은 경우, 함수 선언부만 간략히 표시된다

사용 예시: 파라미터가 있는 리턴함수

Parameter가 필요한 함수의 경우 Cmd + Opt + /를 눌러 주석을 활성화 하면

CleanShot 2024-12-18 at 06 20 24

이렇게 파라미터에 대한 설명도 적을 수 있다.

1
2
3
4
5
/// Write weight value to HealthKit. Requires HealthKit write permission
/// - Parameters:
///   - date: Date for weight value
///   - value: Weight value in pounds. Uses pounds as a Double for .bodyMass conversions
func addWeightData(for date: Date, value: Double) async throws {

CleanShot 2024-12-18 at 06 35 55

이렇게 파라미터에 대한 설명도 작성이 되었다.

사용 예시: Description 및 부가설명

Note나, Throws 같은 태그도 보여주면 문서화 활용도를 더 높일 수 있다.

1
2
3
4
5
6
7
8
9
10
11
/// Writes the weight value to HealthKit. Requires HealthKit write permission.
///
/// This asynchronous function records a weight value into HealthKit.
/// Use `try await` when calling this function to handle its asynchronous behavior.
///
/// - Parameters:
///   - date: The date associated with the weight value.
///   - value: The weight value in pounds. Represented as a `Double` for `.bodyMass` conversions.
/// - Throws: `HealthKitError` if the write operation fails.
/// - Note: Ensure HealthKit write permission is granted before calling this method.
func addWeightData(for date: Date, value: Double) async throws {

CleanShot 2024-12-18 at 06 44 47

Description 과 함께 함수 사용시 반드시 알아둬야할 Note가 포함되어있어 사용자에게 확실한 설명을 제시.


이 과정을 통해 프로젝트를 체계적으로 문서화하고, 나만의 Docs를 만들어보는 경험은 협업 시 가치를 높이고 코드의 이해를 한층 더 강화할 수 있을 것이다.


Bakery 앱을 활용한 앱 아이콘 만들기.

AppStore 링크를 통해 다운 받을 수 있다.

워낙 간단해서 설명은 패스…

simulator_screenshot_82743B18-649F-4676-BB92-3AD80F7105C7

이렇게 만들어 보았다.

Pull Request, Commit Message Tip

Clean Git history

Semantic Commit Messages 특히 이 사이트를 통해 Commit Message를 효과적으로 작성할 수 있다.

App version 관리

CleanShot 2024-12-18 at 06 57 59

CleanShot 2024-12-18 at 06 58 11

이렇게 1.0.0 으로 버전을 만들고 출시를 할때 깃을 통해 버전 관리를 할 수 있는데,

마지막으로 머지를 한 Pull Reqeust의 Commit hash를 통해 터미널에서 태그 추가가 가능하다.

CleanShot 2024-12-18 at 07 12 00

현재 내 경우엔 ebc1827을 통해 merge를 했다.

터미널에서 하는 방법은 아래와 같다.

1
2
3
git tag <버전> <커밋해시>

git push origin <버전>

실제로 터미널에서 해보면

1
2
3
git tag 1.0.0 ebc1827

git push origin 1.0.0

CleanShot 2024-12-18 at 07 14 16

레퍼지토리를 가보면 tag가 올라가있다.

CleanShot 2024-12-18 at 07 14 43

들어가서 확인해보면, 현재 버전에 대한 소스코드 파일을 다운 받을 수 있다.

CleanShot 2024-12-18 at 07 15 45

이를 통해 버전관리가 가능하며, 업데이트한 버전에 문제가있어 이전 버전을 통해 해결을 할 수 밖에 없는 상황이 생긴다면, 이 방법을 통해서 대처가 가능해진다.

Create a new release

위에 사진에 우측 박스아래에 Create a new release를 통해서 우리가 배포하는 버전에 대해 Description 작성이 가능하다.

작성하기전 작성할 버전에 맞는 태그를 추가해주고. (지금은 1.0.0 밖에 없지만, 이후 업데이트를 계속 하면 태그가 많아짐)

CleanShot 2024-12-18 at 07 20 27

위와 같이 작성했다.

publish를 하게 되면

CleanShot 2024-12-18 at 07 21 17

이렇게 새롭게 Release에 대해 나오고, 클릭하여 확인해보면

CleanShot 2024-12-18 at 07 21 54

이렇게 우리가 적은 설명과 함께 소스코드가 같이 첨부되어있는걸 확인할 수 있다.

Tip Release Note를 작성할때는 주요 기능, 버그 수정, 업데이트된 코드 요약 같은 정보를 담아주면, 훨씬 더 좋은 note가 될것이다.

훌륭한 포트폴리오 GitHub README를 작성하는 방법.

강의에선 4가지 요소를 강조했다.

  1. Visual: 시각적 요소를 활용
  2. Concise: 간결하게 작성
  3. Short: 짧고 명확하게 표현
  4. Easy to Skim: 한눈에 쉽게 파악할 수 있도록 구성

샘플로 작성한 Readme에서는 크게 5가지 섹션으로 나누었다.

  1. 앱 소개
    • 2줄로 간결하게 작성
  2. 사용한 기술
    • 가장 중요한 부분
    • 만약 면접을 본다면 사용한 기술에 대해서 질문을 받을 가능성은 100%
  3. 시연 영상
    • 스크린샷 보다 훨씬 더 좋다.
  4. 프로젝트를 진행하며 느낀 자랑스러운 점
    • 개발 과정에서 가장 특별하게 느낀 점이나 자랑스러운 기능에 대해 구체적으로 설명
    • 기술적 도전이나 차별화된 구현 방법을 구체적인 코드와 함께 설명하면 신뢰도 상승
  5. 프로젝트 완성도
    • 프로젝트에서 구현한 주요 기능과 완성도를 한눈에 파악할 수 있도록 나열한다.
    • 면접이나 코드 리뷰에서 중요한 포인트가 될 수 있으므로, 에러 처리, 접근성, 테스트 등 다양한 측면을 포함.

이번 포스트는 코드 외적인 부분에 대해서 다뤄봤는데, 코드보다 유익한 정보가 더 많았다.

이걸 잘 습득하고 적용을 한다면, 좋은 프로젝트, Readme를 만들 수 있을것이다.


Github: Step-Tracker Repository

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.