Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
movie_app_flutter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ernanda
movie_app_flutter
Commits
2f1bd981
Commit
2f1bd981
authored
Feb 17, 2022
by
valdi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pisah api
parent
4dbe4b83
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
105 additions
and
22 deletions
+105
-22
api.dart
lib/api.dart
+69
-0
api_movie_detail.dart
lib/api_movie_detail.dart
+0
-0
main_page.dart
lib/main_page.dart
+36
-22
No files found.
lib/api.dart
0 → 100644
View file @
2f1bd981
import
'dart:convert'
;
import
'dart:async'
;
import
'package:flutter/material.dart'
;
import
'package:http/http.dart'
as
http
;
import
'package:movie_app/config.dart'
;
import
'package:movie_app/main.dart'
;
class
ApiPopular
{
final
String
id
;
final
String
title
;
final
String
poster_path
;
final
String
vote_average
;
ApiPopular
(
this
.
id
,
this
.
title
,
this
.
poster_path
,
this
.
vote_average
);
factory
ApiPopular
.
createPopular
(
Map
<
String
,
dynamic
>
json
)
{
return
ApiPopular
(
json
[
'id'
].
toString
(),
json
[
'title'
],
json
[
'poster_path'
],
json
[
'vote_average'
].
toString
());
}
static
Future
<
List
<
ApiPopular
>>
GetPopular
()
async
{
String
apiUrl
=
"https://api.themoviedb.org/3/movie/popular?api_key="
+
apiKey
+
"&language=en-US&page=1"
;
var
apiResult
=
await
http
.
get
(
Uri
.
parse
(
apiUrl
));
var
jsonObject
=
jsonDecode
(
apiResult
.
body
);
List
<
dynamic
>
listPopular
=
(
jsonObject
as
Map
<
String
,
dynamic
>)[
'results'
];
List
<
ApiPopular
>
populars
=
[];
for
(
int
i
=
0
;
i
<
listPopular
.
length
;
i
++)
populars
.
add
(
ApiPopular
.
createPopular
(
listPopular
[
i
]));
return
populars
;
}
}
class
ApiNowPlaing
{
final
String
id
;
final
String
title
;
final
String
poster_path
;
final
String
vote_average
;
ApiNowPlaing
(
this
.
id
,
this
.
title
,
this
.
poster_path
,
this
.
vote_average
);
factory
ApiNowPlaing
.
createNowPlaying
(
Map
<
String
,
dynamic
>
json
)
{
return
ApiNowPlaing
(
json
[
'id'
].
toString
(),
json
[
'title'
],
json
[
'poster_path'
],
json
[
'vote_average'
].
toString
());
}
static
Future
<
List
<
ApiNowPlaing
>>
GetNowPlaying
()
async
{
String
apiUrl
=
"https://api.themoviedb.org/3/movie/now_playing?api_key="
+
apiKey
+
"&language=en-US&page=1"
;
var
apiResult
=
await
http
.
get
(
Uri
.
parse
(
apiUrl
));
var
jsonObject
=
jsonDecode
(
apiResult
.
body
);
List
<
dynamic
>
listNowPlaying
=
(
jsonObject
as
Map
<
String
,
dynamic
>)[
'results'
];
List
<
ApiNowPlaing
>
nowplayings
=
[];
for
(
int
i
=
0
;
i
<
listNowPlaying
.
length
;
i
++)
nowplayings
.
add
(
ApiNowPlaing
.
createNowPlaying
(
listNowPlaying
[
i
]));
return
nowplayings
;
}
}
lib/api_movie_detail.dart
0 → 100644
View file @
2f1bd981
lib/main_page.dart
View file @
2f1bd981
...
@@ -4,6 +4,7 @@ import 'dart:async';
...
@@ -4,6 +4,7 @@ import 'dart:async';
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'package:http/http.dart'
as
http
;
import
'package:http/http.dart'
as
http
;
import
'package:movie_app/config.dart'
;
import
'package:movie_app/config.dart'
;
import
'package:movie_app/api.dart'
;
import
'package:movie_app/main.dart'
;
import
'package:movie_app/main.dart'
;
...
@@ -18,28 +19,42 @@ class _MainPageState extends State<MainPage> {
...
@@ -18,28 +19,42 @@ class _MainPageState extends State<MainPage> {
var
_Popular
=
[];
var
_Popular
=
[];
var
_nowPlaying
=
[];
var
_nowPlaying
=
[];
void
GetPopular
()
async
{
// void GetPopular() async {
var
response
=
await
http
.
get
(
Uri
.
parse
(
// var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"
));
// "https://api.themoviedb.org/3/movie/popular?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listPopular = (jsonObject as Map<String, dynamic>)['results'];
var
jsonObject
=
jsonDecode
(
response
.
body
);
// setState(() {
List
<
dynamic
>
listPopular
=
(
jsonObject
as
Map
<
String
,
dynamic
>)[
'results'
];
// _Popular = listPopular;
// });
// }
void
GetPopular
()
async
{
var
apiPopular
=
await
ApiPopular
.
GetPopular
();
setState
(()
{
setState
(()
{
_Popular
=
list
Popular
;
_Popular
=
api
Popular
;
});
});
}
}
void
GetNowPlaying
()
async
{
// void GetNowPlaying() async {
var
response
=
await
http
.
get
(
Uri
.
parse
(
// var response = await http.get(Uri.parse(
"https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"
));
// "https://api.themoviedb.org/3/movie/now_playing?api_key=0a9b845116028881ddaaec631f987469&language=en-US&page=1"));
// var jsonObject = jsonDecode(response.body);
// List<dynamic> listNowPlaying =
// (jsonObject as Map<String, dynamic>)['results'];
var
jsonObject
=
jsonDecode
(
response
.
body
);
// setState(() {
List
<
dynamic
>
listNowPlaying
=
// _nowPlaying = listNowPlaying;
(
jsonObject
as
Map
<
String
,
dynamic
>)[
'results'
];
// });
// }
void
GetNowPlaying
()
async
{
var
apiNowPlaying
=
await
ApiNowPlaing
.
GetNowPlaying
();
setState
(()
{
setState
(()
{
_nowPlaying
=
list
NowPlaying
;
_nowPlaying
=
api
NowPlaying
;
});
});
}
}
...
@@ -91,7 +106,6 @@ class _MainPageState extends State<MainPage> {
...
@@ -91,7 +106,6 @@ class _MainPageState extends State<MainPage> {
borderRadius:
BorderRadius
.
circular
(
20
)),
borderRadius:
BorderRadius
.
circular
(
20
)),
margin:
EdgeInsets
.
fromLTRB
(
10
,
30
,
10
,
30
),
margin:
EdgeInsets
.
fromLTRB
(
10
,
30
,
10
,
30
),
padding:
EdgeInsets
.
fromLTRB
(
10
,
5
,
5
,
5
),
padding:
EdgeInsets
.
fromLTRB
(
10
,
5
,
5
,
5
),
// ignore: prefer_const_constructors
child:
TextField
(
child:
TextField
(
style:
TextStyle
(
color:
Color
(
0xFFD2D3D8
)),
style:
TextStyle
(
color:
Color
(
0xFFD2D3D8
)),
decoration:
InputDecoration
(
decoration:
InputDecoration
(
...
@@ -135,10 +149,10 @@ class _MainPageState extends State<MainPage> {
...
@@ -135,10 +149,10 @@ class _MainPageState extends State<MainPage> {
for
(
int
i
=
0
;
i
<
_Popular
.
length
;
i
++)
for
(
int
i
=
0
;
i
<
_Popular
.
length
;
i
++)
CardPopular
(
CardPopular
(
"https://image.tmdb.org/t/p/w500"
+
"https://image.tmdb.org/t/p/w500"
+
_Popular
[
i
]
[
'poster_path'
]
,
_Popular
[
i
]
.
poster_path
,
_Popular
[
i
]
[
'title'
]
,
_Popular
[
i
]
.
title
,
_Popular
[
i
]
[
'vote_average'
]
.
toString
(),
_Popular
[
i
]
.
vote_average
.
toString
(),
_Popular
[
i
]
[
'id'
]
.
toString
()),
_Popular
[
i
]
.
id
.
toString
()),
],
],
),
),
),
),
...
@@ -172,10 +186,10 @@ class _MainPageState extends State<MainPage> {
...
@@ -172,10 +186,10 @@ class _MainPageState extends State<MainPage> {
for
(
int
i
=
0
;
i
<
_nowPlaying
.
length
;
i
++)
for
(
int
i
=
0
;
i
<
_nowPlaying
.
length
;
i
++)
CardPopular
(
CardPopular
(
"https://image.tmdb.org/t/p/w500"
+
"https://image.tmdb.org/t/p/w500"
+
_nowPlaying
[
i
]
[
'poster_path'
]
,
_nowPlaying
[
i
]
.
poster_path
,
_nowPlaying
[
i
]
[
'title'
]
,
_nowPlaying
[
i
]
.
title
,
_nowPlaying
[
i
]
[
'vote_average'
]
.
toString
(),
_nowPlaying
[
i
]
.
vote_average
.
toString
(),
_nowPlaying
[
i
]
[
'id'
]
.
toString
()),
_nowPlaying
[
i
]
.
id
.
toString
()),
],
],
),
),
),
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment