Si Jong Tech Blog
close
프로필 배경
프로필 로고

Si Jong Tech Blog

  • 분류 전체보기 (254)
    • ◽️ Programming (254)
      • T I L (93)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
[SwiftUI] @ObservedObject와 @StateObject의 차이점

[SwiftUI] @ObservedObject와 @StateObject의 차이점

SwiftUI에서 @ObservedObject와 @StateObject는 데이터 흐름을 관리하는 중요한 속성 래퍼이다. 각각의 개념 예시 그리고 차이점에 대해서 알아보자. @ObservedObject먼저 @ObservedObject는 외부에서 생성되고 관리되는 관찰 가능한 객체를 뷰에 연결하는데 사용된다. 이 객체는 ObservedObject 프로토콜을 준수해야 하며, @Published 속성이 변경될 때 즉 객체가 변경될 때 마다 뷰를 자동으로 업데이트 하도록 한다.class UserViewModel: ObservableObject { @Published var username: String = "" @Published var isLoggedIn: Bool = false}struct UserView..

  • format_list_bulleted ◽️ Programming/SwiftUI
  • · 2024. 7. 3.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (12) - 2.0 버전 업데이트 진행(UI 수정 및 디테일 보완, 오류 수정)

[Project 일지] 여행 기록 앱 만들기 (12) - 2.0 버전 업데이트 진행(UI 수정 및 디테일 보완, 오류 수정)

1차 앱 승인 이후 DetailView의 UI를 변경하고 이전에 놓쳤던 오류 및 구현을 모두 마무리하고 2차 업데이트 심사를 넣는 것을 마무리로 최종 프로젝트가 거의 마무리 되었다.이후 유저 이벤트를 진행할 예정이며 이 내용을 바탕으로 부족한 점이나 수정해야할 점을 업데이트 해 나갈 예정이다. UI 수정한 내용은 이전 포스팅에서 다뤘으니 이번에는 추가적으로 수정했던 오류 및 구현에 대해서 기록하고자 한다. 지출 페이지 내 삭제 이후 데이터 적용지출 페이지 내 지출 데이터를 삭제 한 이후 데이터가 firebase 내 정상적으로 삭제되는 점을 확인했으나, 삭제 이후 다시 지출 페이지를 확인하는 페이지로 가면 이전에 한번 데이터를 불러온 값이 유지되어 삭제된 데이터가 사라지지 않는 문제가 있었다. 원인을 파악..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 7. 1.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (11) - Mate 업데이트 구현

[Project 일지] 여행 기록 앱 만들기 (11) - Mate 업데이트 구현

