본문 바로가기
  • 인공지능
  • 블록체인
  • 정보보안
코딩 알로하 :: two/하이브리드앱

패스트캠퍼스 챌린지 23일차

by nathan03 2021. 11. 23.
반응형

# 강의 제목 : 누적다운로드 120만+ 1인 개발자와 함께하는 앱 개발 입문 Online

# 강의 목표 : 기초부터 운영까지 앱 개발의 전체 프로세스를 이해한다. 
                  내 이름으로 된 앱을 최대 10개까지 만들어 출시할 수 있다. 
                  앱 개발자로 성장할 수 있는 초석을 다진다. 
                  반응 얻는 앱의 특징과 노하우를 알아간다. 
                  향후 강의 없이도 나만의 앱을 개발할수 있는 실력을 가진다. 

# 강의 요약 : 프로그램 설치부터 기본 문법, 광고 다는 법, 클론코딩을 진행하며 필수 지식을 학습한다. 
                 총 10개의 다른 주제로 실제 사용화 가능한 수준의 앱을 만들어본다.
                 나의 앱을 세상에 선보이기 위한 개발자 등록 및 배포를 진행한다. 
                 강사님의 리뷰/클레임 대응사례 등 앱 성공 포인트를 참고해 1인 개발자로서의 입지를 다진다. 

 # 강의 목차 : Flutter 실전 앱 제작
                    - 앱 기능 및 디자인 설계 및 초기 구조 만들기 (옷추천앱) - 23일차 
                    - 날씨 데이터 모델링 - 23일차  
                    - 날씨 화면 만들기 1  
                    - 날씨 화면 만들기 2
                    - 날씨별 커스텀
                    - 나만의 옷장
                         

# 강의 화면 : 

 

# 강의 내용 : 앱 기능 및 디자인 설계 및 초기 구조 만들기 (옷추천앱)
                  날씨 데이터 모델링

1. 앱 디자인 
  - 현재 날씨 상황을 나타낼수 있음
  - 위치 별 날씨 상황을 나타낼수 있음
  - 날씨 예상을 조회할 수 있음
  - 날씨별 추천하는 옷을 보여줄 수 있음
  - 온도별 옷을 다르게 설정할 수 있음 

2. 데이터 설계 (날씨 데이터 저장)
  - 날씨 저장
  - 강수 확률
  - 강수량 
  - 하늘 상태
  - 습도 
  - 기온 
  - 풍속 

3. 동네 날씨 예보 OPEN API 
강수확률, 습도, 강수량, 강수형태, 기온, 풍속 데이터 사용

4. 동네 날씨 예보
  가. 동네 예보 base_time
     0200, 0500, 0800, 1100, 1400, 1700, 2000, 2300
     Base time 이후 10분뒤 호출 가능 

  나. 하늘 상태 

5. 화면 설계 
  가. 메인 화면 
       - 날씨, 옷차림 표현 

  나. 옷차림 변경 화면 
       - 온도에 맞게 옷차림 변경 기능 추가 

  다. 위치 변경하기 

6. Shared Preference

- 데이터 베이스에 저장하지 않고 내부 다른 저장소에 저장할 수 있는 기능
- 사용자 설정 정보를 저장하기 용이함
- 사용자 위치 정보를 저장할 때 사용할 수 있음

7. 데이터 아이템 구조 

 {
            "baseDate": "20210714",
            "baseTime": "0500",
            "category": "WSD",
            "fcstDate": "20210714",
            "fcstTime": "0600",
            "fcstValue": "10.7",
            "nx": 1,
            "ny": 1
   }

 

8. 앱 디자인


9. 공공데이터 포털 (기상청 동네 예보 조회 서비스)
https://www.data.go.kr/
 

10. 초단기예보조회

11. 앱 구현을 위한 기초 구조 만들기 

# main.dart

# weather.dart

class Weather{
  String date;
  int time;
  int pop;
  int pty;
  String pcp;
  int sky;
  double wsd;
  int tmp;
  int reh;

  Weather({this.date, this.time, this.pop, this.pty, this.pcp, this.sky,
  this.wsd, this.tmp, this.reh});

  factory Weather.fromJson(Map<String, dynamic> data){

    return Weather(
      date: data["fcstDate"],
      time: int.tryParse(data["fcstTime"] ?? "") ?? 0,
      pop: int.tryParse(data["POP"] ?? "") ?? 0,
      pty: int.tryParse(data["PTY"] ?? "") ?? 0,
      pcp: data["PCP"] ?? "",
      sky: int.tryParse(data["SKY"] ?? "") ?? 0,
      wsd: double.tryParse(data["WSD"] ?? "") ?? 0,
      tmp: int.tryParse(data["TMP"] ?? "") ?? 0,
      reh: int.tryParse(data["REH"] ?? "") ?? 0,
    );
  }
}

 

# 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

반응형

댓글