728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

flutter๋กœ ์•ฑ์„ ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœํ•˜๋‹ค ๋ณด๋‹ˆ iphone์— ์ง์ ‘ ์‹คํ–‰์‹œ์ผœ์„œ ๊ฐœ๋ฐœ ๊ณผ์ •์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค.

์‹ค์ œ ์•ฑ์—์„œ๋Š” padding์ด๋‚˜, ์ด๋ฏธ์ง€ ํฌ๊ธฐ ๋“ฑ์ด ์–ด์ƒ‰ํ•˜๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— iphone ์—ฐ๋™์ด ์‹œ๊ธ‰ํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ flutter ์ดˆ๋ณด์ธ ๋‚ด๊ฒŒ xcode๋ฅผ ๋‹ค๋ฃจ๋Š” ์ผ์€ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค๐Ÿ˜ญ

์—ฌ๋Ÿฌ reference๋“ค์„ ์ฐธ๊ณ ํ–ˆ๋Š”๋ฐ, ์˜คํžˆ๋ ค ๊ทธ๊ฒƒ์ด ๋‚ด๊ฒŒ๋Š” ๋…์ด ๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์‹คํŒจ ๋์— ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ–ˆ๋‹ค.

๋‹ค์‹œ๋Š” ๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•˜๋ฉฐ ๊ธฐ๋กํ•˜๋ ค ํ•œ๋‹ค.

 

 

1. iphone์„ ๋งฅ์— ์—ฐ๊ฒฐํ•œ๋‹ค.

๋งฅ์— ์—ฐ๊ฒฐํ•˜๋ฉด, finder์—์„œ ์—ฐ๊ฒฐ๋œ iphone์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๋‹น ๊ธฐ๊ธฐ๋ฅผ ์„ ํƒํ•˜๋ฉด, ์‹ ๋ขฐ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด ๋‚˜์˜ค๋Š”๋ฐ ์‹ ๋ขฐ๋ฅผ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค. 

 

 

 

 

2. ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋”๋ฅผ ์ฐพ๋Š”๋‹ค.

๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ, ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํด๋” ๋ช…์ด "my_work_plz" ์˜€๋‹ค. (ํด๋”๋ช…์—์„œ๋„ ๊ฐ„์ ˆํ•จ์„...)

ํ•ด๋‹น ํด๋”์— ๋“ค์–ด๊ฐ€์„œ ios > Runner.xcworkspace ๋กœ ์ด๋™ํ•ด์„œ ํŒŒ์ผ์„ ์—ฐ๋‹ค. ํŒŒ์ผ์„ ์—ด๊ณ  ์ƒ๋‹จ์— ์žˆ๋Š” Runner > ๊น€ํ•˜๋žŒ์˜ iphone์ด ๋˜๋„๋ก ํ•œ๋‹ค.

Runner > ์ด ๋ถ€๋ถ„์— ios Device๊ฐ€ ์„ ํƒ๋˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 

3. Runner > Targets์— Runner๋ฅผ ์„ ํƒํ•˜๊ณ , Signing & Capabilities์˜ Signing

์—ฌ๊ธฐ์—์„œ add account๋ฅผ ์„ ํƒํ•ด์„œ apple id๋กœ ๋กœ๊ทธ์ธ์„ ํ•œ๋‹ค. 

* ์ „์ œ์กฐ๊ฑด์€, apple developer.com ์—์„œ ๊ฐœ๋ฐœ์ž ๋“ฑ๋ก์„ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ!

 

Bundle Identifier๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š์„๋งŒํ•œ ๊ฒƒ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚˜๋Š”,

com.example.firstwork -> com.example.firstworksesd ๋กœ ๋ฐ”๊ฟ”์คฌ๋‹ค. 

 

 

 

 

4. ์ด๋ ‡๊ฒŒ Bundle Identifier ๊ฐ€ ํ†ต๊ณผ๋˜๋ฉด, ์ด ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๋œ๋‹ค.

 

 

 

 

