Giter VIP home page Giter VIP logo

morec's Introduction

notice:

  • 豆瓣接口已全部无法使用,本项目也无法正常运行,近期打算更换为 imdb 的接口

🎥 Morec - Flutter 版电影应用

这是一个非常精美的 Flutter 版电影客户端,利用豆瓣现有的 Api,打造了一个完整的电影展示 App。细节十分完善,是一个经过完整设计的产品而非 Demo。

已经实现的功能有:

  • 热门文章 banner
  • 正在热映的电影
  • 即将上映的电影
  • 分类浏览
  • 电影搜索
  • 电影榜单:top250、北美票房榜、一周新电影榜、一周口碑榜
  • 电影详情:简介、剧照、预告片、电影短评
  • 影人详情:影人简介、相关作品、相册
  • 长按保存剧照

Download

Android: Apk 下载地址

或者扫描二维码下载:

iOS: 暂无。

Screenshot

1. Screenshot for iOS

screenshot for iOS

screenshot for iOS

2. Screenshot for Android

screenshot for Android

screenshot for Android

Set up

1. Clone the repo

$ git clone https://github.com/Mayandev/morec.git
$ cd morec

2. Running

flutter run

Dependency

End

这个项目是我的本科毕业设计,此库供大家学习 Flutter 使用。在这基础上,我创建了一个新的 Repo,使用 Django 搭建服务器,并加入机器学习相关算法,进行电影推荐,如果你感兴趣,可以点击链接访问。

如果你喜欢这个项目,欢迎给我一个 star,这对我来说是莫大的鼓励与认可。

欢迎在 Github 主页关注我的其他项目。

如果对这个项目有任何建议或意见,欢迎在 Issues 提出。

morec's People

Contributors

mayandev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

morec's Issues

运行报错

Launching lib/main.dart on 127.0.0.1:62001 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...

