<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>chamsae_dev.log</title>
        <link>https://velog.io/</link>
        <description>의미있는 개발</description>
        <lastBuildDate>Tue, 27 May 2025 10:18:15 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>chamsae_dev.log</title>
            <url>https://velog.velcdn.com/images/chamsae_dev/profile/f77bc70e-5212-4ad4-9442-5338bbf29f4f/image.JPG</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. chamsae_dev.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/chamsae_dev" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Margin, Padding]]></title>
            <link>https://velog.io/@chamsae_dev/Margin-Padding</link>
            <guid>https://velog.io/@chamsae_dev/Margin-Padding</guid>
            <pubDate>Tue, 27 May 2025 10:18:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/8a2357e0-19b6-4dc3-ae65-e562a1838432/image.png" alt=""></p>
<p>Margin, Padding</p>
<p>EdgeInsets.all: 
EdgeInsets.only: (top , bottom, left, right)
EdgeInsets.symmetric:(horizontal: 좌, 우), (vertical: 위, 아래)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Flutter TextField ]]></title>
            <link>https://velog.io/@chamsae_dev/Flutter-TextField</link>
            <guid>https://velog.io/@chamsae_dev/Flutter-TextField</guid>
            <pubDate>Mon, 26 May 2025 11:06:07 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/3e255e71-12aa-49f5-85e5-5caf05f546b8/image.png" alt=""></p>
<pre><code>    TextEditingController controller = TextEditingController();

      @override
      Widget build(BuildContext context) {              
              TextField(
                obscureText: true,                  // 암호화
                cursorColor: Colors.black,        // 커서 색상
                textAlign: TextAlign.start,         // 텍스트 시작점
                controller: controller,             // 입력값 받아옴 (실시간)
                style: TextStyle(fontSize: 15),
                decoration: InputDecoration(
                  labelText: &#39;Password&#39;,
                  border: OutlineInputBorder(),
                ),
              ),</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[Flutter 앱 개발 기초 1회차 - 로그인 페이지 만들기]]></title>
            <link>https://velog.io/@chamsae_dev/Flutter-%EC%95%B1-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%B4%88-1%ED%9A%8C%EC%B0%A8-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@chamsae_dev/Flutter-%EC%95%B1-%EA%B0%9C%EB%B0%9C-%EA%B8%B0%EC%B4%88-1%ED%9A%8C%EC%B0%A8-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%ED%8E%98%EC%9D%B4%EC%A7%80-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Mon, 26 May 2025 10:36:42 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/2b145072-0cff-4a1e-8868-b7c745555f82/image.png" alt=""></p>
