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

Composable 재사용 #329

Merged
merged 34 commits into from
Apr 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
add82bd
release 1.0.1
hegleB Jan 24, 2024
a3e0b7d
chore(#136): JDK 빌드
hegleB Jan 24, 2024
41e102a
chore(#316): keystore, properties 생성
hegleB Jan 24, 2024
aae8e46
chore(#316): google-services.json 생성
hegleB Jan 24, 2024
c31145c
chore(#316): aab 빌드 및 업로드
hegleB Jan 24, 2024
5ca9e61
chore(#316): aab 다운로드
hegleB Jan 24, 2024
229c919
chore(#316): service_account.json 생성
hegleB Jan 24, 2024
9a3f01c
chore(#316): 릴리즈 버전 추출
hegleB Jan 24, 2024
a56131d
chore(#316): google play store 배포
hegleB Jan 24, 2024
4055da8
chore(#316): google-services 설정
hegleB Jan 24, 2024
b3f6763
chore(#316): signingConfigs 설정
hegleB Jan 24, 2024
c8d67a7
release 1.0.1
hegleB Jan 24, 2024
fdc214f
chore(#316): keystore 파일명 변경
hegleB Jan 24, 2024
06192d5
release 1.0.1
hegleB Jan 24, 2024
26206fd
refactor: 프로필 UI 상태 관리를 위한 파라미터 타입 변경
hegleB Feb 17, 2024
7df9dd4
refactor: ProfileContent 파라미터 수정
hegleB Feb 17, 2024
593eae4
refactor: Scaffold에 topBar 추가
hegleB Feb 17, 2024
f1c10ab
refactor: Compose의 ProfileContent 메서드를 통한 프로필 관련 기능 관리
hegleB Feb 17, 2024
df92c53
feat(#327): Preview 컴포저블 함수 추가
hegleB Mar 9, 2024
b9029e7
feat(#327): Custom Button 컴포저블 추가
hegleB Mar 9, 2024
3977784
feat(#327): BackIconButton 컴포저블 추가
hegleB Mar 9, 2024
ffcadfc
feat(#327): MenuIconButton 컴포저블 추가
hegleB Mar 9, 2024
1da17c0
feat(#327): CircleAddIconButton 컴포저블 추가
hegleB Mar 9, 2024
1720595
feat(#327): CopyIconButton 컴포저블 추가
hegleB Mar 9, 2024
e1c03d8
feat(#327): RemoveconButton 컴포저블 추가
hegleB Mar 9, 2024
fe9d9c0
feat(#327): RefreshconButton 컴포저블 추가
hegleB Mar 9, 2024
ab02c2b
feat(#327): EditIconButton 컴포저블 추가
hegleB Mar 9, 2024
ab8880c
feat(#327): FoldIconButton 컴포저블 추가
hegleB Mar 9, 2024
caf0f60
feat(#327): RestoreIconButton 컴포저블 추가
hegleB Mar 9, 2024
ae45f7b
feat(#327): RecycleBinRestoreFloatingButton 컴포저블 추가
hegleB Mar 9, 2024
8730f29
feat(#327): RefreshFloatingButton 컴포저블 추가
hegleB Mar 9, 2024
f98259f
refactor(#327): BackIconButton Composable로 수정
hegleB Mar 9, 2024
8ed324e
refactor(#327): EditIconButton Composable로 수정
hegleB Mar 9, 2024
83839ec
refactor(#327): MSButton Composable로 수정
hegleB Mar 9, 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
77 changes: 77 additions & 0 deletions .github/workflows/AOS-distribute.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: AOS-distribute
on:
push:
branches:
- distribute

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: 'corretto'
java-version: 17

- name: Create Properties File
env:
RELEASE_KEYSTORE: ${{ secrets.KEY_STORE_BASE_64 }}
KEYSTORE_PROPERTIES: ${{ secrets.KEYSTORE_PROPERTIES }}
LOCAL_PROPERTIES: ${{ secrets.LOCAL_PROPERTIES }}
run: |
echo "$RELEASE_KEYSTORE" | base64 -d > AOS/app/release.keystore
echo "$KEYSTORE_PROPERTIES" > AOS/keystore.properties
echo "$LOCAL_PROPERTIES" > AOS/local.properties

- name: Create google-services.json
run: echo '${{ secrets.GOOGLE_SERVICES_JSON }}' > AOS/app/google-services.json

- name: Build Release AAB
run: ./gradlew bundleRelease
working-directory: ./AOS

- name: Upload AAB
uses: actions/upload-artifact@v2
with:
name: app-release.aab
path: AOS/app/build/outputs/bundle/release/app-release.aab

deploy:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download AAB
uses: actions/download-artifact@v2
with:
name: app-release.aab
path: AOS/app/build/outputs/bundle/release/

- name: Create service_account.json
run: echo '${{ secrets.GOOGLE_PLAY_STORE_SERVICE_ACCOUT }}' > service_account.json

- name: Extract Release Version
run: echo "##[set-output name=version;]$(echo '${{ github.event.head_commit.message }}' | egrep -o '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}')"
id: extract_version_name

- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.extract_version_name.outputs.version }}
release_name: ${{ steps.extract_version_name.outputs.version }}
files: |
AOS/app/build/outputs/bundle/release/app-release.aab

- name: Deploy to Google Play Store
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service_account.json
packageName: boostcamp.and07.mindsync
releaseName: ${{ steps.extract_version_name.outputs.version }}
releaseFiles: AOS/app/build/outputs/bundle/release/app-release.aab
track: production
whatsNewDirectory: AOS/whatsNewDirectory
20 changes: 17 additions & 3 deletions AOS/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import java.io.FileInputStream
import java.util.Properties

plugins {
Expand All @@ -7,7 +8,11 @@ plugins {
kotlin("kapt")
id("com.google.dagger.hilt.android")
id("kotlinx-serialization")
id("com.google.gms.google-services")
}
val keystorePropertiesFile = rootProject.file("keystore.properties")
val keystoreProperties = Properties()
keystoreProperties.load(FileInputStream(keystorePropertiesFile))

android {
namespace = "boostcamp.and07.mindsync"
Expand All @@ -25,22 +30,31 @@ android {
applicationId = "boostcamp.and07.mindsync"
minSdk = 26
targetSdk = 34
versionCode = 1
versionName = "1.0"
versionCode = 8
versionName = "1.0.1"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("String", "BASE_URL", "$url")
buildConfigField("String", "GOOGLE_SERVER_CLIENT_ID", "$googleServerClientId")
buildConfigField("String", "KAKAO_CLIENT_ID", "$kakaoClientId")
manifestPlaceholders["KAKAO_CLIENT_ID"] = removeQuotationKakaoClientId
}
signingConfigs {
create("release") {
keyAlias = keystoreProperties["keyAlias"] as String
keyPassword = keystoreProperties["keyPassword"] as String
storeFile = file(keystoreProperties["storeFile"] as String)
storePassword = keystoreProperties["storePassword"] as String
}
}
buildTypes {
release {
getByName("release") {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
)
signingConfig = signingConfigs.getByName("release")
}
}
buildFeatures {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package boostcamp.and07.mindsync.ui.components

import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.tooling.preview.Preview
import boostcamp.and07.mindsync.ui.theme.Gray3

@Composable
fun MSButton(
modifier: Modifier = Modifier,
text: String = "",
onClick: () -> Unit,
textStyle: TextStyle = TextStyle.Default,
backgroundColor: Color = MaterialTheme.colorScheme.primary,
fontColor: Color = Color.Unspecified,
shape: Shape = CircleShape,
disableColor: Color = Gray3,
isEnabled: Boolean = false,
) {
Button(
modifier = modifier,
onClick = onClick,
shape = shape,
colors = ButtonDefaults.buttonColors(
containerColor = backgroundColor,
disabledContainerColor = disableColor,
),
enabled = isEnabled,
) {
Text(
text = text,
style = textStyle,
color = fontColor,
)
}
}

@Preview
@Composable
fun ButtonPreview() = MSPreview {
MSButton(
onClick = { },
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package boostcamp.and07.mindsync.ui.components

import androidx.compose.material3.FloatingActionButton
import androidx.compose.material3.Icon
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import boostcamp.and07.mindsync.R

@Composable
fun RecycleBinRestoreFloatingButton(
modifier: Modifier = Modifier,
onClick: () -> Unit,
backgroundColor: Color = Color(0xFFD4BFF9),
) {
FloatingActionButton(
modifier = modifier,
onClick = onClick,
containerColor = backgroundColor,
) {
Icon(
painter = painterResource(id = R.drawable.ic_restore_board),
contentDescription = null,
)
}
}

@Composable
fun RefreshFloatingButton(
modifier: Modifier = Modifier,
onClick: () -> Unit,
backgroundColor: Color = Color(0xFFD4BFF9),
) {
FloatingActionButton(
modifier = modifier,
onClick = onClick,
containerColor = backgroundColor,
) {
Icon(
painter = painterResource(id = R.drawable.ic_restore_board),
contentDescription = null,
)
}
}
Loading
Loading