-
最近开始学习Flutter 但是呢,光看光写点样例呢,总感觉不太稳 《iCloudMusic》是萌新使用 Flutter 开发的一款第三方网易云音乐播放器
-
flutter create 项目名称 -t => 项目类型 --org => bundle identifier -i => IOS开发语言 -a => Android开发语言 flutter create -t app --org com.monako -i swift -a kotlin icloudmusic
使用FireBase
IOS: 1、使用 PRODUCT_BUNDLE_IDENTIFIER 前往FireBase官网注册应用 2、按步骤完成操作,下载 GoogleService-Info.plist 并用xcode添加至Runner工程目录下
ANDROID: 1、使用 PRODUCT_BUNDLE_IDENTIFIER 前往FireBase官网注册应用 2、按步骤完成操作,下载 google-services.json 并添加至app工程目录下 3、开启项目根目录下的 build.gradle 在 buildscript > dependencies > 添加:classpath 'com.google.gms google-services:3.2.1' 4、开启项目app工程目录下的 build.gradle 在末尾添加:apply plugin: 'com.google.gms.google-services'
#####配置完成后添加: firebase_messaging
- 欢迎页/引导页
首次开启app,将会会跳转到欢迎页面 使用video_player完成视频背景widget 使用Stack层叠布局,将视频作为背景,并循环自动播放 离开欢迎页面时需要释放播放器资源
-
initialize() - 初始化播放器 dispose() - 释放播放器资源 notifyListeners() - 监听播放消息 addListener(listener) - 添加监听器 removeListener(listener) - 移除监听器 pause() - 暂停播放 play() - 开始播放 position - 播放位置 seekTo(moment) - 指定到某个位置播放 setLooping(looping) - 是否循环播放 setVolume(volume) - 设置音量大小
使用flutter_swiper组件完成欢迎页的轮播widget 添加注册及登录跳转button
-
-
引入依赖:
- import 'package:flutter/services.dart';
- import 'dart:io';
-
构建方法中:
-
if (Platform.isAndroid) { // 以下两行 设置android状态栏为透明的沉浸。写在组件渲染之后,是为了在渲染后进行set赋值,覆盖状态栏,写在渲染之前MaterialApp组件会覆盖掉这个值。 SystemUiOverlayStyle systemUiOverlayStyle = SystemUiOverlayStyle(statusBarColor: Colors.transparent); SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle); }else{ SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light); }
-
1、使用 GestureDetector 做主容器,实现点击表单外部时,收起软键盘 2、根据用户选择是否记录登录过的账号,以便下次快速登录(模仿qq选择账号) 3、判断该账号是否为首次使用该程序,首次使用则跳转用户引导页
1、使用Hero的飞入动画跳转页面 2、引导完成跳转路由之前,修改首次使用状态,下次登录账号直接跳转主页面 3、音乐视图支持滑动唱片切歌,定位播放位置、喜欢等
1、自动获取背景图并设置为抽屉列表背景 2、头部显示用户基本信息,点击头像跳转详情信息 3、将退出按钮置于底部
1、标题栏为drawer开关,头像,message提示图标 2、头部显示banner,根据其banner属性判断跳转的router并执行其功能(NativeWeb组件添加一个返回的float按钮)