<pre><code>import &#39;package:flutter/material.dart&#39;;

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: Text(
            &#39;Hello Flutter&#39;,
            style: TextStyle(
              fontSize: 35,
              fontWeight: FontWeight.bold,
              color: Colors.black,
            ),
          ),
          centerTitle: true, // Android에서도 타이틀 가운데 정렬
        ),
        body: SingleChildScrollView(
          child: Padding(
            padding: const EdgeInsets.all(24.0), 
            // EdgeInsets.only: 특정 방위만, EdgeInsets.symmetric: 위/아래, 좌/우
            child: Column(
              children: [
                Padding(
                  padding: const EdgeInsets.all(32.0),
                  child: Image.network(
                    &#39;https://cdn-icons-png.flaticon.com/512/1271/1271847.png&#39;,
                    width: 81,
                  ),
                ),
                TextField(
                  decoration: InputDecoration(
                    labelText: &#39;이메일&#39;,
                  ),
                ),
                TextField(
                  obscureText: true,
                  decoration: InputDecoration(
                    labelText: &#39;비밀번호&#39;,
                  ),
                ),
                Container(
                  width: double.infinity,
                  height: 40,
                  margin: EdgeInsets.only(top: 16.0),
                  child: ElevatedButton(
                    onPressed: () {},
                    child: Text(
                      &#39;로그인&#39;,
                      style: TextStyle(
                        color: Colors.black,
                        fontWeight: FontWeight.bold,
                      ),
                    ),
                    style: ElevatedButton.styleFrom(
                      backgroundColor: Colors.white,
                    ),
                  ),
                ),
                TextButton(
                  onPressed: () {},
                  child: Text(&#39;data&#39;),
                ),
                IconButton.filled(
                  onPressed: () {},
                  icon: Icon(Icons.verified_user),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[No Directionality Widget Found]]></title>
            <link>https://velog.io/@chamsae_dev/No-Directionality-Widget-Found</link>
            <guid>https://velog.io/@chamsae_dev/No-Directionality-Widget-Found</guid>
            <pubDate>Tue, 15 Apr 2025 13:54:26 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/f56b69cf-4c64-4a27-91bd-b17ee5b827e1/image.png" alt=""></p>
<p>return에 MaterialApp 위젯 추가할 것.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Column & Row]]></title>
            <link>https://velog.io/@chamsae_dev/Column-Row</link>
            <guid>https://velog.io/@chamsae_dev/Column-Row</guid>
            <pubDate>Tue, 15 Apr 2025 13:31:39 GMT</pubDate>
            <description><![CDATA[<p>Column은 수직 방향으로 위젯을 배치하는 기준선과 같다.
Row는 수평 방향으로 ···</p>
<p>사용방법 (Row도 동일함, 가독성을 위해 <code>&lt;Widget&gt;</code>을 작성했다. 사용하지 않아도 괜찮다.)</p>
<pre><code>body: Column(
    childern: &lt;Widget&gt; [...]
)</code></pre><p style="text-align: center;">
  <img src="https://velog.velcdn.com/images/chamsae_dev/post/c68f538f-250c-42ab-a31c-25d4366321fd/image.png" style="width: 600px; text-align: center;">
</p>

<h3 id="mainaxisalignment">mainAxisAlignment</h3>
<p>main축 위치 지정를 지정합니다.
mainAxisAlignment: MainAxisAlignment.&lt;&gt;
start: 위 혹은 왼쪽
center: 가운데
end: 아래 혹은 오른쪽
spaceAround: 자식들 사이 일정한 가격, 간격의 반을 양 끝 부분에 줌
spaceBetween: 자식들 사이 일정한 간격
spaceEvenly: 양 끝과 자식들 사이의 일정한 간격</p>
<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/4911e476-335b-4aaa-b8c0-7d0b423fafac/image.png" alt=""></p>
<h3 id="mainaxissize">mainAxisSize</h3>
<p>컬럼 사이즈를 지정합니다.
mainAxisSize: MainAxisSize.&lt;&gt;
max: 자식 위젯 상관없이 가능한 최대 사이즈
min: 자식 위젯만큼만</p>
<h3 id="crossaxisalignment">CrossAxisAlignment</h3>
<p>가로 축의 위치를 지정합니다.
crossAxisAlignment: CrossAxisAlignment.&lt;&gt;
start: 가로 축에서 왼쪽
center: 가로 축에서 가운데
end: 가로 축에서 오른쪽
strech: 가로영역을 최대로 확장</p>
<h3 id="verticaldirection">VerticalDirection</h3>
<p>위젯의 세로 방향 순서를 정해줍니다.
verticalDirection: VerticalDirection.&lt;&gt;
down: 코드 순서대로 그려줌
up: 코드 순서상 아래 위젯부터 그림</p>
<h3 id="expanded">Expanded</h3>
<p>Column안에 있는 자식 위젯을 Expanded로 감싸면 감싼 위젯을 최대 영역으로 확장하게 됩니다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Flutter Scaffold]]></title>
            <link>https://velog.io/@chamsae_dev/Flutter-Scaffold</link>
            <guid>https://velog.io/@chamsae_dev/Flutter-Scaffold</guid>
            <pubDate>Tue, 08 Apr 2025 18:26:12 GMT</pubDate>
            <description><![CDATA[<p>건축 현장의 가설물은 영어로 Scaffold라고 부릅니다. 이름에서 알 수 있듯이 Scaffold 위젯은 페이지 제작을 돕는 가설물입니다. 이 위젯 덕분에 틀 안에서 원하는 위젯 배치와 같은 작업을 할 수 있습니다.</p>
<p><img src="https://velog.velcdn.com/images/chamsae_dev/post/55757f63-404f-4351-86fa-3844109b813c/image.png" alt=""></p>
<h3 id="사용-예시">사용 예시</h3>
<pre><code>import &#39;package:flutter/material.dart&#39;;

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(),
    );
  }
}
</code></pre><p>MaterialApp home에 감싸져 있음.</p>
]]></description>
        </item>
    </channel>
</rss>