업데이트를 진행하면서 이전 앱에서도 구현되지 않았던 메이트 구현 중 메이트 목록을 수정할 수 있도록 구현하였다. 이전에는 메이트 목록을 수정하려면 전체 목록이 사라지고 처음부터 다시 입력을 해야했지만, 업데이트를 진행하면서 해당 내용도 같이 구현했으나, 그 과정이 순탄치는 않아서.. 기록으로 남겨두려고 한다.. 먼저 메이트를 추가해서 DetailInputVC에 mateCollectionView에 들어가도록 하는 내용은 미리 구현이 되어있었다. 여기서 다시 메이트 추가를 누르면 지금 가지고있던 메이트컬렉션 뷰를 메이트VC로 보내 이전에 선택되어있는 값은 그대로 선택되어있도록 구현하려고 한다. 새로운 PinLog 일 때 메이트 값 저장func collectionView(_ collectionView: UIC..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 6. 29.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (10) - 앱 승인 이후 Update

[Project 일지] 여행 기록 앱 만들기 (10) - 앱 승인 이후 Update

앱이 승인된 이후 우리 팀은 피드백 및 팀 회의를 통해 아쉬운 UI 및 우리의 방향성을 조금 더 부각 시켜줄 수 있도록 UI를 변경하기로 결정하였다. 가장 중요한 부분인 Detail , DetailInput 쪽의 UI를 대대적으로 업데이트를 할 예정이다.이 내용은 기존의 구성했던 UI 인데, 스크롤을 통해 맵과 사진을 변경해 컨텐츠가 보여지고 있으나 이부분이 이용자가 사용이 불편하고 사진과 맵 모두 이용자에게 보여줄 수 있는 방법을 선택할 수 있도록 수정했다.UI만 변경하는 것이라 별로 어렵지 않게 진행할 수 있다고 생각했지만 구현 로직이 변경되면서 많은 부분이 수정되어야 했다. 다음 글에서는 구현 로직 중 수정에 애먹고 뒤늦게 깨달아 해결 했던 내용을 기록하고자 한다.

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 6. 27.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (9) - 3차 reject 수정 후 합격!

[Project 일지] 여행 기록 앱 만들기 (9) - 3차 reject 수정 후 합격!

오늘은 3번째 리젝 사유를 알아보고 이 내용을 어떻게 수정했는지, 그리고 다시 심사 진행 후 합격한 사실까지 정리해보려고 한다 🙂3차 reject먼저 3번째 리젝 사유는 로그인을 해야 앱에 들어갈 수 있으며, 로그인을 하지 않아도 비회원 유저가 앱을 사용할 수 있도록 수정하라는 내용의 리젝트 사유였다..(이건 미리 알려줄 수 있는 사유인데.. 이전거 다 수정하니까 뒤늦게 알려주네..)그럼 이제 기존에 로그인을 해야 접속 가능했던 앱을 로그인 없이 핀로그를 볼 수 있도록 하고 그 이후에 특정 기능을 사용할 때 로그인 안내를 하는 방향으로 수정을 진행하였다. 비로그인 상태 설정먼저 루트 뷰 컨트롤러를 변경하여 로그인 시점이 아닌 WanderBoard 로 바로 들어올 수 있도록 구현하였다.상세 페이지는 볼 ..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 6. 25.
  • textsms
객체지향 프로그래밍과 SOLID원칙

객체지향 프로그래밍과 SOLID원칙

SOLID는 객체 지향 프로그래밍과 설계에서 중요한 다섯가지 원칙을 나타내는 약어이다. 각 글자는 특정한 설계 원칙을 의미하고, 이 원칙들을 통해 더 유지보수가 쉽고, 확장 가능하며, 이해하기 쉬운 코드를 작성할 수 있도록 도와준다. Single Responsibilty Principle단일 책임 원칙으로써 클래스는 하나의 목적을 가져야하며, 클래스를 변경하는 이유는 단 하나의 이유여야 한다.SRP를 위반하는 예와 준수하는 예를 한번 살펴보자SRP를 위반하는 예class UserManager { func createUser(name: String, age: Int) { // 유저 생성 로직 } func sendWelcomeEmail(email: String) { ..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 6. 24.
  • textsms
iOS 권한 팝업 Localization 하기

iOS 권한 팝업 Localization 하기

프로젝트 앱 심사 중 두번째 reject 사유를 살펴보면 이렇다.파악을 해보면 현재 영어권에서 로그인 했을때 안내 문구가 영어로 나오지 않고 한글로 나오고 있기 떄문에 해당 내용을 로컬에 맞게 영어면 영어로 , 한글이면 한글로 나올 수 있도록 수정해야한다. 각각 로컬에 맞춰 영어 혹은 한글로 권한 설정의 내용을 맞출 수 있도록 값을 넣어보자! InfoPlist 파일 넣기먼저 InfoPlist 라는 명칭을 그대로 사용해서 String파일을 만들어 줘야한다.String파일은 파일 탭에서 새로운 파일을 만들어 살짝 내려보면 사진과 같이 해당 파일을 선택할 수 있다.이 파일을 선택하면 이렇게 파일이 생성되는데 생성되는 파일 오른쪽에 Localization을 선택하면 영어 혹은 한글을 선택할 수 있다. 우리는 영..

  • format_list_bulleted ◽️ Programming/UIKit
  • · 2024. 6. 23.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (8) - 앱 배포 및 reject 사유 수정

[Project 일지] 여행 기록 앱 만들기 (8) - 앱 배포 및 reject 사유 수정

앱 심사 과정에서 생긴 리젝의 결과를 한번 확인해보려고 한다. 먼저 첫번째로 디자인 관련 문제와 두번째로 권한 요청 시 설명에 대한 내용이다! 첫번째 reject - Design처음 받은 리젝 사유 중 디자인쪽의 문제는 크게 HIG를 해치는 컴포넌트의 구성이 아닌 마이페이지로 넘어갔을때 다음화면으로 가지지 않는 오류가 발생해서 생긴 리젝사유였다. ㅠㅠ 이 부분을 해결하기 위해 페이징으로 넘어가고 있는 메인페이지의 상태 중 플로팅 버튼을 띄우는 메서드의 위치가 로그아웃 등 특정 알럿이 뜬 이후에도 사라지지 않도록 구현하는 것으로 수정하였다 🙂case 4: let alert = UIAlertController(title: "로그아웃 하시겠습니까?", message: "로그인 창으로 이동합니다", pref..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 6. 21.
  • textsms
iOS TestFlight에 대해서 알아보자

iOS TestFlight에 대해서 알아보자

드디어 우리가 만든 앱을 출시하기 전에 TestFlight를 사용해 생각지 못한 에러를 찾아보려고 한다 🙂 먼저 TestFlight가 왜 필요한지에 대해 설명하고 테스터를 등록하고 권한을 부여하는 과정과 초대 받은 테스터의 사용 방법을 살펴보자 TestFlight란?먼저 TestFlight란 애플이 제공하는 iOS 앱 테스트 플랫폼으로 개발자들이 앱을 배포하기 전에 베타 테스트를 수행할 수 있도록 도와준다.TestFlight를 통해 개발자는 테스트 초대장을 발송하고 테스터들이 앱을 설치하고 피드백을 제공할 수 있다. TestFlight의 주요 기능베타 테스트 관리 : TestFlight는 베타 테스트를 쉽게 관리할 수 있는 도구를 제공한다, 개발자는 앱의 새로운 빌드를 업로드하고, 테스트 초대장을 발송..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 6. 19.
  • textsms
[Project 일지] 여행 기록 앱 만들기 (7) - 차단 목록 만들기 및 데이터 차단

[Project 일지] 여행 기록 앱 만들기 (7) - 차단 목록 만들기 및 데이터 차단

오늘은 소셜 내 유저가 올린 게시물을 차단할 수 있도록 하는 기능을 구현하려고 한다. 이 기능은 애플 정책에 따라 특정 게시물을 보지 않거나 숨길 수 있어야 하기 때문에 꼭 들어가야 하는 기능 구현이다.  차단 된 사용자 목록 가져오기파이어 베이스에 저장되어있는 차단된 목록을 불러와 차단 내용을 가질 수 있도록 메서드를 구현해준다. func fetchBlockedUsers() { Task { do { let users = try await AuthenticationManager.shared.getBlockedUsersSummaries() self.blockedUsers = users self.filteredUsers = user..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 6. 17.
  • textsms
  • navigate_before
  • 1
  • ···
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • ···
  • 26
  • navigate_next
프로필 로고

Si Jong Tech Blog

전체 카테고리
  • 분류 전체보기 (254)
    • ◽️ Programming (254)
      • T I L (93)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
최근 글
인기 글
최근 댓글
태그
  • #티스토리챌린지
  • #오블완
  • #uikit
  • #tableView
  • #project
  • #MVC
  • #IOS
  • #TIL
  • #알고리즘
  • #swift
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바