5. keychain password

์ด๋ ‡๊ฒŒ ์‹คํ–‰์„ ํ•˜๋‹ค ๋ณด๋ฉด, keychain password๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ์ฐฝ์ด ๋‚˜์˜ค๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์€ ๋ฏธ์ฒ˜ ์บก์ณํ•˜์ง€ ๋ชปํ–ˆ๋‹ค..๐Ÿ˜ญ

์‚ฌ์‹ค ๋‚˜๋Š” keychain password์—์„œ๋„ ๊ฝค๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ์•˜๋‹ค.. keychain์ด ๋ญ”์ง€๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ, ๊ฐ‘์ž๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๊ณ  ํ•˜๋‹ˆ ๋งค์šฐ ๋‹นํ™ฉ์Šค๋Ÿฌ์› ๋‹ค. ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•œ ์ ์ด ์—†์–ด ๊ต‰์žฅํžˆ ๋‹นํ™ฉํ–ˆ์œผ๋‚˜, ๋Œ€๋ถ€๋ถ„ ์ปดํ“จํ„ฐ ์ž ๊ธˆ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ผ๊ณ  ํ•œ๋‹ค. 

๋ฌผ๋ก  ๋‚˜๋Š” ๋˜์ง€ ์•Š์•„์„œ, keychain password๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ์žฌ์„ค์ •ํ–ˆ๋‹ค. ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค๋ฉด ์ด ๋ถ€๋ถ„๋„ ํฌ์ŠคํŒ… ํ•ด๋ด์•ผ๊ฒ ๋‹ค.

Always Allow๋ฅผ ์„ ํƒํ•˜๋ฉด ๋‚˜์ค‘์— ํ›จ์”ฌ ํŽธํ•˜๋‹ค!

 

๊ทธ๋ ‡๊ฒŒ ์‹คํ–‰์„ ํ•˜๋‹ค ๋ณด๋ฉด, Could not launch "Runner" ๋ผ๋Š” ๋‹ค์ด์–ผ๋กœ๊ทธ๊ฐ€ ๋œฌ๋‹ค. ์ด๋Š” ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๊ธฐ๊ธฐ๊ฐ€ ๋‹น์‹ ์„ ๊ฐœ๋ฐœ์ž๋กœ ์‹ ๋ขฐํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ผ๋‹จ OK๋ฅผ ์„ ํƒํ•˜๊ณ , ์—ฐ๊ฒฐํ•˜๋ ค๋Š” ๊ธฐ๊ธฐ๋กœ ๊ฐ€๋ณด์ž.

 

 

 

 

 

6. ๊ธฐ๊ธฐ์—์„œ ์„ค์ • > ์ผ๋ฐ˜ > VPN ๋ฐ ๊ธฐ๊ธฐ ๊ด€๋ฆฌ

๊ธฐ๊ธฐ์—์„œ ์„ค์ • > ์ผ๋ฐ˜ > VPN ๋ฐ ๊ธฐ๊ธฐ ๊ด€๋ฆฌ๋กœ ์ด๋™ํ•ด์„œ Apple Development~~ ๋ถ€๋ถ„์„ ์„ ํƒํ•˜๊ณ , ์‹ ๋ขฐํ•˜๊ฒ ๋‹ค๋Š” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๋œ๋‹ค.

 

์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ํ–ˆ๋‹ค๋ฉด ๋ฒŒ์จ 80%์ด์ƒ ๋๋‚ฌ๋‹ค!!

์ด๋ ‡๊ฒŒ ๊ธฐ๊ธฐ์—์„œ ์‹ ๋ขฐํ•˜๊ฒ ๋‹ค๋Š” ๊ฒƒ๊นŒ์ง€ ์„ ํƒํ•œ ๋’ค, ๋‹ค์‹œ xcode์—์„œ ์‹คํ–‰ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด....!!

