위젯처럼 홈 화면에서 현재 날씨 보여주기

2025. 6. 17. 09:00·Flutter/Flutter 날씨 앱 만들기
728x90
반응형

모든 사용자가 앱을 직접 켜는 건 귀찮다.
홈 화면에서 바로 현재 날씨를 확인할 수 있다면 얼마나 편할까?

이번 글에서는 Flutter로 날씨 앱을 만들 때, 위젯처럼 보이는 요약 날씨 UI를 앱 첫 화면 혹은 특정 영역에 표시하는 방법을 정리해본다.


📌 목표 UI 구성

아래와 같은 구성으로 간단한 날씨 요약 카드를 만들자:

  • 현재 위치 또는 선택된 도시
  • 현재 온도 + 날씨 상태
  • 작은 아이콘 또는 애니메이션
┌────────────────────────────┐  
│  🌤  Seoul                 │  
│  24°C  |  Clear Sky        │  
└────────────────────────────┘

🌐 날씨 데이터 불러오기

Future<Map<String, dynamic>> fetchWeather(String city) async {
  final apiKey = 'YOUR_API_KEY';
  final url = 
    'https://api.openweathermap.org/data/2.5/weather?q=$city&appid=$apiKey&units=metric';
  
  final response = await http.get(Uri.parse(url));
  if (response.statusCode == 200) {
    return jsonDecode(response.body);
  } else {
    throw Exception('날씨 정보를 가져오지 못했습니다.');
  }
}

앱 첫 화면 또는 홈 탭 진입 시 바로 이 데이터를 요청하면 된다.


📱 위젯 스타일 카드 UI 만들기

FutureBuilder(
  future: fetchWeather('Seoul'),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return CircularProgressIndicator();
    final data = snapshot.data!;
    return Card(
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)),
      elevation: 4,
      color: Colors.blue.shade50,
      child: Padding(
        padding: EdgeInsets.all(16),
        child: Row(
          children: [
            Image.network(
              "http://openweathermap.org/img/wn/${data['weather'][0]['icon']}@2x.png",
              width: 48,
            ),
            SizedBox(width: 16),
            Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text("${data['name']}", style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)),
                Text("${data['main']['temp']}°C | ${data['weather'][0]['main']}",
                  style: TextStyle(fontSize: 16),
                ),
              ],
            )
          ],
        ),
      ),
    );
  },
)

간결하고 깔끔한 디자인으로 홈 화면 어디에 두어도 위화감 없이 자연스럽다.


💡 추가 개선 아이디어

  • 카드 클릭 시 → 전체 날씨 상세 페이지로 이동
  • 다크모드 대응: 카드 색상 조건 분기
  • 날씨 상태에 따라 아이콘 컬러/배경 변경
  • 도시 여러 개를 스크롤 가능한 작은 카드 형태로 나열

🧘 마무리하며

Flutter 날씨 앱에서 작은 위젯 UI는 날씨를 더 가깝고 쉽게 느끼게 해주는 장치다.

아주 작은 UI 하나가 전체 앱 경험을 바꾼다.
Flutter로 만든 감성 날씨 앱, 홈 화면에서부터 시작해보자.

✍️ 이 글은 터미널 밖으로 나온 개발자의 Flutter 날씨 앱 만들기 여정입니다.

728x90
반응형

'Flutter > Flutter 날씨 앱 만들기' 카테고리의 다른 글

단위 설정 (섭씨/화씨) 변경 기능 구현  (0) 2025.06.16
즐겨찾는 도시 날씨 추가 및 리스트 보기  (0) 2025.06.15
아이콘과 애니메이션으로 날씨 표현 개선  (1) 2025.06.14
온도, 습도, 바람 정보 시각화하기  (0) 2025.06.13
날씨에 따라 배경 바꾸기 — 애니메이션과 날씨 감성 UI  (2) 2025.06.12
'Flutter/Flutter 날씨 앱 만들기' 카테고리의 다른 글
  • 단위 설정 (섭씨/화씨) 변경 기능 구현
  • 즐겨찾는 도시 날씨 추가 및 리스트 보기
  • 아이콘과 애니메이션으로 날씨 표현 개선
  • 온도, 습도, 바람 정보 시각화하기
코드를 걷는 사람
코드를 걷는 사람
devwanderer 님의 블로그 입니다.
  • 코드를 걷는 사람
    터미널 밖으로 나온 개발자
    코드를 걷는 사람
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Flutter
        • Flutter 게시판 앱 만들기
        • Flutter 뉴스 앱 만들기
        • Flutter 메모 앱 만들기
        • Flutter 캘린더 앱 만들기
        • Flutter 날씨 앱 만들기
      • Next.js
      • Ruby On Rails
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    RubyOnRails
    뉴스앱
    flutter앱개발
    openweather
    캘린더앱
    Nextjs
    ActiveRecord
    북마크기능
    모바일앱개발
    Flutter
    flutter디자인
    flutter기초
    개발블로그
    flutter상태관리
    UI디자인
    rails보안
    table_calendar
    감성앱
    UIUX
    정적사이트
    flutter개발
    flutter게시판
    코드를걷는사람
    날씨앱
    Firebase
    메모앱
    백엔드개발
    다크모드
    flutterui
    fluttertips
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
코드를 걷는 사람
위젯처럼 홈 화면에서 현재 날씨 보여주기
상단으로

티스토리툴바