Skip to content

Commit 678bdc7

Browse files
chanhihinoeyizjonnwonJH713
authored
Main Version 1.0.0 πŸ₯³ (#265)
* chore: 주석 μ‚­μ œ * feat: λ™μ˜μƒ inline μž¬μƒ * feat: webview opaque false * feat : textView ν‚€λ³΄λ“œ νƒ€μž… λ³€κ²½ - AddBookmarkView λ‚΄ nameTextView 의 ν‚€λ³΄λ“œ νƒ€μž…μ„ .defualt 둜 λ³€κ²½ - AddBookmarkView λ‚΄ urlTextView 의 ν‚€λ³΄λ“œ νƒ€μž…μ„ .URL 둜 λ³€κ²½ * refactor : urlTextViewλ‚΄ κΈ°μ‘΄ ν‚€λ³΄λ“œ νƒ€μž… μ‚­μ œ * feat: μ›Ήλ·° λ¦¬ν”„λ ˆμ‹œ 제슀처 μΆ”κ°€ * feat : Add clearButton in nameTextView * feat: λ¦¬ν”„λ ˆμ‹œ 컨트둀 μ»€μŠ€ν…€ * feat: μ„€μ • 진동 on/off μŠ€μœ„μΉ˜ μΆ”κ°€ * feat: 진동 효과 μΆ”κ°€ * feat: μ›Ήλ·° λ‚΄ λ‘œλ”© 좔적 * style: Share Extension UI λ³€κ²½ * fix: μ•± νƒ€κ²Ÿ CFBundleShortVersionString μˆ˜μ • * style: RefreshControl backgroundColor μΆ”κ°€ * feat: 즐겨찾기, 곡유, μ‚­μ œ λΆ€λ“œλŸ¬μš΄ 진동 μΆ”κ°€ * feat: RefreshControl 높이 μ„€μ • 및 진동 효과 * fix: folder error * feat: back gesture in favorite view * design: folder button animation * πŸ”¨ refactor: FavoriteView WebView둜 λ³€κ²½ * build: bundle version λ³€κ²½ * feat: μƒˆ 창으둜 μ—΄κΈ° μ˜΅μ…˜ 링크 λ‚΄λΆ€μ—μ„œ μ—΄κΈ° * feat: empty folder label * style: share extension assets * feat: change share extension view * fix: separte addbookmark function * fix: consider safe area layout * style: font color black * chore: rename * fix: url error * refactor: FolderListCell의 체크마크 config λ³€κ²½ * feat: μƒμœ„ UITabBar 컨트둀러 μ°ΎκΈ° * feat: metadata manager * fix: κΈ°μ‘΄ μ»¨νŠΈλ‘€λŸ¬μ—μ„œ ν•΄κ²° * feat: folder menu in boxList * refactor: chevron κ΅΅κΈ° λ³€κ²½ * refactor: selectedFolderLabel width 쑰쑍 - 'μ„ νƒλœ 폴더가 μ—†μŠ΅λ‹ˆλ‹€' 문ꡬ 잘림 λ°©μ§€ * fix: initial button rotate * fix: SettingItemCell chevron λ²„νŠΌ ν„°μΉ˜ μ•ˆ λ˜λŠ” 문제 ν•΄κ²° * feat: 폴더 λ²„νŠΌ κΎΉ λˆ„λ₯Ό λ•Œ 진동 μΆ”κ°€ * style: μ•±μ˜ μ „λ°˜μ μΈ 폰트 μˆ˜μ • * feat: addbookmarkmanager setup bidings * chore: delete unnecessray lines * chore: delete unused function * fix: addbookmarkviewκ°€ λ– μžˆλŠ” 경우 dismiss λ°©μ§€ * refactor: nameTextView 및 clearButton μ œμ•½ μˆ˜μ • - nameTextView의 data와 clearButton κ²ΉμΉ˜λŠ” 문제 μˆ˜μ • * fix: bookmark move error * feat: folder open scroll action * chore: ν•„μš”μ—†λŠ” 쀄 μ‚­μ œ * fix: url decoding encoding * fix: share extension encoding * fix: url encoding in webviewdelegate * fix: delete incomingData * chore: λΆˆν•„μš”ν•œ 주석 μ‚­μ œ * fix: 이전 μΊμ‹œ μ‚­μ œ * feat: edit action * feat: remove cache * feat: FolderListViewController에 λ°± 제슀처 ν—ˆμš© * fix: bookmark νŽΈμ§‘μ‹œ μ• λ‹ˆλ©”μ΄μ…˜ μˆ˜μ • * feat: clearButton ν„°μΉ˜ μ‹œ nameTextView firstResponder둜 μ„€μ • * fix: empty image view color in systemmode change * feat: cache image * chore: 주석 ν•΄μ œ * feat: cache image * fix: ShareExtensionμ‹œ present λ˜μ–΄ μžˆλŠ” viewκ°€ μžˆλŠ” 경우 버그 μˆ˜μ • - 이미 present된 viewκ°€ μžˆλŠ” 경우 ShareExtensionμ‹œ 뢁마크 좔가화면이 λœ¨μ§€ μ•ŠλŠ” 버그 μˆ˜μ • * feat: μ‚¬μš©μžκ°€ μž…λ ₯ν•œ URL에 https://κ°€ 없을 경우 μžλ™μœΌλ‘œ μΆ”κ°€ν•˜λŠ” κΈ°λŠ₯ κ΅¬ν˜„ - https:// 와 http:// κ°€ λ‘˜ λ‹€ μ—†λŠ” 경우 https:// λ₯Ό μΆ”κ°€ * feat: separate default data * feat: launchscreen startup flow * fix: reset data * fix: version check code * fix: versioning * fix: cell remove animation * feat: 폴더 μΆ”κ°€ μ‹œ μžλ™ 폴더 선택 * feat: ν™ˆν™”λ©΄ μ‹œμž‘ν™”λ©΄μœΌλ‘œ 이름 λ³€κ²½ * style: μ›Ήλ·° ν”„λ‘œκ·Έλ ˆμŠ€λ°” 색상 μˆ˜μ • * build: λΉŒλ“œ νƒ€κ²Ÿ iPhone으둜 λ³€κ²½ * fix: μ›Ή λ·° μ•„λž˜ μ•ˆλ³΄μž„ μˆ˜μ • - μ›Ήλ·° μ œμ•½ μˆ˜μ • * fix: wip * build: add SkeletonView library * feat: skeleton ui * feat: set delegate simply * chore: style * chore: delete files * feat: loading 쀑 skeletonview 적용 * feat: fetch error μ‹œ skeletonView μœ μ§€ * chore: ν•„μš”μ—†λŠ” μ½”λ“œ μˆ˜μ • * feat: errorpage view * feat: errorpage view controller * feat: separate responsibilities error delegate * feat: μ„€μ • νŽ˜μ΄μ§€ μˆ˜μ • * docs: Add README.md file * style: BoxList λ„€λΉ„κ²Œμ΄μ…˜ 타이틀 λ³€κ²½ * docs: README.md μ΄ˆμ•ˆ μž‘μ„± * docs: README.md λ‚΄ gif 및 λ‹€μš΄λ‘œλ“œ 이미지 μΆ”κ°€ * docs: README.md λ‚΄ μ•± μ•„μ΄μ½˜ 배치 μˆ˜μ • * docs: README.md λ‚΄ gif 크기 μˆ˜μ • * docs: 파일 경둜 μˆ˜μ • * feat: register subquery extensionItems public.data * fix: support file, movie, image * feat: add extension item * chore: delete commnets * fix: delete unnecessary line * feat: webview error code * feat: errorview page presentation animation * feat: error page view * style: refresh controller color * fix: http 처리 * fix: 였λ₯˜μ‹œ isFetching false둜 λ³€κ²½ * feat: remove preload * chore: μ˜€νƒ€ μˆ˜μ • * chore: 주석 μ‚­μ œ * fix: refresh control layout * fix: hash in url * docs: μ•± μ†Œκ°œ 사진 μΆ”κ°€ * fix: delete unnecessary line * docs: 사진 λΉ„μœ¨ μ‚­μ œ * docs: update img * docs: Update README.md * docs: Update README.md * docs: Update README.md * feat: μ•± μ†Œκ°œ λ¦¬λ“œλ―Έ μ—°κ²° * feat: error view controller present effect * fix: correct push error page view controller * feat: error logic * feat: error page view * feat: uibutton animate * feat: pannel view back layer * chore: delete comment * fix: errorviewcontroller nil * chore: Projectλ‚΄ destinations μˆ˜μ • * chore: remove needless assets * refactor: backgroundView -> panelView둜 이름 λ³€κ²½ * chore: ν•„μš”μ—†λŠ” 파일 μ‚­μ œ * fix: modalview backgroundColor μˆ˜μ • * style: ErrorPageView λ ˆμ΄μ•„μ›ƒ μˆ˜μ • * fix: μ•„μ΄νŒ¨λ“œ λŒ€μ‘ UIAlertConteollr preferredStyle μˆ˜μ • * fix: delete unnecessary import * docs: gitignore * feat: fastlane * feat: tuist signing * feat: Makefile * feat: add auth ignore * fix: change make gen * build: git action * docs: deploy gitaction * build: gitcation * build: gitcation * build: mise * build: mise * fix: fault letter * fix: ruby * fix: ruby offer * fix: ruby version * fix: tuist version * fix: separate constant * fix: env.ruby_version * fix: secrets key * fix: secrets.Master_KEY * fix: μΆœμ‹œλ₯Ό μœ„ν•œ App Icons * docs: .gitignore μˆ˜μ • * fix: web View μ•ˆμ—μ„œ μƒˆ μ°½ μ΄λ™ν•˜λŠ” 경우 처리 * fix: load ν›„ 적용 * style: 런치 슀크린 이미지 λ³€κ²½ * fix: 비동기 둜직 처리 * chore: ν•„μš”μ—†λŠ” ν•¨μˆ˜ μ‚­μ œ * fix: change displayname for 42Box --------- Co-authored-by: noeyiz <lamoureclatant@gmail.com> Co-authored-by: jonnwon <116494364+jonnwon@users.noreply.github.com> Co-authored-by: JH713 <strider13@snu.ac.kr> Co-authored-by: jonnwon <bssong35@gmail.com>
1 parent fce4b90 commit 678bdc7

176 files changed

Lines changed: 8481 additions & 158 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### πŸ“Œ κ°œμš”
2+
-
3+
4+
### πŸ’» μž‘μ—… λ‚΄μš©
5+
-
6+
7+
### πŸ–ΌοΈ μŠ€ν¬λ¦°μƒ·
8+
|||
9+
|---|---|
10+
|||

β€Ž.github/Release-note.ymlβ€Ž

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Author by chanhihi
2+
# Date 2023.08.09
3+
# name-template: "v$NEXT_MINOR_VERSION 🦊"
4+
# tag-template: "v$NEXT_MINOR_VERSION"
5+
6+
name-template: "v$RESOLVED_VERSION 🦊"
7+
tag-template: "v$RESOLVED_VERSION"
8+
version-resolver:
9+
major:
10+
labels:
11+
- "⚠️ Breaking changes"
12+
minor:
13+
labels:
14+
- "✨ Enhancement"
15+
patch:
16+
labels:
17+
- "βš’ Refactor"
18+
- "🐞 Bug"
19+
default: patch
20+
21+
categories:
22+
- title: "⚠️ Breaking changes"
23+
labels:
24+
- "⚠️ Breaking Change"
25+
- title: "πŸš€ Features"
26+
labels:
27+
- "✨ Enhancement"
28+
- "βš’ Refactor"
29+
- "πŸ› Structure"
30+
- title: "πŸ› Bug Fixes"
31+
labels:
32+
- "🐞 Bug"
33+
- title: "πŸ“š Documentation"
34+
labels:
35+
- "πŸ“„ Documentation"
36+
- title: "🎨 Style"
37+
labels:
38+
- "πŸ’„ UI/UX"
39+
- title: "πŸ— Infrastructure"
40+
labels:
41+
- "🌐 DevOps"
42+
exclude-labels:
43+
- "πŸ’– Question"
44+
- "β˜‚οΈ Umbrella"
45+
46+
change-template: "- $TITLE (#$NUMBER)"
47+
change-title-escapes: '\<*_&'
48+
49+
template: |
50+
## Changes
51+
$CHANGES
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Author by chanhihi
2+
# Date 2024.04.26
3+
4+
name: Deployment
5+
6+
on:
7+
pull_request:
8+
branches:
9+
- main
10+
types:
11+
- closed
12+
13+
jobs:
14+
build:
15+
name: Deploy on macOS latest - Release for iOS
16+
runs-on: macos-latest
17+
env:
18+
XCODE_VERSION: "15.2.0"
19+
SWIFT_VERSION: "5.9.2"
20+
RUBY_VERSION: "2.6.10"
21+
TUIST_VERSION: "3.36.2"
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v3
26+
27+
- name: Set up Ruby 2.6
28+
uses: ruby/setup-ruby@v1
29+
with:
30+
ruby-version: ${{ env.RUBY_VERSION }}
31+
bundler-cache: true
32+
33+
- name: Set Xcode version
34+
run: sudo xcode-select -s '/Applications/Xcode_15.2.0.app/Contents/Developer'
35+
36+
- name: Setup Swift
37+
uses: swift-actions/setup-swift@v1
38+
with:
39+
swift-version: ${{ env.SWIFT_VERSION }}
40+
41+
- name: .env
42+
run: touch .env &&
43+
echo "APP_STORE_CONNECT_API_KEY_KEY_ID=${{ secrets.APP_STORE_CONNECT_API_KEY_KEY_ID }}" >> .env &&
44+
echo "APP_STORE_CONNECT_API_KEY_ISSUER_ID=${{ secrets.APP_STORE_CONNECT_API_KEY_ISSUER_ID }}" >> .env &&
45+
echo "APP_STORE_CONNECT_API_KEY_KEY=${{ secrets.APP_STORE_CONNECT_API_KEY_KEY }}" >> .env
46+
47+
- name: Setting Master Key
48+
run: |
49+
echo "$MASTER_KEY" > Tuist/master.key
50+
env:
51+
MASTER_KEY: ${{secrets.MASTER_KEY}}
52+
53+
- name: Mise
54+
uses: jdx/mise-action@v2
55+
56+
- name: Install Tuist
57+
run: mise install tuist@${{ env.TUIST_VERSION }}
58+
59+
- name: Tuist version
60+
run: mise use -g tuist@${{ env.TUIST_VERSION }}
61+
62+
- name: Install Fastlane
63+
run: brew install fastlane
64+
65+
- name: Tuist clean
66+
run: tuist clean
67+
68+
- name: Tuist fetch
69+
run: tuist fetch
70+
71+
- name: Tuist Signing Decrypt
72+
run: tuist signing decrypt
73+
74+
- name: Set Keychain
75+
run: fastlane set_keychain
76+
env:
77+
KEYCHAIN_NAME: ${{ secrets.KEYCHAIN_NAME }}
78+
KEYCHAIN_PASSWORD: ${{ secrets.KEYCHAIN_PASSWORD }}
79+
80+
- name: Generate Xcode project with Tuist
81+
run: tuist generate
82+
83+
- name: Fastlane run
84+
run: fastlane tf
85+
86+
- name: Tagging
87+
id: tag_version
88+
uses: mathieudutour/github-tag-action@v6.1
89+
with:
90+
github_token: ${{ secrets.CHANHIHI }}
91+
92+
- name: Draft Release
93+
id: draft_release
94+
uses: release-drafter/release-drafter@v5
95+
with:
96+
config-name: Release-note.yml
97+
env:
98+
GITHUB_TOKEN: ${{ secrets.CHANHIHI }}

β€Ž.gitignoreβ€Ž

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@
33
.DS_Store
44
.AppleDouble
55
.LSOverride
6+
.env
7+
8+
# Auth
9+
*.key
10+
*.p8
11+
*.p12
12+
*.cer
613

714
# Icon must end with two
815
Icon
@@ -68,3 +75,5 @@ Derived/
6875

6976
### Tuist managed dependencies ###
7077
Tuist/Dependencies
78+
79+
.mise.toml

β€Ž.gitmodulesβ€Ž

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "iBox/Resources/Version"]
2+
path = iBox/Resources/Version
3+
url = https://github.com/42Box/versioning

