Skip to content

Commit

Permalink
Merge pull request #531 from TeamSparker/release-1.0.0
Browse files Browse the repository at this point in the history
Release 1.0.0
  • Loading branch information
yjooooo authored May 11, 2022
2 parents 4e251db + 254728a commit dd11bd6
Show file tree
Hide file tree
Showing 866 changed files with 26,226 additions and 52 deletions.
16 changes: 16 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
name: Feature request
about: 구현하려는 부분을 작성해주세요
title: ''
labels: ''
assignees: ''

---

## 💻 화면 이름

## 🎤기능 설명

## 필요 태스크
- [ ] Task1
- [ ] Task2
9 changes: 9 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@

## ✒️관련 이슈번호
- Closed #123
## 💻화면 이름
#123 관련 화면이름
## 완료 태스크
- Task1
- Task2

7 changes: 5 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ captures/

# Google Services (e.g. APIs or Firebase)
# google-services.json
app/google-services.json

# Android Patch
gen-external-apklibs
Expand Down Expand Up @@ -95,7 +96,6 @@ obj/
.idea/gradle.xml
.idea/jarRepositories.xml
.idea/navEditor.xml

# OS-specific files
.DS_Store
.DS_Store?
Expand Down Expand Up @@ -142,4 +142,7 @@ fabric.properties

!/gradle/wrapper/gradle-wrapper.jar

# End of https://www.toptal.com/developers/gitignore/api/androidstudio
### KaKao Auth Key
app/src/main/res/values/kakao_auth.xml