๊ธฐ๊ธฐ์—์„œ ๋˜ ์–ด๋–ค ์ฐฝ์ด ๋‚˜์˜จ๋‹ค. ์ด ๋ชจ๋“  ๋ถ€๋ถ„์„ ์บก์ณ ํ–ˆ์–ด์•ผ ํ–ˆ๋Š”๋ฐ.. ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค..๐Ÿ˜ข

์–ด์จŒ๋“ , xcode๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ๊ธฐ๊ธฐ์—์„œ ์–ด๋–ค ์ฐฝ์ด ๋‚˜์˜จ๋‹ค๋ฉด OK ๋˜๋Š” ํ™•์ธ์„ ์„ ํƒํ•˜๋ฉด ๋œ๋‹ค.

์•„๋งˆ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์— ๊ธฐ๊ธฐ๋ฅผ ์—ฐ๊ฒฐํ•  ๊ฒƒ์ด๋Š๋ƒ์— ๋Œ€ํ•œ ์ฐฝ์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

7. vscode ๋นŒ๋“œ

์ด์ œ xcode๋ฅผ ์ž ์‹œ ๋’ค๋กœ ๋‘๊ณ , ๋‹ค์‹œ vscode๋กœ ๋„˜์–ด์™€๋ณด์ž.

vscode์—์„œ ๋นŒ๋“œ๋ฅผ ํ•˜๊ธฐ ์ „์—, vscode ์šฐ์ธก ํ•˜๋‹จ์— ์›ํ•˜๋Š” ๊ธฐ๊ธฐ๊ฐ€ ์ž˜ ์—ฐ๊ฒฐ ๋๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

ํ™•์ธ์ด ๋๋‹ค๋ฉด, vscode์—์„œ ๋นŒ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด, ์—ฐ๊ฒฐํ•œ ๊ธฐ๊ธฐ์—์„œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ, ์•„์‰ฝ๊ฒŒ๋„ vscode์—์„œ ๋˜ ํ•˜๋‚˜์˜ ์ฐฝ์ด ๋œฐ ๊ฒƒ์ด๋‹ค...

๋งˆ์ง€๋ง‰ ์ฐฝ์ด๋‹ค.. ์ด ๋ถ€๋ถ„๋„ ์บก์ณ๋ฅผ ํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ, "iproxy"์— ๋Œ€ํ•œ ๋ถ€๋ถ„์ด์—ˆ๋‹ค. vscode๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ค‘์— "iproxy"๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฐฝ์ด ๋œฌ๋‹ค๋ฉด, ์ผ๋‹จ cancel์„ ๋ˆ„๋ฅด์ž.

 

 

 

 

 

8. iproxy ํ•ด๊ฒฐํ•˜๊ธฐ

์ปดํ“จํ„ฐ์—์„œ flutter๋ฅผ ์ฐพ๋Š”๋‹ค. flutter ํด๋”๋ฅผ ์ฐพ์œผ๋ฉด, flutter > bin > cache ๋กœ ์ด๋™ํ•œ๋‹ค.

cache์— ์˜ค๋ฉด, "artifacts"๋ผ๋Š” ํด๋”๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

์ด artifacts๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

 

9. ๋‹ค์‹œ ๋นŒ๋“œ

๋‹ค์‹œ vscode๋กœ ๋Œ์•„์™€์„œ ๋นŒ๋“œํ•˜๋ฉด, ํŒŒ์ผ๋“ค์ด ๋‹ค์šด๋กœ๋“œ๋˜๊ณ , ๊ธฐ๊ธฐ์—์„œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค !!

 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[flutter] ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€ codelab (step1-step4)  (0) 2023.02.07
์•„์ดํฐ ๋ฌด์„  ๋””๋ฒ„๊น…  (0) 2022.10.30
flutter album ์ ‘๊ทผ  (0) 2022.07.08
[Flutter] no device  (0) 2022.07.08
Padding class  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป ๋ฌธ์ œ

