BetterMe λ κ°μΈ λλ κ·Έλ£ΉμΌλ‘ λͺ©νλ₯Ό μ€μ νκ³
λμ₯ν(Sticker Board) νμμΌλ‘ μ§ν μν©μ μκ°ννλ
건κ°ν μ΅κ΄ νμ± μ±μ
λλ€.
βνκ³ μΆμ μΌ, ν΄μΌ νλ μΌ β μ€λλ ν μΉΈ!β
MZ μΈλλ₯Ό μν μΌμ μ±λ¦°μ§ νλ«νΌ
https://youtu.be/fUjvhrMSRxM
κΈ°λ₯
μ€λͺ
νμκ°μ
λ° λ‘κ·ΈμΈ
Firebase Auth μ°λ
λͺ©ν μμ±
κ°μΈ/κ·Έλ£Ή λͺ©ν μ€μ λ° κ΄λ¦¬
μ§ν μν© κΈ°λ‘
λμ₯ μ€ν°μ»€ ν΄λ¦μΌλ‘ λ¬μ±λ₯ μ
λ°μ΄νΈ
κ·Έλ£Ή λͺ©ν
μΉκ΅¬λ€κ³Ό ν¨κ» λͺ©ν 곡μ
μ΄λ―Έμ§ & νλ‘ν κ΄λ¦¬
Firebase Storage κΈ°λ° μ μ₯
μ€μκ° λκΈ°ν
λͺ©ν μ§νλ μλ λ°μ
SNS 곡μ
λμ₯ν μ΄λ―Έμ§ 곡μ κΈ°λ₯
λΆμΌ
λ΄μ©
μΈμ΄
Java
νλ«νΌ
Android (Min SDK 28 / Target SDK 33)
μΈμ¦/Auth
Firebase Authentication
λ°μ΄ν°λ² μ΄μ€
Firebase Realtime Database
νμΌμ μ₯
Firebase Storage
UI
RecyclerView, ViewPager, Fragment, GridView, Material Design
κΈ°ν
Glide, CardView, CircleImageView, Volley
λΉλ
Gradle, Android Studio
π μν€ν
μ² λ° μ£Όμ νλ©΄
νλ©΄
μ€λͺ
StartScreen.java
μ§μ
μ , λ‘κ·ΈμΈ/νμκ°μ
λΆκΈ°
personal/MainActivity.java
κ°μΈ λͺ©ν κ΄λ¦¬ λ©μΈ
Group_main.java
κ·Έλ£Ή λͺ©ν κ΄λ¦¬
custom_p_goal_click.java
λͺ©ν μμΈ
mypage.java
νλ‘ν μ€μ
Fragment/*
μ¬μ¬μ© UI μ»΄ν¬λνΈ
π Firebase λ°μ΄ν° νλ¦
μ¬μ©μ β Firebase Auth β uid λ°κΈ
β
Realtime Database / Storageμ λͺ©ν & μ΄λ―Έμ§ μ μ₯
β
ValueEventListener λ‘ UI μλ κ°±μ
user/{uid}/
personalDialog/{uid}/{goalKey}/
goal_personal/{uid}/{goalKey}/[stamps...]
λ¬Έμ
ν΄κ²°
κ²°κ³Ό
λͺ©νλ§λ€ λμ₯ν ν¬κΈ° λ€λ¦
GridView λμ μμ±
μ μ°ν λμ₯ν UI
Firebase λ°μ΄ν° ꡬ쑰 μ€κ³
uid κΈ°λ° κ³μΈ΅ν
μ νμ μ‘°ν μ±λ₯β
μ΄λ―Έμ§/κΆν μ²λ¦¬
FileProvider λμ
보μ & μμ μ± ν보
π νλ‘μ νΈ κ΅¬μ‘° (μμ½)
app/
ββ src/main/java/com/example/java_sticker/
β ββ StartScreen.java
β ββ Account/Login.java, Signup.java
β ββ personal/MainActivity.java
β ββ Group_main.java
β ββ mypage.java
β ββ Fragment/
β ββ CustomProgress.java
β ββ adapters, model λ±
ββ res/layout, drawable, values...
# νλ‘μ νΈ λλ ν 리 μ΄λ
cd D:/StudioProjects/BetterMe
# Debug λΉλ
./gradlew assembleDebug
# κΈ°κΈ°μ μ€μΉ
./gradlew installDebug
# νμ
Android Studio μ΅μ λ²μ
Firebase μ€μ νμΌ(google-services.json) νμ