- λ³Έ νλ‘μ νΈλ
MVVM
μν€ν μ²μLayer
μν€ν μ²λ‘ ꡬμ±λμ΄μμ΅λλ€. REST-Ful API
νΈμΆ κ²°κ³Όλ 곡ν΅μ μΌλ‘ sealed ν΄λμ€λ₯Ό νμ©νState
ν¨ν΄ λ°UseCase
ν¨ν΄μ μ¬μ©ν©λλ€.
- π§Ή μ¬μ©νμ§ μλ importλ μ§μμ£ΌμΈμ!
- Ctrl + Alt + O λλ₯΄λ©΄ μλ μ 리λ©λλ€.
- π λ³μμ λ€μ΄λ°μ λͺ ννκ² μ μ΄μ£ΌμΈμ!
- π λ³ΈμΈμ΄ μμ±ν ν΄λμ€ μμ μ£Όμ(doc)μ λ¬μμ£ΌμΈμ!
- π λ°μ΄ν° λ°μΈλ© μ¬μ©μ μ§μν΄μ£ΌμΈμ.
- π« xmlμ idλ
camelCase
λ‘ μμ±ν΄μ£ΌμΈμ!- View(A&F) κ³μΈ΅μμ
ViewBinding
μΌλ‘ μ¬μ©ν λsnake_case
λ³΄λ€ μ½λ μΆμ μ΄ λͺλ°°λ μ’μ΅λλ€.
- View(A&F) κ³μΈ΅μμ
- πͺ data classμ νλ‘νΌν°λ
camelCase
λ‘ μμ±ν΄μ£ΌμΈμ!- μλ²μμ
snake_case
λ‘ λ³΄λΌκ²½μ° μλμ κ°μ΄ ν΄κ²°ν΄μ£ΌμΈμ.-
data class MainPageData( @SerializedName("center_banner") val eventBanner: List<EventBannerData> )
-
- μλ²μμ
- π A&F(μ‘ν°λΉν°/νλκ·Έλ¨ΌνΈ)μμ
LiveData
λ°StateFlow
λ₯Ό κ΄μ°°νλ ν¨μλobserve{PublisherName}()
,collect{PublisherName}()
μ κ°μ νμμΌλ‘ μμ±ν΄μ£ΌμΈμ.observeViewModel()
: λ·° λͺ¨λΈμLiveData
λ₯Ό κ΄μ°°collectViewModel()
: λ·° λͺ¨λΈμStateFlow
λ₯Ό μμ§collectEvent()
: μ΄λ²€νΈ λ²μ€μStateFlow
μμ§collectLiveManager()
: λ°©μ‘λ°© 맀λμ μStateFlow
μμ§- μ κ·Ό μ νμλ νμλ‘ μμ±ν΄μ£ΌμΈμ.(public μ μν΄μ€λ λ©λλ€.)
- πͺ μ± λ²μ μ
Release
.Major
.Minor
λ‘ μκ·λͺ¨ μ λ°μ΄νΈλMinor
, μ€-λκ·λͺ¨ μ λ°μ΄νΈλMajor
λ²μ μ κ·Έ μΈ,Release
λ λ§μΌμ λ°λΌ λ³κ²½λ μ μμ΅λλ€.PlayStore
1.x.xOneStore
2.x.x
- β³ μ¬μ¬μ μΆμ νμ μ΅μ
origin & develop
λΈλμΉμ λλ€. - π₯³ μ¬μ¬κ° μλ£λμλ, μ±μ μΆμν νμ
origin & master
λ²μ μ νΈμν΄μ£ΌμΈμ.