diff --git a/Makefile b/Makefile index 1fe9497e..d4a8ba4a 100644 --- a/Makefile +++ b/Makefile @@ -47,3 +47,6 @@ download-env: download-googleinfo: $(call download_file, Projects/App/Resources, $(token),GoogleService-Info.plist) + $(call download_file, Projects/App/Resources, $(token),GoogleService-Info-debugging.plist) + + diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift index e1f6b9d2..2e295064 100644 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Environment.swift @@ -14,7 +14,7 @@ public extension String { static let organizationName = "Pepsi-Club" static let teamId = "T4W7695R5C" /// 앱스토어에 게시할 때마다 증가해줘야 하는 버전 - static let marketingVersion: Self = "1.2.2" + static let marketingVersion: Self = "1.2.3" /// 개발자가 내부적으로 확인하기 위한 용도 (날짜를 사용하기도 함 - 2023.12.8.1 ) static var buildVersion: Self { let date = Date() diff --git a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift index 35e501d7..9a9b68ec 100644 --- a/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift +++ b/Plugins/EnvironmentPlugin/ProjectDescriptionHelpers/Scheme.swift @@ -21,7 +21,15 @@ public extension Scheme { codeCoverageTargets: ["\(name)"] ) ), - runAction: .runAction(configuration: .debug), + runAction: .runAction( + configuration: .debug, + arguments: .init(launchArguments: [ + .init( + name: "-FIRDebugEnabled", + isEnabled: true + ) + ]) + ), archiveAction: .archiveAction(configuration: .release) ) } diff --git a/Projects/App/Project.swift b/Projects/App/Project.swift index 0311330e..05b77b5f 100644 --- a/Projects/App/Project.swift +++ b/Projects/App/Project.swift @@ -38,6 +38,6 @@ let project = Project.makeProject( dependencies: [ .mainFeature, .data, - .package(product: "FirebaseMessaging"), + .package(product: "FirebaseMessaging") ] ) diff --git a/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard b/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard index 7644d8c6..4d494d3e 100644 --- a/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard +++ b/Projects/App/Resources/Base.lproj/LaunchScreen.storyboard @@ -1,9 +1,9 @@ - + - + @@ -17,7 +17,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/Projects/App/Sources/AppDelegate+Firebase.swift b/Projects/App/Sources/AppDelegate+Firebase.swift index 1b2e7358..7709b2c4 100644 --- a/Projects/App/Sources/AppDelegate+Firebase.swift +++ b/Projects/App/Sources/AppDelegate+Firebase.swift @@ -13,12 +13,18 @@ import FirebaseMessaging extension AppDelegate { func configureFirebase(application: UIApplication) { + var googleInfoName: String + #if DEBUG + googleInfoName = "GoogleService-Info-debugging" + #else + googleInfoName = "GoogleService-Info" + #endif guard let filePath = Bundle.main.path( - forResource: "GoogleService-Info", + forResource: googleInfoName, ofType: "plist" ), - let options = FirebaseOptions(contentsOfFile: filePath) - else { return } + let options = FirebaseOptions(contentsOfFile: filePath) + else { return } FirebaseApp.configure(options: options) application.registerForRemoteNotifications() } diff --git a/Projects/App/Sources/AppDelegate.swift b/Projects/App/Sources/AppDelegate.swift index 145a5e09..6046c017 100644 --- a/Projects/App/Sources/AppDelegate.swift +++ b/Projects/App/Sources/AppDelegate.swift @@ -22,6 +22,7 @@ final class AppDelegate: UIResponder, UIApplicationDelegate { registerDependencies() configureNotification(application: application) configureFirebase(application: application) + return true } @@ -44,3 +45,4 @@ final class AppDelegate: UIResponder, UIApplicationDelegate { ) { } } + diff --git a/Projects/Core/Sources/Extension/UIColor+.swift b/Projects/Core/Sources/Extension/UIColor+.swift index 96170c0b..82061f29 100644 --- a/Projects/Core/Sources/Extension/UIColor+.swift +++ b/Projects/Core/Sources/Extension/UIColor+.swift @@ -37,9 +37,9 @@ public extension UIColor { return UIColor { traitCollection in if traitCollection.userInterfaceStyle == .dark { return UIColor( - red: 20/255, - green: 20/255, - blue: 23/255, + red: 25/255, + green: 25/255, + blue: 25/255, alpha: 1.0 ) } else { diff --git a/Projects/Data/Project.swift b/Projects/Data/Project.swift index cae02022..f746975a 100644 --- a/Projects/Data/Project.swift +++ b/Projects/Data/Project.swift @@ -7,7 +7,8 @@ let project = Project.makeProject( moduleType: .dynamicFramework, dependencies: [ .networkService, - .coreDataService + .coreDataService, + .package(product: "FirebaseAnalytics"), ], coreDataModel: [ .init( diff --git a/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift b/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift index 9848c3e1..6da0b77b 100644 --- a/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift +++ b/Projects/Data/Sources/Repository/DefaultBusStopArrivalInfoRepository.swift @@ -12,6 +12,7 @@ import Domain import NetworkService import RxSwift +import FirebaseAnalytics public final class DefaultBusStopArrivalInfoRepository: NSObject, BusStopArrivalInfoRepository { @@ -23,10 +24,10 @@ public final class DefaultBusStopArrivalInfoRepository: self.networkService = networkService } - public func fetchArrivalList( - busStopId: String - ) -> Observable { - networkService.request( + public func fetchArrivalList(busStopId: String) -> + Observable { + Analytics.logEvent("fetchArrivalEvent", parameters: nil) + return networkService.request( endPoint: BusStopArrivalInfoEndPoint(arsId: busStopId) ) .decode( diff --git a/Projects/DesignSystem/Resources/Assets.xcassets/cellColor.colorset/Contents.json b/Projects/DesignSystem/Resources/Assets.xcassets/cellColor.colorset/Contents.json index 458f8087..9f2d70b0 100644 --- a/Projects/DesignSystem/Resources/Assets.xcassets/cellColor.colorset/Contents.json +++ b/Projects/DesignSystem/Resources/Assets.xcassets/cellColor.colorset/Contents.json @@ -40,7 +40,7 @@ "color" : { "color-space" : "srgb", "components" : { - "alpha" : "0.980", + "alpha" : "1.000", "blue" : "0x12", "green" : "0x0F", "red" : "0x0F" diff --git a/Projects/Feature/HomeFeature/Sources/View/EmptyFavoritesView.swift b/Projects/Feature/HomeFeature/Sources/View/EmptyFavoritesView.swift index 7c7be82f..3b0a5833 100644 --- a/Projects/Feature/HomeFeature/Sources/View/EmptyFavoritesView.swift +++ b/Projects/Feature/HomeFeature/Sources/View/EmptyFavoritesView.swift @@ -10,6 +10,8 @@ import UIKit import Lottie import DesignSystem +import Lottie + final class EmptyFavoritesView: UIView { private let listLottieView: LottieAnimationView = { let imgView = LottieAnimationView( diff --git a/Projects/Feature/NearMapFeature/Sources/View/BusStopInformationView.swift b/Projects/Feature/NearMapFeature/Sources/View/BusStopInformationView.swift index a99e4a97..02795694 100644 --- a/Projects/Feature/NearMapFeature/Sources/View/BusStopInformationView.swift +++ b/Projects/Feature/NearMapFeature/Sources/View/BusStopInformationView.swift @@ -122,6 +122,10 @@ public final class BusStopInformationView: UIView { equalTo: leadingAnchor, constant: 15 ), + busStopNameLabel.trailingAnchor.constraint( + equalTo: trailingAnchor, + constant: -15 + ), busStopDescription.leadingAnchor.constraint( equalTo: busStopNameLabel.leadingAnchor diff --git a/Projects/Feature/SearchFeature/Sources/View/SearchTextFieldView.swift b/Projects/Feature/SearchFeature/Sources/View/SearchTextFieldView.swift index 621743c5..f093fd2d 100644 --- a/Projects/Feature/SearchFeature/Sources/View/SearchTextFieldView.swift +++ b/Projects/Feature/SearchFeature/Sources/View/SearchTextFieldView.swift @@ -27,7 +27,7 @@ public final class SearchTextFieldView: UITextField { private func configureUI() { self.backgroundColor = .adaptiveWhite self.font = - DesignSystemFontFamily.NanumSquareNeoOTF.regular.font(size: 15) + DesignSystemFontFamily.NanumSquareNeoOTF.regular.font(size: 14) self.layer.cornerRadius = 15 self.clipsToBounds = true self.contentVerticalAlignment = .center diff --git a/README.md b/README.md index 371e6cd0..2f0ec235 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# 버스어디 v 1.2.1 +# 버스어디 v 1.2.3 + ![제목을-입력해주세요_-001 (1)](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/65907001/a97bb417-52b2-454b-9f79-7fb715b4d96c) ## 프로젝트 소개 @@ -16,22 +17,20 @@ - 특정 버스정류장의 버스에 정기알람을 설정하여 원하는 시간에 받을 알람을 설정할 수 있습니다. - ex 출퇴근 버스) 월~금 오전 7시 30분, 은곡마을 741번 버스 - **`설정`** - - 앱 버전과 이용약관 확인 가능합니다. + - 앱 버전과 이용약관 확인 및 문의하기가 가능합니다. ### 📱구동화면 | 즐겨찾기 | 검색 | 버스정류장 | 가까운 정류장 지도 | | --- | --- | --- | --- | -|![Search](https://github.com/Pepsi-Club/BusComing/raw/dev/Document/ko/iPhone_15_Pro-1_Favorites.png)|![Search](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/65907001/db977cc0-42b9-48c5-b088-0802c3cf979e)|![BusStop](https://github.com/Pepsi-Club/BusComing/raw/dev/Document/ko/iPhone_15_Pro-4_BusStop.png)|![NearMap](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/65907001/781ca995-b5c6-4e5d-8556-d293359e3a7f)| +|![Search](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/60245d90-b78e-4ea8-bc6b-48418e0a5d8f)|![Search](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/9f89c5c4-11f4-42e5-95de-c71ba1e07316)|![BusStop](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/551aa349-20f7-4183-b8f0-0d159cc02e66)|![NearMap](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/d5516f98-a3e3-4ee1-9e8d-731a71cd94e9)| | 즐겨찾기X | 최근검색어 | 정규알람 추가 | 정규알람 | | --- | --- | --- | --- | -| ![NonFavorites](https://github.com/Pepsi-Club/BusComing/raw/dev/Document/ko/iPhone_15_Pro-0_EmptyFavorites.png)|![RecentSearch](https://github.com/Pepsi-Club/BusComing/raw/dev/Document/ko/iPhone_15_Pro-2_RecentSearch.png)|![AddRegularAlarm](https://github.com/Pepsi-Club/BusComing/raw/dev/Document/ko/iPhone_15_Pro-6_RegularAlarm.png)|![Simulator Screenshot - iPhone 15 Pro - 2024-03-20 at 23 50 04](https://github.com/Pepsi-Club/BusComing/assets/133845468/6c930784-7de1-4940-a94a-3c65c17ca4fc) | +| ![NonFavorites](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/938b5193-7f95-4050-afea-75a11ca7351c)|![RecentSearch](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/31e680db-c9a6-4485-bd75-c1a6f086c992)|![AddRegularAlarm](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/0fcb6763-3790-4545-8bfb-f4ff4839d92d)|![Simulator Screenshot - iPhone 15 Pro - 2024-03-20 at 23 50 04](https://github.com/Pepsi-Club/WhereMyBus-iOS/assets/91649269/214d4a6c-c079-4abd-827b-fe7432fb41d0)|
- - ### 💻 개발 환경, 기술스택, 아키텍처 #### 개발환경 @@ -40,7 +39,8 @@ - 개발 환경 : UIKit, Swift 5.0 - iOS 최소 버전 : 16.0 - iPhone SE ~ iPhone 15 ProMax 호환 - - 다크모드 미지원 + - 다크모드 지원 + - 디자인 툴 : Figma - 협업 도구 : Github, Team Notion, Discord ``` @@ -89,6 +89,7 @@ - Fastlane - FirebaseMessaging - iOS - KakaoMapSDK_SPM +- Lottie - 데이터: [서울특별시_정류소정보조회 서비스](https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000303) diff --git a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift index 340e491a..641d556a 100644 --- a/Tuist/ProjectDescriptionHelpers/Project+Templates.swift +++ b/Tuist/ProjectDescriptionHelpers/Project+Templates.swift @@ -9,10 +9,6 @@ import ProjectDescription import EnvironmentPlugin import DependencyPlugin -import ProjectDescription -import EnvironmentPlugin -import DependencyPlugin - extension Project { // MARK: Refact public static func makeProject( diff --git a/Tuist/Templates/framework/project.stencil b/Tuist/Templates/framework/project.stencil index 06fba0fc..8287b7fd 100644 --- a/Tuist/Templates/framework/project.stencil +++ b/Tuist/Templates/framework/project.stencil @@ -1,5 +1,6 @@ import ProjectDescription import ProjectDescriptionHelpers +import DependencyPlugin let project = Project.makeProject( name: "{{ name }}",