# End of https://www.toptal.com/developers/gitignore/api/androidstudio
36 changes: 36 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Spark-Android
![banner](https://user-images.githubusercontent.com/54737136/150546992-b745fed0-f151-4842-9524-7ce36cda1ab4.png)

안드는🗿🔪퍄퍅..퍄퍅,,,퍅...파...스파크🎇


## ⚡️프로젝트 소개 : ⭐️SPARK⭐️
1️⃣ `기존`끝없이 반복되는 66일의 굴레 가능성→ `디벨롭`‘66일 동안 한 팀당 주어지는 총 세 번의 기회’

2️⃣ `기존`'칭찬하기'와 '스파크 보내기' → `디벨롭`'스파크 보내기'로 통합

3️⃣ 타이머 인증 : 사진인증은 디폴트로 두고, 방을 만드는 사람이 인증 방식을 선택할 수 있도록!

4️⃣ 기존 와프보다 디테일해진 습관 등록 과정

5️⃣ 대기방 : 친구들이 모두 모일 때까지 기다리는 도중에도 습관 인증 가능


## ⚡️팀원 소개
| 이창환 | 조재훈 | 이호재 | 손연주 |
|:-------:|:-------:|:-------:|:-------:|
|<img src="https://user-images.githubusercontent.com/91423342/148880108-08dddb1c-a862-4e1d-b0fd-4a33d4a4c2e8.jpeg" width="200" height="200"/> | <img src="https://user-images.githubusercontent.com/91423342/148880154-7848c470-824d-4198-aece-4940ad808ba8.png" width="200" height="200"/> | <img src="https://user-images.githubusercontent.com/91423342/148880221-86ea677f-d272-464c-9b67-90ae31620f3e.jpeg" width="200" height="200"/> | <img src="https://user-images.githubusercontent.com/91423342/148880265-18fd3045-96e7-4984-9497-39c971295a7a.png" width="200" height="200"/> |
| 홈, 방생성 역할 담당 | 습관방 역할 담당 | 보관함 역할 담당 | 온보딩 , 로그인 , 피드 역할 담당|

## ⚡️팀 협업 방식
### 🔥Branch 전략
[Spark 브랜치 전략 Wiki](https://github.com/TeamSparker/Spark-Android/wiki/Branch-%EC%A0%84%EB%9E%B5)
### 🔥Coding Convention
[Spark Coding Convention Wiki](https://github.com/TeamSparker/Spark-Android/wiki/Coding-Convention)
### 🔥Github Convention
[Spark Github Convention Wiki](https://github.com/TeamSparker/Spark-Android/wiki/GitHub-Convention)
### 🔥Package Convention
[Spark Package Convention Wiki](https://github.com/TeamSparker/Spark-Android/wiki/Package-Convention)
### 🔥기술 스택
[Spark 기술 스택 Wiki](https://github.com/TeamSparker/Spark-Android/wiki/%EA%B8%B0%EC%88%A0-%EC%8A%A4%ED%83%9D)

88 changes: 85 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -1,24 +1,36 @@
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'dagger.hilt.android.plugin'
id 'com.google.gms.google-services'
id 'androidx.navigation.safeargs.kotlin'
id 'kotlin-parcelize'
}

android {
compileSdk 31

defaultConfig {
applicationId "com.spark.android"
applicationId "com.teamsparker.android"
minSdk 26
targetSdk 31
versionCode 1
versionName "1.0"
versionName "1.0.0"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
debug {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
debuggable false
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
Expand All @@ -29,6 +41,11 @@ android {
kotlinOptions {
jvmTarget = '1.8'
}

buildFeatures {
viewBinding true
dataBinding true
}
}

dependencies {
Expand All @@ -37,7 +54,72 @@ dependencies {
implementation 'androidx.appcompat:appcompat:1.4.0'
implementation 'com.google.android.material:material:1.4.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.2'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.security:security-crypto-ktx:1.1.0-alpha03'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

//glide
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'

//Retrofit2
implementation "com.squareup.retrofit2:retrofit:2.9.0"

//gson
implementation "com.google.code.gson:gson:2.8.9"

//gson converter
implementation "com.squareup.retrofit2:converter-gson:2.9.0"

//okhttp3
implementation 'com.squareup.okhttp3:okhttp:4.9.1'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'

// ViewModel(by viewModels 사용용도)
implementation "androidx.fragment:fragment-ktx:1.4.0"
implementation 'androidx.activity:activity-ktx:1.4.0'
// ViewModel coroutine 스코프를 위한거
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.1.0"

//coroutine
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.1"
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.1'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.4.0'

//navigation compose
implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5'
implementation 'androidx.navigation:navigation-ui-ktx:2.3.5'

//Hilt
implementation "com.google.dagger:hilt-android:2.38.1"
kapt "com.google.dagger:hilt-android-compiler:2.38.1"
kapt 'androidx.hilt:hilt-compiler:1.0.0'

// Firebase
implementation platform('com.google.firebase:firebase-bom:28.4.2')
implementation 'com.google.firebase:firebase-messaging-ktx'
implementation 'com.google.firebase:firebase-analytics-ktx'

// KaoKao Login
implementation "com.kakao.sdk:v2-user:2.8.4"

//lottie
implementation "com.airbnb.android:lottie:4.2.2"

// Paging
implementation 'androidx.paging:paging-runtime-ktx:3.1.1'

// Lifecycle-KTX
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.4.1'

// viewpager indicator
implementation 'me.relex:circleindicator:2.1.6'

// SwipeRefreshLayout
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'

// Timber
implementation 'com.jakewharton.timber:timber:5.0.1'
}
8 changes: 7 additions & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,10 @@

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#-renamesourcefileattribute SourceFile

# Keep data for network connection.
-keep class com.kakao.sdk.**.model.* { <fields>; }
-keep class * extends com.google.gson.TypeAdapter
-keep class com.teamsparker.android.data.remote.entity.request.** { *; }
-keep class com.teamsparker.android.data.remote.entity.response.** { *; }
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.spark.android
package com.teamsparker.android

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
Expand Down
124 changes: 118 additions & 6 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,23 +1,135 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.spark.android">
package="com.teamsparker.android">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="28" />

<uses-feature
android:name="android.hardware.camera2"
android:required="false" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:name="com.teamsparker.android.SparkApplication"
android:allowBackup="false"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="false"
android:fullBackupOnly="false"
android:icon="@mipmap/ic_app_logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:roundIcon="@mipmap/ic_app_logo_round"
android:supportsRtl="true"
android:theme="@style/Theme.SparkAndroid">
<activity
android:name=".MainActivity"
android:exported="true">
android:name="com.teamsparker.android.ui.habit.HabitSendSparkActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/Transparent"
android:windowSoftInputMode="adjustResize" />
<activity
android:name="com.teamsparker.android.ui.feedreport.FeedReportActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.alarmcenter.AlarmCenterActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.onboarding.OnBoardingActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.storage.photo.StoragePhotoMainPickActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.mypage.MyPageActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.share.InstaActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.waitingroom.WaitingRoomActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.certify.CertifyActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.timer.TimerStartActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.habit.HabitGoalManageActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.joincode.JoinCodeActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.makeroom.MakeRoomActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.storage.photo.StoragePhotoCollectionActivity"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.habit.HabitActivity"
android:configChanges="orientation"
android:exported="true"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing" />
<activity
android:name="com.teamsparker.android.ui.auth.AuthActivity"
android:configChanges="orientation"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.teamsparker.android.ui.intro.IntroActivity"
android:exported="true"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.teamsparker.android.ui.main.MainActivity"
android:exported="true"
android:screenOrientation="portrait" />
<activity
android:name="com.kakao.sdk.auth.AuthCodeHandlerActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

<!-- Redirect URI: "kakao{NATIVE_APP_KEY}://oauth" -->
<data
android:host="oauth"
android:scheme="@string/kakao_redirect_scheme" />
</intent-filter>
</activity>

<service
android:name="com.teamsparker.android.SparkMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
</application>

</manifest>
Loading

0 comments on commit dd11bd6

Please sign in to comment.