flutter์—์„œ ์•จ๋ฒ”์— ์ ‘๊ทผํ•˜์—ฌ ์‚ฌ์ง„์„ ์—…๋กœ๋“œํ•˜๋ ค๊ณ  ํ–ˆ๋”๋‹ˆ, ์•จ๋ฒ”์—์„œ ๋ถˆ๋Ÿฌ์˜ค๋ ค๊ณ  ํ•  ๋•Œ๋งˆ๋‹ค ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ๊บผ์ ธ๋ฒ„๋ ธ๋‹ค.

์ด๋Ÿฐ ์—๋Ÿฌ์™€ ํ•จ๊ป˜ ์ž๊พธ ๊บผ์ ธ๋ฒ„๋ ธ๋‹ค.

์•Œ๊ณ ๋ณด๋‹ˆ, info.plist์— ์•จ๋ฒ”์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•ด์ค˜์•ผ๋งŒ ํ–ˆ๋‹ค.



๐Ÿ’ป ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

ios > Runner > Info.plist
์ด ์œ„์น˜์— ์žˆ๋Š” info.plist ํŒŒ์ผ์— ๋‹ค์Œ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค.

<key>NSPhotoLibraryUsageDescription</key>
<string></string>
<key>NSCameraUsageDescription</key>
<string></string>
<key>NSMicrophoneUsageDescription</key>
<string></string>

 

์ด๋ ‡๊ฒŒ ์ถ”๊ฐ€ํ–ˆ๋‹ค.



๐Ÿ’ป ๊ฒฐ๊ณผ

https://velog.velcdn.com/images/haram2/post/99fbf769-631f-4a70-8d0e-c8b9948e9212/image.gif

 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์•„์ดํฐ ๋ฌด์„  ๋””๋ฒ„๊น…  (0) 2022.10.30
[Flutter] flutter iphone ์—ฐ๋™ํ•˜๊ธฐ  (2) 2022.08.25
[Flutter] no device  (0) 2022.07.08
Padding class  (0) 2022.07.06
[Flutter] Expanded class  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฌธ์ œ

์ง€๊ธˆ์€ ํ•ด๊ฒฐ ๋์œผ๋‚˜, ๋‹ค์Œ ๋ถ€๋ถ„์— no device๋ผ๋ฉฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ๊ฐ€ ์ „ํ˜€ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.

๊ทธ๋ž˜์„œ flutter doctor๋ฅผ ์‹คํ–‰ํ•œ ๊ฒฐ๊ณผ xcode์—์„œ ์—๋Ÿฌ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.





๐Ÿ‘ฉ‍๐Ÿ’ป ํ•ด๊ฒฐ ๋ฐฉ์•ˆ

ํ„ฐ๋ฏธ๋„์— ๋‚˜์˜จ ์—๋Ÿฌ๋ฅผ ๋”ฐ๋ผ ํ•ด๊ฒฐํ•˜๋ฉด, ios๊ฐ€ ์ œ๋Œ€๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

// ์ฒซ ๋ฒˆ์งธ
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
// ๋‘ ๋ฒˆ์งธ
sudo xcodebuild -runFirstLaunch
 
728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] flutter iphone ์—ฐ๋™ํ•˜๊ธฐ  (2) 2022.08.25
flutter album ์ ‘๊ทผ  (0) 2022.07.08
Padding class  (0) 2022.07.06
[Flutter] Expanded class  (0) 2022.07.06
[Flutter] Transform class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•
728x90

๐Ÿ’ป ๋ฌธ์ œ

๋งฅ์œผ๋กœ ๊ณผ์ œ๋ฅผ ํ•˜๋˜ ์ค‘ ๊ฐ‘์ž๊ธฐ ๋งฅ์ด ๊บผ์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
์–ด๋Š ์ˆœ๊ฐ„ ๋ ‰์ด ๋ฐœ์ƒํ•˜๋”๋‹ˆ, ์•„์˜ˆ ๊ฒ€์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค.