Compiler message:
file://.pub-cache/hosted/pub.dartlang.org/cached_network_image-0.5.1/lib/cached_network_image.dart:199:38: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.

  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    oldImageStream?.removeListener(_handleImageChanged);
    ^
    file:////Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/cached_network_image-0.5.1/lib/cached_network_image.dart:200:32: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    _imageStream.addListener(_handleImageChanged);
    ^
    file:////Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/cached_network_image-0.5.1/lib/cached_network_image.dart:210:34: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    _imageStream?.removeListener(_handleImageChanged);
    ^
    file:////Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/cached_network_image-0.5.1/lib/cached_network_image.dart:465:31: Error: The argument type 'Null Function(StringBuffer)' can't be assigned to the parameter type 'Iterable Function()'.
  • 'StringBuffer' is from 'dart:core'.
  • 'Iterable' is from 'dart:core'.
  • 'DiagnosticsNode' is from 'package:flutter/src/foundation/diagnostics.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/foundation/diagnostics.dart').
    Try changing the type of the parameter, or casting the argument to 'Iterable Function()'.
    informationCollector: (StringBuffer information) {
    ^
    file:////Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:188:29: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:////Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.removeListener(imageListener);
    ^
    file:////Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:194:31: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.removeListener(imageListener);
    ^
    file:///Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/palette_generator-0.1.1/lib/palette_generator.dart:201:24: Error: The argument type 'void Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.addListener(imageListener);
    ^
    file:///Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/photo_view-0.2.5/lib/photo_view.dart:279:24: Error: The argument type 'Null Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.addListener(listener);
    ^
    file:///Flutter/flutter/.pub-cache/hosted/pub.dartlang.org/photo_view-0.2.5/lib/photo_view.dart:281:29: Error: The argument type 'Null Function(ImageInfo, bool)' can't be assigned to the parameter type 'ImageStreamListener'.
  • 'ImageInfo' is from 'package:flutter/src/painting/image_stream.dart' ('file:///Flutter/flutter/packages/flutter/lib/src/painting/image_stream.dart').
  • 'ImageStreamListener' is from 'package:flutter/src/painting/image_stream.dart' ('file:////flutter/packages/flutter/lib/src/painting/image_stream.dart').
    Try changing the type of the parameter, or casting the argument to 'ImageStreamListener'.
    stream.removeListener(listener);
    ^
    Compiler failed on /movie/lib/main.dart

FAILURE: Build failed with an exception.

  • Where:
    Script '/Flutter/flutter/packages/flutter_tools/gradle/flutter.gradle' line: 648

  • What went wrong:
    Execution failed for task ':app:compileflutterBuildDebugandroid-arm'.

Process 'command '/Flutter/flutter/bin/flutter'' finishHzed with non-zero exit value 1

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 26s
Finished with error: Gradle task assembleDebug failed with exit code 1

Loading 动画卡壳问题

我把项目打包到手机以后,发现有一些不是很完美的地方:首页下拉刷新以后出出现的Loading 动画,总是要卡壳一下(进到详情页面的Loading也有这个问题),所以这个有解决的办法吗?

状态栏显示问题,跳转新页面后返回显示错误

Mayandev,你好:
发现一个小bug,在我的页面,状态栏显示是白色的,当点击项目地址跳转后,再返回时状态栏显示变黑色的。此时再点击‘我的’按钮,状态栏变白色。我查了下资料,页面的生命周期,在页面重新显示时会调用build方法,通过测试确实调用了build方法,但是‘Screen.updateStatusBarStyle(SystemUiOverlayStyle.light);’这个方法貌似失效了,安卓和ios都存在相同问题。
我是做了一个异步延时操作,视觉上可以解决显示问题,原因不明:
Future.delayed(Duration(microseconds: 200), () {
Screen.updateStatusBarStyle(SystemUiOverlayStyle.light);
});

run不了

D:\morecNew>flutter run
Using hardware rendering with device Android SDK built for x86. If you get graphics artifacts, consider enabling
software rendering with "--enable-software-rendering".
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle... 1.7s
Resolving dependencies...

  • Error running Gradle:
    ProcessException: Process "D:\morecNew\android\gradlew.bat" exited abnormally:

Configure project :app

Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate{} error.

FAILURE: Build failed with an exception.

  • Where:
    Build file 'D:\morecNew\android\app\build.gradle' line: 25

  • What went wrong:
    A problem occurred evaluating project ':app'.

Could not resolve all artifacts for configuration 'classpath'.
Could not resolve com.android.tools.build:gradle:3.2.1.
Required by:
unspecified:unspecified:unspecified
> Could not resolve com.android.tools.build:gradle:3.2.1.
> Could not get resource
'https://maven.aliyun.com/repository/google/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
> Could not HEAD
'https://maven.aliyun.com/repository/google/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
> Connect to 127.0.0.1:6600 [/127.0.0.1] failed: Connection refused: connect
> Could not resolve com.android.tools.build:gradle:3.2.1.
> Could not get resource
'https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
> Could not HEAD
'https://maven.aliyun.com/repository/jcenter/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
> Connect to 127.0.0.1:6600 [/127.0.0.1] failed: Connection refused: connect
> Could not resolve com.android.tools.build:gradle:3.2.1.
> Could not get resource
'http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'.
> Could not HEAD
'http://maven.aliyun.com/nexus/content/groups/public/com/android/tools/build/gradle/3.2.1/gradle-3.2.1.pom'. > Connect to 127.0.0.1:6600 [/127.0.0.1] failed: Connection refused: connect

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with
    --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 9s
Command: D:\morecNew\android\gradlew.bat app:properties

Please review your Gradle project setup in the android/ folder.

flutter build apk build出了点问题

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:validateSigningRelease'.
> Keystore file 'E:\flutterApp\morec\android\app\Users\phillzou\key.jks' not found for signing config 'release'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 8s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done                      68.6s
Gradle task assembleRelease failed with exit code 1

编译报错,是版本问题么?

Launching lib/main.dart on iPhone 11 in debug mode...

Compiler message:
/usr/local/flutter/.pub-cache/hosted/pub.dartlang.org/cached_network_image-1.1.3/lib/src
/cached_network_image_provider.dart:42:24: Error: The method
'CachedNetworkImageProvider.load' has fewer positional arguments than those of
overridden method 'ImageProvider.load'.
  ImageStreamCompleter load(CachedNetworkImageProvider key) {
                       ^
/usr/local/flutter/packages/flutter/lib/src/painting/image_provider.dart:403:24:
Context: This is the overridden method ('load').
  ImageStreamCompleter load(T key, DecoderCallback decode);
                       ^
Target kernel_snapshot failed: Exception: Errors during snapshot creation: null
Failed to build bundle.
Error launching application on iPhone 11.

这个是属于版本导致的问题么?

我的环境是:

Flutter 1.12.13+hotfix.7 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 9f5ff2306b (35 小时前) • 2020-01-26 22:38:26 -0800
Engine • revision a67792536c
Tools • Dart 2.7.0

方法过时

/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_webview_plugin-0.3.1/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java:133: 警告: [unchecked] 未经检查的转换
mUploadMessage = uploadMsg;
^
需要: ValueCallback
找到: ValueCallback
/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_webview_plugin-0.3.1/android/src/main/java/com/flutter_webview_plugin/WebviewManager.java:186: 警告: [deprecation] CookieManager中的removeAllCookie()已过时
CookieManager.getInstance().removeAllCookie();
^
/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/flutter_webview_plugin-0.3.1/android/src/main/java/com/flutter_webview_plugin/FlutterWebviewPlugin.java:237: 警告: [deprecation] CookieManager中的removeAllCookie()已过时
CookieManager.getInstance().removeAllCookie();
^
3 个警告
/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/fluttertoast-3.0.3/android/src/main/java/io/github/ponnamkarthik/toast/fluttertoast/FluttertoastPlugin.java:92: 警告: [deprecation] Resources中的getDrawable(int)已过时
shapeDrawable = ctx.getResources().getDrawable(R.drawable.toast_bg);
^
1 个警告
/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/video_player-0.10.0+2/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java:20: 警告: [deprecation] Player中的DefaultEventListener已过时
import com.google.android.exoplayer2.Player.DefaultEventListener;
^
/Users/zhen7g/flutter/.pub-cache/hosted/pub.flutter-io.cn/video_player-0.10.0+2/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java:154: 警告: [deprecation] Player中的DefaultEventListener已过时
new DefaultEventListener() {
^
2 个警告

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.

More than one file was found with OS independent path 'META-INF/proguard/androidx-annotations.pro'

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 13s
AndroidX incompatibilities may have caused this build to fail. Please migrate your app to AndroidX. See https://goo.gl/CP92wY.
Finished with error: Gradle task assembleDebug failed with exit code 1

豆瓣API失效替代方案

同使用豆瓣电影api开发的项目,但是api已失效,不过部分可以使用时光网的api替代。

时光网热映电影:
https://api-m.mtime.cn/Showtime/LocationMovies.api?locationId=561

时光网即将上映电影:
https://api-m.mtime.cn/Movie/MovieComingNew.api?locationId=561

获取电影详情:
https://ticket-api-m.mtime.cn/movie/detail.api?locationId=561?movieId=电影id

561为武汉地区,全部地区id

使用到的GitHub项目:CloudReader😁

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.