β€ŽGemfileβ€Ž

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
source "https://rubygems.org"
2+
3+
gem "dotenv"
4+
gem "fastlane"

β€ŽMakefileβ€Ž

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
gen:
2+
tuist fetch
3+
tuist generate
4+
5+
clean:
6+
tuist clean
7+
8+
fclean: clean
9+
find . -name "*.xcodeproj" -exec rm -rf {} \;
10+
find . -name "*.xcworkspace" -exec rm -rf {} \;
11+
12+
re: fclean gen
13+
14+
tf:
15+
tuist signing decrypt
16+
tuist fetch
17+
tuist generate
18+
19+
fastlane tf

β€ŽProject.swiftβ€Ž

Lines changed: 67 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,24 @@ protocol ProjectFactory {
1414
class iBoxFactory: ProjectFactory {
1515
let projectName: String = "iBox"
1616
let bundleId: String = "com.box42.iBox"
17+
let iosVersion: String = "15.0"
1718

1819
let dependencies: [TargetDependency] = [
20+
.external(name: "SnapKit"),
21+
.external(name: "SwiftSoup"),
22+
.external(name: "SkeletonView"),
23+
.target(name: "iBoxShareExtension")
24+
]
25+
26+
let iBoxShareExtensionDependencies: [TargetDependency] = [
1927
.external(name: "SnapKit")
2028
]
2129

22-
let infoPlist: [String: Plist.Value] = [
30+
private let appInfoPlist: [String: Plist.Value] = [
2331
"ITSAppUsesNonExemptEncryption": false,
32+
"CFBundleDisplayName": "42Box",
2433
"CFBundleName": "iBox",
25-
"CFBundleShortVersionString": "1.2.1",
34+
"CFBundleShortVersionString": "1.0.0",
2635
"CFBundleVersion": "1",
2736
"UILaunchStoryboardName": "LaunchScreen",
2837
"UIApplicationSceneManifest": [
@@ -36,23 +45,72 @@ class iBoxFactory: ProjectFactory {
3645
]
3746
]
3847
],
39-
"UIUserInterfaceStyle": "Light"
48+
"CFBundleURLTypes": [
49+
[
50+
"CFBundleURLName": "com.url.iBox",
51+
"CFBundleURLSchemes": ["iBox"],
52+
"CFBundleTypeRole": "Editor"
53+
]
54+
],
55+
"NSAppTransportSecurity": [
56+
"NSAllowsArbitraryLoadsInWebContent": true
57+
]
4058
]
4159

42-
func generateTarget() -> [ProjectDescription.Target] {[
43-
Target(
60+
private let shareExtensionInfoPlist: [String: Plist.Value] = [
61+
"CFBundleDisplayName": "42Box.Share",
62+
"CFBundleShortVersionString": "1.0.0",
63+
"CFBundleVersion": "1",
64+
"NSExtension": [
65+
"NSExtensionAttributes": [
66+
"NSExtensionActivationRule": [
67+
"NSExtensionActivationSupportsWebPageWithMaxCount": 1,
68+
"NSExtensionActivationSupportsWebURLWithMaxCount": 1,
69+
"SUBQUERY": [
70+
"extensionItems": [
71+
"SUBQUERY": [
72+
"attachments": [
73+
"ANY $attachment.registeredTypeIdentifiers UTI-CONFORMS-TO 'public.data'": "TRUE"
74+
],
75+
"@count": 1
76+
]
77+
],
78+
"@count": 1
79+
]
80+
]
81+
],
82+
"NSExtensionPointIdentifier": "com.apple.share-services",
83+
"NSExtensionPrincipalClass": "$(PRODUCT_MODULE_NAME).CustomShareViewController"
84+
]
85+
]
86+
87+
func generateTarget() -> [ProjectDescription.Target] {
88+
let appTarget = Target(
4489
name: projectName,
4590
destinations: .iOS,
4691
product: .app,
4792
bundleId: bundleId,
48-
deploymentTargets: .iOS("15.0"),
49-
infoPlist: .extendingDefault(with: infoPlist),
93+
deploymentTargets: .iOS(iosVersion),
94+
infoPlist: .extendingDefault(with: appInfoPlist),
5095
sources: ["\(projectName)/Sources/**"],
5196
resources: "\(projectName)/Resources/**",
5297
dependencies: dependencies
5398
)
54-
]}
55-
99+
100+
let shareExtensionTarget = Target(
101+
name: "\(projectName)ShareExtension",
102+
destinations: .iOS,
103+
product: .appExtension,
104+
bundleId: "\(bundleId).ShareExtension",
105+
deploymentTargets: .iOS(iosVersion),
106+
infoPlist: .extendingDefault(with: shareExtensionInfoPlist),
107+
sources: ["ShareExtension/Sources/**"],
108+
resources: ["ShareExtension/Resources/**"],
109+
dependencies: iBoxShareExtensionDependencies
110+
)
111+
112+
return [appTarget, shareExtensionTarget]
113+
}
56114

57115
}
58116

0 commit comments

Comments
Β (0)