Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
빠른 안드로이드 개발에 대한 프로세스 알아보기
Search
Harada Ha
August 04, 2019
Programming
0
660
빠른 안드로이드 개발에 대한 프로세스 알아보기
강남언니의 안드로이드 앱 개발이 어떻게 진행되는지에 대한 프로세스를 이야기 합니다. 또한 다양한 요구사항에 빠르게 대응할 수 있는 개발 노하우를 알려드립니다.
Harada Ha
August 04, 2019
Tweet
Share
More Decks by Harada Ha
See All by Harada Ha
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
340
Privacy Changes in Android Q
hadonghyun
1
430
지금까지 이런 간단한 Logic 처리는 없었다 이것은 Rx 인가, UI 이벤트인가? 네, RxBinding입니다.
hadonghyun
1
220
Other Decks in Programming
See All in Programming
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
1.1k
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
460
Grafana:建立系統全知視角的捷徑
blueswen
0
280
AtCoder Conference 2025
shindannin
0
920
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
470
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
650
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
160
Graviton と Nitro と私
maroon1st
0
160
TestingOsaka6_Ozono
o3
0
270
それ、本当に安全? ファイルアップロードで見落としがちなセキュリティリスクと対策
penpeen
7
2k
生成AI時代を勝ち抜くエンジニア組織マネジメント
coconala_engineer
0
39k
Featured
See All Featured
Designing for Performance
lara
610
70k
Facilitating Awesome Meetings
lara
57
6.7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
170
Paper Plane
katiecoart
PRO
0
45k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
GraphQLとの向き合い方2022年版
quramy
50
14k
KATA
mclloyd
PRO
33
15k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
51k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
The Spectacular Lies of Maps
axbom
PRO
1
420
AI Search: Where Are We & What Can We Do About It?
aleyda
0
6.8k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
190
Transcript
ࡅܲউ٘۽٘ѐߊীೠ ۽ࣁझঌইࠁӝ ൧݂ಕಌ]ೞزഅ
ೞزഅ]ъթפAndroid Developer #RxJava #Kotlin
য়טܞࠅղਊ ࢲ࠺झࣗѐ যڃߑधਵ۽ഈসೞחо ӝദࠗఠܾܻૉөযڌѱ೯غחо নೠਃҳࢎ೦ীࡅܰѱೞחߑߨ
None
None
None
None
None
None
যڃߑधਵ۽ഈসೞחо
ழޭפா࣌
সޖীҙ۲ػࣗాਸਗഝೞѱ೯ೞӝਤೞৈ ਗठۑਸਊ Slack
Slackഝਊо٘
None
None
None
None
ޙࢲܻ
ৈ۞ٜ࠙ޙࢲܻܳয٣ীࢲ೯ೞदաਃ
җѢীחࣗӏݽ ݺ݅ ӝٸޙীTrelloܳࢎਊ
None
Trelloױ ޙࢲղਊ݆ইࣻ۾ӝয۰ਕҊҙܻоੜউؽ
݆ޙࢲܳബਯਵ۽ҙܻೞӝਤೞৈ ஶܖझܳਊೣ Confluence
Confluenceഝਊद
Confluenceױ ѐߊ৻ࢎۈٜܖӝয۰
Notionਸഝਊ೧ࠁ
Notionഝਊद
Notion
None
None
None
None
۞ழ࠳оӝٸޙী ࠺ѐߊٜ࠙بࣚऔѱޙࢲসਸ೯ೡࣻ
ܻߓ (
ࠛਃೠܻࣗझܳӝਤೞৈ эݾਵ۽ࢲ࠺झܳ݅٘חࢎۈٜՙܻܻߓ
None
4DSVN
ݒইஜ࠙زউ 4DSVN೯
4QSJOUӝр 4QSJOUഥदрदрղ
4QSJOUӝр 4QSJOUഥदрदрղ
झܽ ഥ۾
झܽ ഥ۾ ࢚ࣁ
5IFHPPEUIJOHTUIBUIBQQFOFEBOEUIBU XFXBOUUPLFFQBTQBSUPGPVSQSPDFTTDVMUVSF 5IFDIBMMFOHFTXFGBDFEJOUIFDVSSFOUTQSJOU BOEUIFJNQSPWFNFOUTXFOFFEUPNBLF 5IFDPSSFDUJWFTBDUJPOTUPHFUSJEPGUIFQSFWJPVTQSPCMFNT PSUIFJNQSPWFNFOUTJOPSEFSUPHFUBTNPPUIFSDPVSTFPOUIFOFYUTQSJOU ,15ܳాೠഥҊ 1SPCMFN ,FFQ 5SZ
KPT
KPT
ӝദࠗఠܾܻૉө যڌѱ೯غחо
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ 3FIBC JG
TQSJOUXFFLT
ѐਘझշࢫ
ѐਘٍীܻٜযڃੌਸ೧չਸө
Future Snapshot
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
ҙ۲ػपޖٜ݅ࣻଵৈ ഥীଵৈೞҊरਵݶ־ҳաଵৈоמ ഥदр୭दрղ ✔ ✔ ✔
None
None
None
Time Timer
ഥܳӡѱೠҊ೧ࢲજѾҗоաয়ঋ
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
ઁܽਵ۽স۽٘ೞӝܻ೩٘۽ҕਬ
ܻ೩٘ ҕਬद
ܻ೩٘ ҕਬद
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
ରदউਸࠁҊۚੋౣਸѐߊ
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
୭ઙदউਸܻ೩٘ীࢲഛੋറ ୭ઙѾغݶઁܽস۽٘ Zeplin
٣ੋ ୭ઙ ҕਬ
None
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
Notionী ܻೠ పझாझ
None
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ
ߓನ 5% → 10% → 20% → 50% → 100%
ѐਘझշࢫ ٣ੋ ର ѐߊद ٣ੋ୭ઙ ѐߊ৮ܐ߂2" ܾܻૉ ӝദഥ 3FIBC
TQSJOUܳ೯ೞҊաݶ3FIBCਸ೯ ಣࣗীӝоणೞҊरࠗ࠙ਸੌр೯ TQSJOU݄݃զীחण೮؍ղਊਸਗٜҗҕਬ ✔ ✔ ✔
زউऺৈחӝࣿࠗܳ೧Ѿೞӝਤೣ
ਗٜখীࢲߊറӝࣿ࠶۽Ӓܳాೞৈҕਬ
࠶۽Ӓ ੌ ҙܻ
None
None
নೠਃҳࢎ೦ী ࡅܰѱೞחߑߨ
যڃߑधਵ۽ѐߊೞݶ নೠਃҳࢎ೦ীࡅܰѱೡࣻਸө
.71"SDIJUFDUVSFࢎਊ
1SFTFOUFS .PEFM 7JFX VTFSBDUJPOT NPEFMDIBOHFE VQEBUF6* VQEBUFNPEFM
٣ੋରदউաয়ݶ1SFTFOUFSਤ۽ѐߊ
۽߸ೞঋਸѪэࠗ࠙ਸࢶࣽਤ۽ىࢲѐߊ
ݫद࣠ ࢎস۽٘ ݫۄ ࢎӂೠ ੍ܻ
ݫदզद 1SFTFOUFSীٜযт۽
VTFSBDUJPOT NPEFMDIBOHFE VQEBUF6* VQEBUFNPEFM ߄Շחࠗ࠙ 7JFX .PEFM 1SFTFOUFS
٣ੋ୭ઙഛغӝө ୭ೠ7JFXসܞم
ೣࣻഋ۽Ӓې߁ߑध
߸ࣻࢎਊਸনೞҊ ୭ೠѱӝמਸա־חѪਃ
ݫदоੑ۱غݶ ݫۄ ࢎইࢎۄ ਃҳࢎ೦
override fun onCreate() { view.initView() subscribeMessageInputChanges(view.getMessageInputChanges()) } private fun
subscribeMessageInputChanges(observable: Observable<String>) { compositeDisposable.add(observable.subscribe { if (it.isBlank()) notEnteredState() else enteredState() }) } // ݫद ੑ۱ହী ইޖѪب ੑ۱ೞ ঋওਸ ҃ private fun notEnteredState() { view.setCameraBtnVisibility(View.VISIBLE) view.setPhotoBtnVisibility(View.VISIBLE) view.setSendBtnVisibility(View.GONE) } // ݫद ੑ۱ହী Ӗਸ ੑ۱೮ਸ ҃ private fun enteredState() { view.setCameraBtnVisibility(View.GONE) view.setPhotoBtnVisibility(View.GONE) view.setSendBtnVisibility(View.VISIBLE) }
3Y+BWBഝਊ
ࠂೠ۽ਸ3Y+BWBܳഝਊೞৈрױೞѱ೧Ѿоמ
࢜۽ചоࢤࢿغݶզद ীࠁչ؍݄݃ݫददр য়റद࠙ୡറী ࢜۽ݫदоਸ҃զद զद
.FTTBHF DSFBUF5JNFয়റद࠙ୡ
.FTTBHF DSFBUF5JNFয়റद࠙ୡ .FTTBHF DSFBUF5JNFয়द࠙
.FTTBHF DSFBUF5JNFয়റद࠙ୡ .FTTBHF DSFBUF5JNFয়द࠙ ֙ਘੌ
"EBQUFSউীݫदؘఠܳয֍ਸٸ զо߄Շݶզؘఠܳ୶о
"EBQUFS .FTTBHF DSFBUF5JNFয়റद࠙ୡ .FTTBHF DSFBUF5JNFয়द࠙ *OEFY *OEFY
"EBQUFS TLJQ EJTUJODOU6OUJM$IBOHFE\%BUF^ .FTTBHF DSFBUF5JNFয়റद࠙ୡ .FTTBHF DSFBUF5JNFয়द࠙ *OEFY
*OEFY
хࢎפ