๋„ˆ๋ฌด ๋‹นํ™ฉํ•ด์„œ ์ผ๋‹จ ์ „์› ๋ฒ„ํŠผ์„ ๊ธธ๊ฒŒ ๋ˆŒ๋Ÿฌ ๊ฐ•์ œ ์ข…๋ฃŒ ํ›„, 20๋ถ„์ •๋„ ๊ธฐ๋‹ค๋ฆฐ ๋’ค ๋‹ค์‹œ ์ „์›์„ ์ผฐ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๊ฒ€์€ ํ™”๋ฉด์ด์—ˆ๋‹ค.

ํœด๋Œ€ํฐ์œผ๋กœ ๊ฒ€์ƒ‰ํ•œ ๊ฒฐ๊ณผ, ์ปดํ“จํ„ฐ ๋ถ€ํŒ…์ด๋‚˜, off๋˜๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœ๊ทธ๋žจ์ด ๊ผฌ์—ฌ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์ž„์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.





๐Ÿ’ป ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

  1. Control + option + shift + ์ „์›
  2. option + command + p + r

์ด๋ ‡๊ฒŒ ์ˆœ์„œ๋Œ€๋กœ ๋™์‹œ์— ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ๊ฐ‘์ž๊ธฐ ํ™”๋ฉด์ด ์•„์ฃผ ์‚ด์ง ๋ฒˆ์ฉ ํ•˜๋ฉฐ ์žฌ๋ถ€ํŒ… ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ  ์‚ฌ์ดํŠธ : https://m.blog.naver.com/teddyjun/220333615605

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

Padding class

์ •ํ•ด์ง„ padding์— ๋งž์ถฐ child๋ฅผ ๋„ฃ๋Š” ์œ„์ ฏ์ด๋‹ค.

์œ„ ์‚ฌ์ง„์€ ๊ณต๊ฐ„์ด ์ „ํ˜€ ์—†์–ด ๋‹ต๋‹ตํ•ด ๋ณด์ด์ง€ ์•Š์€๊ฐ€?
๊ฐ๊ฐ์˜ ์‚ฌ๊ฐํ˜• ์‚ฌ์ด์— ๊ณต๊ฐ„์„ ์กฐ๊ธˆ ๋‘๋ฉด ์–ด๋–จ๊นŒ?

์ด๋ ‡๊ฒŒ ๊ณต๊ฐ„ ์ฆ‰ ์—ฌ๋ฐฑ์ด ํ•„์š”ํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.
Padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‹ค์Œ์€ padding ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณต๊ฐ„์„ ๋งŒ๋“  ๊ฒฐ๊ณผ์ด๋‹ค.



๊ทธ๋ ‡๋‹ค๋ฉด padding์€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ• ๊นŒ?

์ด๋ ‡๊ฒŒ ์–ด๋Š ๋ถ€๋ถ„์— ์–ผ๋งˆ๋‚˜ ๊ณต๊ฐ„์„ ๋‘˜ ๊ฒƒ์ธ์ง€ ์ •ํ•˜๊ณ , padding์ด ์ ์šฉ๋  child๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋œ๋‹ค.

padding์„ ์ฃผ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•˜๋‹ค.
์ด๋Š” EdgeInsets์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฐฉ๋ฒ•์ด ๋‚˜๋‰œ๋‹ค.

1. EdgeInsets.fromLTRB()

LTRB๋Š” ์ˆœ์„œ๋Œ€๋กœ Left, Top, Right, Bottom์˜ ์•ž ๋ฌธ์ž๋ฅผ ๋”ฐ์˜จ ๊ฒƒ์ด๋‹ค.
EdgeInsets.fromLTRB๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” child์˜ ์™ผ์ชฝ, ์œ„, ์˜ค๋ฅธ์ชฝ, ์•„๋ž˜ ๊ฐ๊ฐ์˜ ์—ฌ๋ฐฑ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ)


