Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 Merge to main #64

Merged
merged 82 commits into from
Apr 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
bf690ce
github action 테스트를 위한 테스트코드 수정
eunjooChoi Jan 17, 2024
e16d105
setup deployment target and orientation
eunjooChoi Jan 17, 2024
455a0fb
Update test_on_develop.yml
eunjooChoi Jan 17, 2024
eb8a1b0
Update test_on_develop.yml
eunjooChoi Jan 17, 2024
0d8d303
update UITest, UnitTest deployment target
eunjooChoi Jan 17, 2024
0f47bf1
Using PreviewProvider instead of #Preview
eunjooChoi Jan 17, 2024
4ba31ce
Add CalendarHeaderView, WeekdayView
eunjooChoi Jan 18, 2024
44fecbc
Support Only iPhone
eunjooChoi Jan 18, 2024
e744110
Make CalendarGridView
eunjooChoi Jan 20, 2024
74af33b
버튼을 눌러 월을 이동하도록 함
eunjooChoi Jan 21, 2024
5805213
Update test_on_develop.yml
eunjooChoi Jan 22, 2024
e78f902
캘린더 뷰에서 CalendarViewModel을 사용하도록 변경
eunjooChoi Jan 22, 2024
0d03521
Custom Color 추가
eunjooChoi Jan 23, 2024
fd3fe16
Update test_on_develop.yml
eunjooChoi Jan 27, 2024
6ea0928
Update test_on_develop.yml
eunjooChoi Jan 27, 2024
a71dd74
Update test_on_develop.yml
eunjooChoi Jan 27, 2024
b8614a9
Update test_on_develop.yml
eunjooChoi Jan 29, 2024
547c6b7
github acton의 xcode version을 15.0.1로 변경
eunjooChoi Feb 19, 2024
2041fd8
날짜를 누르면 감정 기록 화면이 뜨도록 MoodRecordView 생성
eunjooChoi Jan 26, 2024
2eff8a1
#Preview로 프리뷰 코드를 사용하도록 수정
eunjooChoi Feb 19, 2024
8145f11
기분 선택에 사용할 이모지 아이콘 추가
eunjooChoi Feb 26, 2024
752ec4b
UITest mesure 코드 제거
eunjooChoi Feb 26, 2024
3645e72
다크모드 컬러셋 변경
eunjooChoi Feb 26, 2024
348c0cb
감정 기록 화면 구현
eunjooChoi Feb 26, 2024
2d9c827
감정 기록 화면 구현 2
eunjooChoi Feb 27, 2024
53fbe21
Set Core Data Stack
eunjooChoi Feb 29, 2024
f2e6c96
CoreDataStack에 save 메서드 추가
eunjooChoi Mar 1, 2024
64f3925
- CoreDataStack 테스트를 위해 inMemory로 지정할 수 있도록 초기화 구조 변경
eunjooChoi Mar 2, 2024
5a9200e
MoodRecordViewModelTest 파일 추가
eunjooChoi Mar 3, 2024
227f052
MoodREcordViewModel fetch, save 로직 추가
eunjooChoi Mar 4, 2024
4d1af08
테스트용
eunjooChoi Mar 4, 2024
a8b75bf
test 실패했을 때 원인을 알 수 있도록 xcresulttool 코드를 github action worksflow 파일에 추가
eunjooChoi Mar 4, 2024
6fb6d29
테스트 실패하는 부분 주석 해제
eunjooChoi Mar 4, 2024
eb4eb99
날짜 저장 형식을 yyyy-MM-dd의 String 형식으로 저장하도록 구조 변경
eunjooChoi Mar 4, 2024
017727f
감정 기록 화면 저장/불러오기 결과를 뷰에 노출
eunjooChoi Mar 5, 2024
50a1f5c
캘린더 화면에 노출할 기분 이모지 리소스 추가
eunjooChoi Mar 6, 2024
308a5ea
달력 하단에 그날의 기분을 표기할 수 있도록 Rectangle 추가
eunjooChoi Mar 6, 2024
a9c36a8
CalendarViewModel에 추가될 CoreData 관련 로직 테스트코드 추가
eunjooChoi Mar 6, 2024
7c947c6
월별 감정 기록을 가져오는 Fetch 메서드와 해당 일에 필요한 MoodRecord를 return하는 mood 메서드 추가
eunjooChoi Mar 6, 2024
96bb9ae
저장된 기분이 있는 경우 캘린더 화면에 기분이 노출되도록 변경
eunjooChoi Mar 7, 2024
8a80df1
notifictaioncenter를 활용해 기분 기록 화면에서 저장버튼을 누르는 경우 캘린더 화면이 업데이트 되도록 수정
eunjooChoi Mar 8, 2024
3ebe164
MoodRecordViewModel 리팩토링
eunjooChoi Mar 9, 2024
6cb4f22
UITest 주석처리
eunjooChoi Mar 9, 2024
da55a85
DayCellViewModel 리팩토링
eunjooChoi Mar 10, 2024
1de9ca4
캘린더 이동 조건 추가
eunjooChoi Mar 11, 2024
86d5c3d
오늘의 날짜보다 미래의 날짜인 경우에는 기분 기록을 할 수 없도록 disabled 처리
eunjooChoi Mar 11, 2024
412df5a
캘린더의 xxxx.xx 텍스트를 선택하면 월을 한 번에 이동할 수 있도록 추가
eunjooChoi Mar 12, 2024
29ae14a
다국어 적용
eunjooChoi Mar 13, 2024
602a8d8
ContentView 프리뷰 크래시 수정
eunjooChoi Mar 13, 2024
2fea960
날짜 선택이 아닌 월 선택으로 Picker 변경
eunjooChoi Mar 13, 2024
82bc049
Year-Month 피커 뷰 생성
eunjooChoi Mar 18, 2024
0f8b67b
감정 기록 화면에서 저장할 때 update가 아닌 새로 저장되고 있던 로직 수정
eunjooChoi Mar 19, 2024
36aa79b
위젯 초기 세팅
eunjooChoi Mar 20, 2024
0a95ca4
systemsmall 사이즈의 위젯 가디자인
eunjooChoi Mar 20, 2024
e85b869
코어데이터에 String으로 저장하던 Timestamp 값을 Date로 변경
eunjooChoi Mar 21, 2024
0266240
위젯 Small 사이즈 로직 구현
eunjooChoi Mar 23, 2024
f888cb3
기분 컬러 재지정
eunjooChoi Mar 23, 2024
1bc29e8
위젯 한글 글씨체 pretendard-black으로 변경
eunjooChoi Mar 25, 2024
c9c4d13
백포 전환시 날짜가 변경된 경우 달력 업데이트
eunjooChoi Mar 26, 2024
c4b35a2
코드 커버리지 옵션 on으로 변경
eunjooChoi Mar 26, 2024
7493790
앱 아이콘 추가
eunjooChoi Mar 26, 2024
b402a33
캘린더 좌우 스와이프 적용
eunjooChoi Mar 28, 2024
6dd9bd3
달력 하단에 기분 통계 추가
eunjooChoi Mar 29, 2024
c770358
매달 마지막 2일의 기록이 누락되는 현상 수정
eunjooChoi Mar 29, 2024
8491607
마음 현황 수정
eunjooChoi Apr 2, 2024
82c8af0
코드 정리
eunjooChoi Apr 2, 2024
aac5baa
감정 기록 화면에 날짜를 추가하고 텍스트 뷰 위쪽 문장 수정
eunjooChoi Apr 2, 2024
0db3fd3
변경 사항이 있는 경우 취소 버튼을 누르면 ConfirmationDialog 노출
eunjooChoi Apr 2, 2024
8e35017
MonthPicker, 마음 현황 디자인 수정
eunjooChoi Apr 2, 2024
e047f93
기록 파일로 내보내기 기능 구현
eunjooChoi Apr 10, 2024
cbc191a
앱 이름 다국어 적용
eunjooChoi Apr 11, 2024
09e2e7e
기타 수정
eunjooChoi Apr 11, 2024
e5fbeaa
Firebase Crashlytics 추가 및 빌드 설정 세팅
eunjooChoi Apr 11, 2024
71f0fc2
Crashlytics Record 추가
eunjooChoi Apr 12, 2024
057cc9c
개인정보 처리방침 추가
eunjooChoi Apr 13, 2024
87f81ee
노션 도메인 링크 수정으로 인해 URL string 변경
eunjooChoi Apr 13, 2024
2ca1e9d
기록이 저장된 상태에서 기록 화면에 진입하는 경우 삭제 버튼 노출
eunjooChoi Apr 14, 2024
13f5ffc
알림 설정 기능 추가
eunjooChoi Apr 15, 2024
31adcbe
디자인 수정
eunjooChoi Apr 16, 2024
9dd51de
캘린더 화면 UI 테스트 추가
eunjooChoi Apr 17, 2024
c64c2f7
UI Test 추가 - 기분 기록
eunjooChoi Apr 17, 2024
9e6a780
설정화면 UITest
eunjooChoi Apr 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 14 additions & 30 deletions .github/workflows/test_on_develop.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: iOS starter workflow
name: Build and Test

