- Published on
๐ PROJECT | note88::์๋๋ก์ด๋ ํผ์๋ ธ ์ ๋ณด ๋ทฐ์ด #1
์๋๋ก์ด๋ ํผ์๋ ธ ์ ๋ณด ๋ทฐ์ด
note88 ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ
ํผ์๋
ธ ํ์์์ ์ด๋ ๋ ๊ฐค๋ญ์ ํญ์ผ๋ก ์
๋ณด๋ฅผ ๋ณด๋ ์ง์ธ๋ถ๊ป์ ์๋๋ก์ด๋์ฉ์ผ๋ก๋ ์
๋ณด ๋ณด๋ ์ฑ์ด ์์ผ๋, imslp์ฐ๋์ด ๋ ์
๋ณด๊ฐ ์๋ค๊ณ ๋งํ ๊ฒ์ด ์์ด๊ฐ ๋์๋ค.
์ด๋ฏธ iOS์ฉ์ผ๋ก๋ PiaScore๋ผ๋ ์ฑ์ด ์กด์ฌํ๊ณ , ์ด๋ฏธ ์ค๋์ ๋ถํฐ๋ IMSLP ๊ณต์ ์ฑ์ด ์๋๋ก์ด๋์์ ์กด์ฌ๋ ํ๊ณ ์์๋ค.
ํ์ง๋ง ๋ด ๊ธฐ์ค IMSLP ์ฑ์ด ๋จ์ํ์ผ๋ฉด ํ๋ ๋ง์์์ ์๋๋ก์ด๋์ฉ imslp ์ฐ๋์ด ๋๋ ์ฑ์ ๊ฐ๋ฐํ๊ธฐ๋ก ์์ํ๋ค.
๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ๊น์ง
2024๋
3์ 10์ผ๋ถํฐ ๊ฐ๋ฐ์ ์์ํ ๊ฒ์ผ๋ก ๋ณด์, ๊ทธ๊ฐ ๊ตฌ์งํ๋๊ณผ ํ์ฌํ๋์ผ๋ก ์ฌ๋ฌ๋ชจ๋ก ๋ฏธ๋ฃจ๋ค๊ฐ ์ฌํด๊ฐ ๋์ด์์ผ ์์ฑ์ ํ๋ค.
์ผ๋จ flutter์ ๋ํด์ ๋น ์ญํ๊ฒ ์๋ ํธ์ ์๋๊ณ , 2023๋
ํ๋ฐ๊ธฐ์ ํ๋ฌํฐ ๊ด๋ จ ์ฑ
์ ์ฝ๊ณ ๊ฑฐ๊ธฐ์ ๋์ค๋ ํ๋ก์ ํธ๋ง ๋ช๊ฐ ๋ฐ๋ผ์ ํด๋ณธ ์์ค์ด๋ผ, ๊ฒฝํ๋ ์๊ฒ ๋ค ์ถ์ด์ ๋ฌด๋ชจํ๊ฒ ํ๋ฌํฐ๋ก ์์ํ๋ค.
์ฌ์ค ๊ทธ๋ฅ react native๋ก ๊ฐ๋ฐํ ๊น ํ๋ค๊ฐ, react native๋ ์๋๋ก์ด๋์ iOS์์ ๊ฐ๊ฐ์ ๋ค์ดํฐ๋ธ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ, ํ๋ฌํฐ๋ ๊ทธ๋ด ํ์๊ฐ ์์ด์ ํ๋ฌํฐ๋ก ๊ฐ๋ฐํ๊ธฐ๋ก ํ๋ค. Cross platform์ผ๋ก ๊ฐ๋ฐํ ์ ์๋ค๋ ์ ์์ ๋ฐ์คํฌํฑ์ผ๋ก๋ ์ฐ๊ณํ๋ ค ํ์ผ๋ ์ค๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด์.. ์ด๊ฑด ๋ณด๋ฅํ๊ธฐ๋ก ํ๋ค..ใ
ใ
์๋ฌดํผ ์ด ํฌ์คํธ๋ชจํ
์ฐ๋ ์์ ์์๋ ์์ค๋ฅ ํ์ธํ๊ณ ๊ตฌ๊ธ ํ๋ ์ด์คํ ์ด์ ๋ฐฐํฌํ ์์ ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๊ฒ ๋ค.
Product Keypoint
- Bookview like
- Swipe/Slide to change page
- IMSLP ์ฐ๋
- PDF Viewer
Development
๊ฐ๋ฐ ํ๊ฒฝ์ ์๋์ ๊ฐ๋ค.
Development Stack
- Flutter
- Dart
- Android
- Claude
Ui/Ux Design
์ฌ์ค.. ๋์์ธ ํ๋ ์์ํฌ๋ ์๊ณ ๊ทธ๋ฅ ๋ฐ๋ก ๋จธ๋ฆฌ์์ ์๊ฐ๋๋๋๋ก ๋ง๋ค์ด์ ์ด์ฐ๋ณด๋ฉด ์ผ๊ด์ฑ์ด ์์ด ๋ณด์ผ ์ ์๊ฒ ๋ค. ์ ๊ฒฝ์ด ์ฐ์ฌ์ ์ปฌ๋ฌํ๋ ํธ๋ ์ฎ๊ธฐ๊ณ ์ฌ๋งํด์ AppTheme
์ ์ต๋ํ ์ฌ์ฉํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฐํ๋ค.
์ผ๋จ Ui๋ ์ต๋ํ ๊ฐ๋จํ๊ฒ, ์์์ ํ๋์ ์์์ ํคํฌ์ธํธ๋ก ๊ฐ์ ธ๊ฐ๊ณ ์ต๋ํ ์
๋ณด๊ฐ ๋์ ๋๋ ์์์ ์ฌ์ฉํ๋ค. ์์์ Flutter์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์์์ธ MaterialColor
๋ฅผ ์ฌ์ฉํ๋ค.
Issues
๊ฐ๋ฐํ๋ฉด์ ์ฌ์ค ์ํํ์ง ์์๋ ๊ฒ ๊ฐ๋ค.. ใ ใ ใ ใ ๊ฝค๋ ๊ณ ์ํ๋ฉด์ ๋ง๋ค์๋๋ฐ, ์๊ฐ๋๋ ๋ช๊ฐ์ง๋ง ์ ๋ฆฌํด๋ณด๊ฒ ๋ค.
Bookview PDF viewer ํจํค์ง๋ ์๋ค.
์๋๋ pdfrx
ํจํค์ง๋ฅผ ์ฌ์ฉํ์๋๋ฐ, ์ด ํจํค์ง๊ฐ bookview
๋ชจ๋๊ฐ ์์ด์, ์ต๋ํ ๊ธฐ๋ณธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก bookview๋ฅผ ๊ตฌํํ์๊ณ , pdfrx๋ก๋ pdf ์ฝ๋ ์ฉ๋๋ก ๋๋์ด์ ์ฌ์ฉํ๋ค.
๋์์ง ์์ ํจํค์ง์ด๋ค. ์๋ฌดํผ ์ต๊ทผ ์๋ ๋ด๊ฐ ๋จ๊ธด ๊น์ด์๋ฅผ ํ์ธํด๋ณด๋๊น ์ฌ๋ฌ ์ด๋ฒคํธ ๋ฃ์ผ์๋ ค๊ณ ๋
ธ๋ ฅํ์๋ ๊ฒ ๊ฐ๋ค.
bookview๋ orientaton์ ๊ณ ๋ คํ๋ฉด์ snapping event๊ฐ ๊ฑธ๋ ค์ผํ๋๋ฐ, ์ด๊ฒ๋ offset ๊ณ์ฐ์ผ๋ก ๊ณจ๋จธ๋ฆฌ๋ฅผ ์ข ์์๋ ๊ฒ์ผ๋ก ๊ธฐ์ตํ๋ค.
์ ์ฐธ, ๊ทธ๋ฆฌ๊ณ ๋ชฐ๋๋๋ฐ, pdf ์์ ๊ทธ๋ฆฌ๋ ๋ฑ๋ฑ ๊ณ ๊ธ๊ธฐ๋ฅ์ด ๋ค์ด๊ฐ ํจํค์ง๋ ์ ๋ฃ๋ค..ใ ใ
Dynamic ํ์ด์ง๋ค์ parsingํ๊ธฐ์๋ flutter๊ฐ ๋น์ฝํ๋ค.
webview_flutter
ํจํค์ง๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์๋๋ก์ด๋์ iOS์์๋ง ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ง์ฝ ๋ฐ์คํฌํฑ์ผ๋ก๋ parsing์ ์ํ๋ฉด webview_windows
ํจํค์ง๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. ์ค๋ น ์ฌ์ฉํด๋ ํ์๋ offscreen rendering์ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์, ๋์ ์ธ ํ์ด์ง์์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ์คํจํ์๋ค.. ใ
ใ
์ด๊ฑด ์ฌ๋ฌ๋ฒ ์ํํด๋ณธ ๋์ ๋ด๋ฆฐ ๊ฒฐ๊ณผ๋ค..ใ
ใ
Google Admob์ ๋ฐ์คํฌํ์ ์ง์ํ์ง ์๋๋ค.
์ฌ์ค ๋ฐ์คํฌํ ๊ฐ๋ฐ์ ์๋ฏธ๊ฐ ์์ด์ ธ์ ๋ฐ์คํฌํ์ ๊ตณ์ด ์ด๋ผ์ง ์์๋ค. ๊ทธ๋ฆฌ๊ณ Admob์ด ํ
์คํธ ํ๋๋ฐ ์์ด์ ๋๋ฌด ์๋๋ ๋ฌธ์ ๋ฅผ 4์ผ ๋ด๋ด ๊ณ ์ํ ์ ์ด ์์๋๋ฐ, ์ด ๋งํฌ ๋ณด๊ณ ํด๊ฒฐํ์ ์ด ์์๋ค. ๊ณต์ ๋ฌธ์์์๋ ์๋ฎฌ๋ ์ดํฐ ์ค์ ๊ด๋ จ ๋ง์ด ์์ด์ ์ข ํ๋ฌดํ๊ธด ํ๋ค..ใ
ใ
๊ณต์ ๋ฌธ์ ์ฐธ๊ณ ํ๊ณ ์๋ฎฌ๋ ์ดํฐ๋ vscode์์ ์์ฑํ๊ณ ๋ง๋ค๋ฉด ์๋์ผ๋ก Google play ๊ธฐ๋ฐ ์๋๋ก์ด๋ ์๋ฎฌ๋ ์ดํฐ๊ฐ ๋์ค๊ธด ํ๋ค.
Wrapup & Conclusion
์์ฝ์ ํ์๋ฉด, ํ๋ฌํฐ๋ก ์ฒ์๋ถํฐ ๋๊น์ง ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ ํด๋ณด์๊ณ , ๊ฐ์ธ์ ์ผ๋ก๋ ๋์์ง ์์ ๊ฒฝํ์ด์๋ค. ํ์ง๋ง ๋๋ ํ๋ก ํธ์๋๋ก ์ ์์ผ๋ก ๊ฐ ์๊ฐ์ด ์ ํ ์๋ ์ฌ๋์ด๋ผ..
๋ค๋ง ์ฒ์๋ถํฐ ๋๊น์ง ํผ์์ ๊ฐ๋ฐ์ ํ ๊ฒ์ ํ ๋๋ก ๊ด๊ณ ๋ฅผ ๋ฌ๊ณ ๋ฐฐํฌ๊น์ง๋ ์ฒ์์ด๋ผ, ์ด ๊ฒฝํ์ ํ ๋๋ก ํ์ ํ๋ก์ ํธ๋ค์ด ๋ ์ ๋์์ ํ๋ ๋ง์์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐ๋ณด๋ค ์๋๋ค React native๋ณด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํ๊ณ๊ฐ ์๋ ๊ฒ์ผ๋ก ๋๊ปด์ง๊ธด ํ๋ค.
- Authors
- Name
- Amelia Young
- GitHub
- @ameliacode