2. EdgeInsets.all()

๋ชจ๋“  ๋ถ€๋ถ„(์™ผ์ชฝ, ์˜ค๋ฅธ์ชฝ, ์œ„์ชฝ, ์•„๋ž˜์ชฝ)์— ๊ฐ™์€ ํฌ๊ธฐ์˜ ์—ฌ๋ฐฑ์„ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.



3. EdgeInsets.only()

ํŠน์ • ๋ถ€๋ถ„์— ์ง€์ •ํ•œ ๊ฐ’์˜ ํฌ๊ธฐ๋งŒํผ ์—ฌ๋ฐฑ์„ ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ)

EdgeInsets.only(top: 30, bottom: 20)


์ด๋Ÿฐ์‹์œผ๋กœ left, top, bottom, right ์ค‘ ํŠน์ •ํ•œ ๋ถ€๋ถ„์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ๊ฐ’์„ ์—ฌ๋ฐฑ์œผ๋กœ ์ค„ ์ˆ˜ ์žˆ๋‹ค.



4. EdgeInsets.symmetric()

์„ธ๋กœ์™€ ๊ฐ€๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์—ฌ๋ฐฑ ๊ฐ’์„ ์ œ์‹œํ•œ๋‹ค.


horizontal= ๊ฐ€๋กœ
vertical= ์„ธ๋กœ
์ด๋ ‡๊ฒŒ horizontal์— ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ์—ฌ๋ฐฑ์ด ์ •ํ•ด์ง€๊ณ ,
vertical์— ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์œ„์ชฝ๊ณผ ์•„๋ž˜์ชฝ ์—ฌ๋ฐฑ์ด ์ •ํ•ด์ง„๋‹ค.





5. EdgeInsets.fromSTEB

STEB๋Š” ์ˆœ์„œ๋Œ€๋กœ Start, Top, End, Bottom์˜ ์•ž ๋ฌธ์ž๋ฅผ ๋”ฐ์˜จ ๊ฒƒ์ด๋‹ค.
์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์™ผ์ชฝ์ด start, ์˜ค๋ฅธ์ชฝ์ด end๊ฐ€ ๋œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

flutter album ์ ‘๊ทผ  (0) 2022.07.08
[Flutter] no device  (0) 2022.07.08
[Flutter] Expanded class  (0) 2022.07.06
[Flutter] Transform class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•

Expanded class

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋„๋ก Row, Column, ๋˜๋Š” Flex์˜ child๋ฅผ ํ™•์žฅ์‹œํ‚จ๋‹ค.
Expanded ์œ„์ ฏ์„ ์‚ฌ์šฉํ•˜๋ฉด Row, Column ๋˜๋Š” Flex์˜ child๊ฐ€ main axis(์ถ•)์„ ๋”ฐ๋ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณต๊ฐ„์„ ์ฑ„์šฐ๋„๋ก ํ™•์žฅ๋œ๋‹ค.

  • Row์ด๋ฉด ๊ฐ€๋กœ
  • Column์ด๋ฉด ์„ธ๋กœ

<์กฐ๊ฑด>
Expanded ์œ„์ ฏ์€ Row, Column ๋˜๋Š” Flex์˜ ์ž์†์ด์–ด์•ผ ํ•œ๋‹ค.
StatelessWidget ๋˜๋Š” StatefulWidget์ด์–ด์•ผ ํ•œ๋‹ค.

example)

example_Column)

์œ„ ์˜ˆ์‹œ๋Š” ์ค‘๊ฐ„ child๋ฅผ ์„ธ๋กœ์ถ•์— ๋งž์ถฐ ํ™•์žฅ์‹œํ‚จ ๊ฒฐ๊ณผ์ด๋‹ค.