on:
push:
Expand All @@ -8,37 +8,21 @@ on:

jobs:
build:
name: Build and Test default scheme using any available iPhone simulator
runs-on: macos-latest
name: Build and Test
runs-on: macos-14

steps:
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '15.0.1'
- name: Checkout
uses: actions/checkout@v3
- name: Set Default Scheme
- name: Build and Test
run: |
scheme_list=$(xcodebuild -list -json | tr -d "\n")
default=$(echo $scheme_list | ruby -e "require 'json'; puts JSON.parse(STDIN.gets)['project']['targets'][0]")
echo $default | cat >default
echo Using default scheme: $default
- name: Build
env:
scheme: ${{ 'default' }}
platform: ${{ 'iOS Simulator' }}
run: |
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
if [ $scheme = default ]; then scheme=$(cat default); fi
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
xcodebuild build-for-testing -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
- name: Test
env:
scheme: ${{ 'default' }}
platform: ${{ 'iOS Simulator' }}
run: |
# xcrun xctrace returns via stderr, not the expected stdout (see https://developer.apple.com/forums/thread/663959)
device=`xcrun xctrace list devices 2>&1 | grep -oE 'iPhone.*?[^\(]+' | head -1 | awk '{$1=$1;print}' | sed -e "s/ Simulator$//"`
if [ $scheme = default ]; then scheme=$(cat default); fi
if [ "`ls -A | grep -i \\.xcworkspace\$`" ]; then filetype_parameter="workspace" && file_to_build="`ls -A | grep -i \\.xcworkspace\$`"; else filetype_parameter="project" && file_to_build="`ls -A | grep -i \\.xcodeproj\$`"; fi
file_to_build=`echo $file_to_build | awk '{$1=$1;print}'`
xcodebuild test-without-building -scheme "$scheme" -"$filetype_parameter" "$file_to_build" -destination "platform=$platform,name=$device"
xcodebuild clean -project PlantingMind/PlantingMind.xcodeproj -scheme PlantingMind -destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.0.1' -resultBundlePath TestResults test
- name: xcresulttool
uses: kishikawakatsumi/xcresulttool@v1.7.1
with:
path: TestResults.xcresult
if: success() || failure()

