- 2 weeks challenge of dart and flutter
- UI design challenge (7/4)
- Pomodoro timer with extra functions (7/6)
- Display movies on the home screen, and shows details of a tapped movie (7/7~9)
- test
- Update home screen height(홈스크린 길이 업데이트)
- Update home screen by adding SingleScrollView to enable dragging up and down.(홈스크린 SingleScrollView 추가로 위아래로 드레그 가능하게 업데이드)
-
result sample(결과) : https://imgur.com/a/mQ8Tq5h
-
screens(화면 구성) : home screen, detail screen
-
home screen : Display popular, currently showing, and upcoming movies on the screen through their respective APIs.(인기있는, 상영중인, 개봉예정인 영화를 각각의 api를 통해 화면에 출력)
- popular movies(인기) : https://movies-api.nomadcoders.workers.dev/popular
- now on cinemas(상영중) : https://movies-api.nomadcoders.workers.dev/now-playing
- coming soon(개봉예정) : https://movies-api.nomadcoders.workers.dev/coming-soon
-
detail screen : details of taped movie(탭한 영화의 디테일을 화면에 출력)
-
get id from home_screen for using detail api(home_screen을 통해 id를 받아서 디테일 api를 사용)
-
useing post as a background(뒷 배경화면으로 포스터 출력) : poster_path
-
title(타이틀) : title
-
vote_average(평점) : vote_average
-
runtime(상영시간) : runtime
-
genre(장르) : genre_ids
-
storyline by api(api를 통한 스토리라인 출력) : overview
-
ticket issue button pops "ticket issued" massege(구매버튼을 누르면 "ticket issued" 메시지 출력)
last challenge : movie application
-
Home 스크린은 아래와 같은 기능을 갖고있어야 합니다.
- 가장 인기 있는 영화 목록이 표시되어야 합니다.
- 극장에서 상영 중인 영화 목록이 표시되어야 합니다.
- 곧 개봉할 영화 목록이 표시되어야 합니다.
-
movie를 탭하면 세부정보 화면으로 이동해야 합니다.
- 세부정보 화면에는 다음이 표시되어야 합니다.
- 영화의 포스터.
- 영화의 제목.
- 영화의 등급.
- 영화의 개요.
- 영화의 장르.
- 세부정보 화면에는 다음이 표시되어야 합니다.
-
popular movie application
-
popular movie API(https://movies-api.nomadcoders.workers.dev/popular) :
{
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/oqP1qEZccq5AD9TVTIaO6IGUj7o.jpg",
"genre_ids": [
14,
28,
12
],
"id": 455476,
"original_language": "en",
"original_title": "Knights of the Zodiac",
"overview": "When a headstrong street orphan, Seiya, in search of his abducted sister unwittingly taps into hidden powers, he discovers he might be the only person alive who can protect a reincarnated goddess, sent to watch over humanity. Can he let his past go and embrace his destiny to become a Knight of the Zodiac?",
"popularity": 3369.887,
"poster_path": "/qW4crfED8mpNDadSmMdi7ZDzhXF.jpg",
"release_date": "2023-04-27",
"title": "Knights of the Zodiac",
"video": false,
"vote_average": 6.5,
"vote_count": 312
},
}
- now on cinema api(상영중인 영화 API) : https://movies-api.nomadcoders.workers.dev/now-playing
{
"dates": {
"maximum": "2023-07-12",
"minimum": "2023-05-25"
},
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/oqP1qEZccq5AD9TVTIaO6IGUj7o.jpg",
"genre_ids": [
14,
28,
12
],
"id": 455476,
"original_language": "en",
"original_title": "Knights of the Zodiac",
"overview": "When a headstrong street orphan, Seiya, in search of his abducted sister unwittingly taps into hidden powers, he discovers he might be the only person alive who can protect a reincarnated goddess, sent to watch over humanity. Can he let his past go and embrace his destiny to become a Knight of the Zodiac?",
"popularity": 3369.887,
"poster_path": "/qW4crfED8mpNDadSmMdi7ZDzhXF.jpg",
"release_date": "2023-04-27",
"title": "Knights of the Zodiac",
"video": false,
"vote_average": 6.5,
"vote_count": 312
},
- coming movie api(상영예정 영화 API) : https://movies-api.nomadcoders.workers.dev/coming-soon
{
"dates": {
"maximum": "2023-08-01",
"minimum": "2023-07-13"
},
"page": 1,
"results": [
{
"adult": false,
"backdrop_path": "/oqP1qEZccq5AD9TVTIaO6IGUj7o.jpg",
"genre_ids": [
14,
28,
12
],
"id": 455476,
"original_language": "en",
"original_title": "Knights of the Zodiac",
"overview": "When a headstrong street orphan, Seiya, in search of his abducted sister unwittingly taps into hidden powers, he discovers he might be the only person alive who can protect a reincarnated goddess, sent to watch over humanity. Can he let his past go and embrace his destiny to become a Knight of the Zodiac?",
"popularity": 3369.887,
"poster_path": "/qW4crfED8mpNDadSmMdi7ZDzhXF.jpg",
"release_date": "2023-04-27",
"title": "Knights of the Zodiac",
"video": false,
"vote_average": 6.5,
"vote_count": 312
},
- 영화에 대한 세부 정보
- https://movies-api.nomadcoders.workers.dev/movie?id=1
- attach value of id next to {id=} to access a movie detail(id= 를 API에 저장된 아이디로 변환시 세부정보 접근)
- material(요소) : poster,title, title, vote_average, overview, genre, runtime(포스터, 제목, 평점, 개요, 장르, 런타임)
- keys : poster_path, title, vote_average, overview, genre_ids, runtime
{
"adult": false,
"backdrop_path": "/oqP1qEZccq5AD9TVTIaO6IGUj7o.jpg",
"belongs_to_collection": null,
"budget": 60000000,
"genres": [
{
"id": 14,
"name": "Fantasy"
},
{
"id": 28,
"name": "Action"
},
{
"id": 12,
"name": "Adventure"
}
],
"homepage": "https://kotzmovie.com",
"id": 455476,
"imdb_id": "tt6528290",
"original_language": "en",
"original_title": "Knights of the Zodiac",
"overview": "When a headstrong street orphan, Seiya, in search of his abducted sister unwittingly taps into hidden powers, he discovers he might be the only person alive who can protect a reincarnated goddess, sent to watch over humanity. Can he let his past go and embrace his destiny to become a Knight of the Zodiac?",
"popularity": 3355.755,
"poster_path": "/qW4crfED8mpNDadSmMdi7ZDzhXF.jpg",
"production_companies": [
{
"id": 11341,
"logo_path": "/xytTBODEy3p20ksHL4Ftxr483Iv.png",
"name": "Stage 6 Films",
"origin_country": "US"
},
{
"id": 5542,
"logo_path": "/ayE4LIqoAWotavo7xdvYngwqGML.png",
"name": "Toei Animation",
"origin_country": "JP"
}
],
"production_countries": [
{
"iso_3166_1": "JP",
"name": "Japan"
},
{
"iso_3166_1": "US",
"name": "United States of America"
}
],
"release_date": "2023-04-27",
"revenue": 6794519,
"runtime": 112,
"spoken_languages": [
{
"english_name": "English",
"iso_639_1": "en",
"name": "English"
},
{
"english_name": "Hungarian",
"iso_639_1": "hu",
"name": "Magyar"
}
],
"status": "Released",
"tagline": "Go beyond your destiny.",
"title": "Knights of the Zodiac",
"video": false,
"vote_average": 6.482,
"vote_count": 310
}
-
POMODORO TIMER challenge
- 목표 :
- 앱은 아래와 같은 기능을 갖고있어야 합니다.
- 유저가 타이머의 시간(15, 20, 25, 30, 35)을 선택할 수 있어야 합니다.
- 유저가 타이머를 재설정 (리셋)할 수 있어야 합니다.
- 유저가 한 사이클을 완료한 횟수를 카운트해야 합니다.
- 유저가 4개의 사이클(1라운드)를 완료한 횟수를 카운트해야 합니다.
- 각 라운드가 끝나면 사용자가 5분간 휴식을 취할 수 있어야 합니다.
- 목표 :
-
reverse the taped btn's back and foreground color(버튼별 클릭시 버튼색 반전으로 선택된 버튼 확인 가능)
-
result sample(결과) : https://imgur.com/a/VFubQtW
- UI Clone Challenge
- 결과 : https://imgur.com/a/9KUttrb
- essential settings of flutter(flutter 초기 세팅)
- all flutter materials are inhered in material(모든 flutter 요소는 material에 속해있다.)
- combination of widgets are how apps are creating in flutter(widget들의 조합으로 어플의 모든 기능이 구현된다.)
- project name(프로젝트 이름): day_one
- current file(해당 파일): DayFive.dart
- First code challenge
- Challenge goals: Using everything we learned, make a Dictionary class with the following methods:
- Student std=new Student();
- var std=Student;
- replace with instead of extends to using variables and methods(extends 대신 with로 변수나 메소드 사용 가능)
- Player.info() is format of constructor(Player.info()형식으로 생성자 사용, 초기화 가능)
- Named functions use curly braces for parameters. In this case, the parameter names and values are added like a map, regardless of the order.(named function은 parameter에 중괄호를 쳐준다 그럴경우 순서에 상관없이 map처럼 파라미터 이름과 value를 추가한다.)
- Even when not assigning values like in a constructor, you can set a default value. (생성자처럼 번수를 주지 않았을 경우에도 default로 값을 지정해줄 수 있다.)
- left ?? right.
- (left==!null)? left : right
- collection if/for : using loop, of if to add/update variable into a list
- set vs list : list keeps all values even values are same, set's values have to be unique
- dynamic == python variable like
- const == like 'final' but using if the program do not have value
- String? == String variable can have null value