example_Row)

์œ„ ์˜ˆ์‹œ๋Š” flex๋ฅผ ์ง€์ •ํ•˜์—ฌ ์ค‘๊ฐ„ child๋ฅผ ์ œ์™ธํ•œ child๋ฅผ ๊ฐ€๋กœ์ถ•์— ๋งž์ถฐ ํ™•์žฅ์‹œํ‚จ ๊ฒฐ๊ณผ์ด๋‹ค.

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] no device  (0) 2022.07.08
Padding class  (0) 2022.07.06
[Flutter] Transform class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] OverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•

Transform class

transform class๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ณธ ์œ„์ ฏ๋“ค ์ค‘ ๊ฐ€์žฅ ์žฌ๋ฐŒ๊ณ  ์‹ ๊ธฐํ•˜๊ฒŒ ๋‹ค๊ฐ€์™”๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ํ”ํžˆ ํŒŒ์›Œํฌ์ธํŠธ๋‚˜, ์˜์ƒ, ์•ฑ ์‚ฌ์šฉ ์ค‘ ๋ดค์„ ๋ฒ•ํ•œ ๊ธฐ๋Šฅ๋“ค์ด transform ์œ„์ ฏ์„ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค.

์•„๋ž˜ ์ฒจ๋ถ€ํ•œ ์˜์ƒ์„ ๋ณด๋ฉด ๋‚˜๋„ ๋ชจ๋ฅด๊ฒŒ '์šฐ์™€' ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

transform์—๋Š” ์ •๋ง ๋งŽ์€ ๊ธฐ๋Šฅ๋“ค์ด ์žˆ๋Š”๋ฐ, ๊ทธ ์ค‘ 3๊ฐœ์˜ ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค.

1. Transform.rotate

  • child๋ฅผ ์›ํ•˜๋Š” ๊ฐ์œผ๋กœ ํšŒ์ „ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

2. Transform.scale

  • child์˜ ํฌ๊ธฐ๋ฅผ ์›ํ•˜๋Š” ํฌ๊ธฐ๋กœ ์กฐ์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

3. Transform.translate

  • child์˜ ์œ„์น˜๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด ์™ธ์—๋„ skew, 3D perspective ๋“ฑ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ๋กœ ๋ณธ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๊ฒƒ๋“ค๋„ transform ์œ„์ ฏ์„ ํ†ตํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

์ฐธ๊ณ ์˜์ƒ) https://youtu.be/9z_YNlRlWfA

 
728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Padding class  (0) 2022.07.06
[Flutter] Expanded class  (0) 2022.07.06
[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] OverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] Offstage class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•

SizedOverflowBox class

overflowBox์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.
overflowBox์™€ ๋‹ค๋ฅธ ์ ์€ constraint๋ฅผ ๋”ฐ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  ์ด์ „์— ์„ค์ •๋œ parent์˜ constraint๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. SizedOverflowBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด parent๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ๋œ constraint๋ฅผ ๋ฒ—์–ด๋‚œ box๋ฅผ ๊ทธ๋ฆด ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

example)

out put)

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] Expanded class  (0) 2022.07.06
[Flutter] Transform class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] OverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] Offstage class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] LimitedBox class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

OverflowBox class

์ด ์œ„์ ฏ์€ parent๋กœ๋ถ€ํ„ฐ child์—๊ฒŒ ๊ฐ๊ฐ ๋‹ค๋ฅธ constraints๋ฅผ ๋ถ€๊ณผํ•˜์—ฌ child๊ฐ€ parent๋ฅผ overflow(๋„˜์น˜๊ฒŒ. ์ฆ‰ ๋” ํฌ๊ฒŒ) ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