649 changes: 623 additions & 26 deletions PlantingMind/PlantingMind.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
<true/>
</dict>
</plist>
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"pins" : [
{
"identity" : "abseil-cpp-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/abseil-cpp-binary.git",
"state" : {
"revision" : "748c7837511d0e6a507737353af268484e1745e2",
"version" : "1.2024011601.1"
}
},
{
"identity" : "app-check",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/app-check.git",
"state" : {
"revision" : "c218c2054299b15ae577e818bbba16084d3eabe6",
"version" : "10.18.2"
}
},
{
"identity" : "firebase-ios-sdk",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/firebase-ios-sdk",
"state" : {
"revision" : "42eae77a0af79e9c3f41df04a23c76f05cfdda77",
"version" : "10.24.0"
}
},
{
"identity" : "googleappmeasurement",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleAppMeasurement.git",
"state" : {
"revision" : "51ba746a9d51a4bd0774b68499b0c73ef6e8570d",
"version" : "10.24.0"
}
},
{
"identity" : "googledatatransport",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleDataTransport.git",
"state" : {
"revision" : "a637d318ae7ae246b02d7305121275bc75ed5565",
"version" : "9.4.0"
}
},
{
"identity" : "googleutilities",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/GoogleUtilities.git",
"state" : {
"revision" : "26c898aed8bed13b8a63057ee26500abbbcb8d55",
"version" : "7.13.1"
}
},
{
"identity" : "grpc-binary",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/grpc-binary.git",
"state" : {
"revision" : "e9fad491d0673bdda7063a0341fb6b47a30c5359",
"version" : "1.62.2"
}
},
{
"identity" : "gtm-session-fetcher",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/gtm-session-fetcher.git",
"state" : {
"revision" : "9534039303015a84837090d20fa21cae6e5eadb6",
"version" : "3.3.2"
}
},
{
"identity" : "interop-ios-for-google-sdks",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/interop-ios-for-google-sdks.git",
"state" : {
"revision" : "2d12673670417654f08f5f90fdd62926dc3a2648",
"version" : "100.0.0"
}
},
{
"identity" : "leveldb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/leveldb.git",
"state" : {
"revision" : "43aaef65e0c665daadf848761d560e446d350d3d",
"version" : "1.22.4"
}
},
{
"identity" : "nanopb",
"kind" : "remoteSourceControl",
"location" : "https://github.com/firebase/nanopb.git",
"state" : {
"revision" : "b7e1104502eca3a213b46303391ca4d3bc8ddec1",
"version" : "2.30910.0"
}
},
{
"identity" : "promises",
"kind" : "remoteSourceControl",
"location" : "https://github.com/google/promises.git",
"state" : {
"revision" : "540318ecedd63d883069ae7f1ed811a2df00b6ac",
"version" : "2.4.0"
}
},
{
"identity" : "swift-protobuf",
"kind" : "remoteSourceControl",
"location" : "https://github.com/apple/swift-protobuf.git",
"state" : {
"revision" : "9f0c76544701845ad98716f3f6a774a892152bcb",
"version" : "1.26.0"
}
}
],
"version" : 2
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
version = "1.7">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<TestPlans>
<TestPlanReference
reference = "container:PlantingMind.xctestplan"
default = "YES">
</TestPlanReference>
</TestPlans>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1500"
wasCreatedForAppExtension = "YES"
version = "2.0">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B63CA9A2BA9CB4600943DED"
BuildableName = "PlantingWidgetExtension.appex"
BlueprintName = "PlantingWidgetExtension"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"
shouldAutocreateTestPlan = "YES">
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = ""
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
launchStyle = "0"
askForAppToLaunch = "Yes"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES"
launchAutomaticallySubstyle = "2">
<RemoteRunnable
runnableDebuggingMode = "2"
BundleIdentifier = "com.apple.springboard">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B63CA9A2BA9CB4600943DED"
BuildableName = "PlantingWidgetExtension.appex"
BlueprintName = "PlantingWidgetExtension"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</RemoteRunnable>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</MacroExpansion>
<EnvironmentVariables>
<EnvironmentVariable
key = "_XCWidgetKind"
value = ""
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetDefaultView"
value = "timeline"
isEnabled = "YES">
</EnvironmentVariable>
<EnvironmentVariable
key = "_XCWidgetFamily"
value = "systemMedium"
isEnabled = "YES">
</EnvironmentVariable>
</EnvironmentVariables>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES"
askForAppToLaunch = "Yes"
launchAutomaticallySubstyle = "2">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "7B11F8232B4549DF00346A41"
BuildableName = "PlantingMind.app"
BlueprintName = "PlantingMind"
ReferencedContainer = "container:PlantingMind.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>
Loading
Loading