overflowBox๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด parent์—์„œ ์ œ์‹œ๋œ constraint๋ฅผ ๋ฒ—์–ด๋‚  ์ˆ˜ ์—†๋‹ค.
ํ•˜์ง€๋งŒ overflowBox๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด parent๋ฅผ ๋ฒ—์–ด๋‚œ constraint๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•œ constraint ์•ˆ์—์„œ parent๋ฅผ ๋ฒ—์–ด๋‚œ box๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

example)

out put)

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] Transform class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] Offstage class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] LimitedBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] IntrinsicWidth class ์ •๋ฆฌ  (0) 2022.07.06
728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

Offstage class

offstage class๋Š” ๋ง ๊ทธ๋Œ€๋กœ stage์—์„œ off(๋ฒ—์–ด๋‚œ๋‹ค)ํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ ์ดํ•ดํ–ˆ๋‹ค.

offstage class๋Š” navigator์™€ ๋น„์Šทํ•˜๊ฒŒ ํŽ˜์ด์ง€๊ฐ€ ๋ฐ”๋€Œ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค.
ํ•˜์ง€๋งŒ, ์ƒˆ๋กœ์šด ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์•„๋„ ๋œ๋‹ค๋Š” ํŠน์ง•์ด์ž ์žฅ์ ์ด ์žˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” ๋ณด์ด์ง€ ์•Š์ง€๋งŒ offstage ์ƒํƒœ์—์„œ๋„ ๊ณ„์† ์‹คํ–‰๋˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ ๋ˆˆ์— ๋ณด์ด๋Š๋ƒ ์•ˆ๋ณด์ด๋Š๋ƒ์˜ ์—ฌ๋ถ€์— ๊ด€๊ณ„ ์—†์ด ๋ฐฐํ„ฐ๋ฆฌ๊ฐ€ ์†Œ์š”๋œ๋‹ค.

์ด์ œ offstage์— ๋Œ€ํ•ด ๋” ์ž์„ธํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค.
์ „์ฒด ์ฝ”๋“œ๋Š” ์•„๋ž˜ ๋งํฌ๋กœ ๋‘์—ˆ์œผ๋‹ˆ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋“ค์–ด๊ฐ€๊ธธ ๋ฐ”๋ž€๋‹ค.



  1. offstage๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๋จผ์ € true๋กœ ๊ฐ’์„ ์„ค์ •ํ•ด์ค€๋‹ค.
bool _offstage = true;
  1. offstage๊ฐ€ true์ด๋ฉด ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์ด ๋ˆˆ์— ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.
    ๋ฐ˜๋Œ€๋กœ, offstage๊ฐ€ false์ด๋ฉด ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์ด ๋ˆˆ์— ๋ณด์ธ๋‹ค.
@override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Offstage(
          offstage: _offstage,
          child: FlutterLogo(
            key: _key,
            size: 150.0,
          ),
        ),
        Text('Flutter logo is offstage: $_offstage'),
        ElevatedButton(
          child: const Text('Toggle Offstage Value'),
          onPressed: () {
            setState(() {
              _offstage = !_offstage;//false๋กœ ์ดˆ๊ธฐ ์„ค์ •ํ•œ ๊ฐ’์ด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅผ ๋•Œ๋งˆ๋‹ค ๊ฐ’์ด ๋ฐ”๋€๋‹ค.
            });
          },
        ),
      ],
    );
  }

<์ดˆ๊ธฐํ™”๋ฉด>

<๋ฒ„ํŠผ ๋ˆ„๋ฅธ ํ›„ ํ™”๋ฉด>

์ „์ฒด ์ฝ”๋“œ
https://dartpad.dev/?id=2bad6eb52a25efd3df702370db842253

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ’ง flutter' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Flutter] SizedOverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] OverflowBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] LimitedBox class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] IntrinsicWidth class ์ •๋ฆฌ  (0) 2022.07.06
[Flutter] IntrinsicHeight class ์ •๋ฆฌ  (0) 2022.07.06

+ Recent posts