精华内容
下载资源
问答
  • 使用flutter开发app,idea找不到device

    千次阅读 2019-04-04 21:42:26
    在idea中使用flutter开发app的时候,使用数据线链接安卓手机,但是在idea中找不到链接的硬件设备,如下图: 遇到这种问题该如何解决? 方法一:一般这个问题是没有正确安装android sdk,很多人以为下载了...

    在idea中使用flutter开发app的时候,使用数据线链接安卓手机,但是在idea中找不到链接的硬件设备,如下图:

    遇到这种问题该如何解决?

     

    方法一:一般这个问题是没有正确安装android sdk,很多人以为下载了android sdk,然后配置环境变量就完事了,其实还需要执行SDK Manager.exe,如下图

    这个安装的时候,你的idea马上就可以识别到硬件了,如果还是识别不了就在命令窗口执行:

    >flutter doctor

     

    方法二:在idea中如下操作:

    Tools-->Android-->AVDManage来创建一个device

    展开全文
  • 使用Flutter开发的工作看板App
  • 选择了Flutter开发app

    2020-05-17 22:55:34
    为什么不继续使用uniapp开发app?见之前的博文。选择了uniapp开发app 正文开始: 环境: 开发工具:idea或者Android Studio(本来就是一家公司的产品)。 flutter环境配置: 项目结构: 开发的页面放到lib...

    背景:

    继上一次选了uniapp开发app之后,最近需要做一个app,这次选择谷歌的Flutter。

    为什么不继续使用uniapp开发app?见之前的博文。选择了uniapp开发app

    正文开始:

    环境:

    开发工具:idea或者Android Studio(本来就是一家公司的产品)。

    flutter环境配置:

    下载最新的flutter,配置环境变量。目前最近版本为:1.17

    项目结构:

    开发的页面放到lib目录下,当然支持建子文件夹分类存放。

    路由:

    route navigator

    网络请求:

    dio

    flutter不支持自动转换json,需要借助json_annotation间接实现。

    实现步骤:

    1、手动写json数据文件。

    2、使用JsonSerializableGenerator工具自动生成。

    状态管理:

    provider

    本地缓存:

    shared_preferences

    图表展示:

    暂未确定,有flutter_charts和echarts的开源工具包,但目前看都不太满意,待解决问题。

    疑问:

    手机端图表需不需要类似于网页版图表的tooltip?移动设备尺寸固定,显示了也看不清楚,待确认问题。

    国际化:

    flutter_localizations

    打包发布:

    flutter build apk 

    上架市场:

    待更新。

    每个过程的细节会在项目开发的过程逐步更新。

    展开全文
  • 主要给大家介绍了关于如何使用Flutter开发一款电影APP的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • 餐厅 Restyaboard移动应用程序。 地位 已完成的项目 从用户获取Restyaboard实例URL 在Web视图中加载用户提供的Restyaboard实例 用户可以更改Restyaboard实例URL ... 要获得Flutter入门方面的帮助,请查看我们的在线。
  • 使用Flutter开发的常见的App启动页
  • Flutter开发App简介

    千次阅读 2020-05-16 19:21:26
    简介 今天给大家介绍的是Dart2和Flutter ...Flutter是google推出的跨平台开发框架, 类似于React-native. 不过相比于React-native, 它的性能更有优势. 支持IOS,Android •谷歌的开源移动UI框架 •支持iOS..

    简介

    今天给大家介绍的是Dart2Flutter

    Dartgoogle推出的一种新的脚本语言, 希望能替代JS,

    然而JS也在迭代升级, 生命力很旺盛,

    目前, Dart还没能替代JS.

    现在最新的Dart2, 据说相比1改变很多.

    所以我直接介绍dart2.

    Fluttergoogle推出的跨平台开发框架, 类似于React-native.

    不过相比于React-native, 它的性能更有优势.

     

    支持IOS, Android

    •谷歌的开源移动UI框架
    •支持iOS App和Android App
    •调试时支持热重载
    •内置Material Design, Cupertino
    •简易的包管理
    •接近原生的性能
                          
    Flutter 是谷歌大力推进的开源项目, 据说更新迭代很快 , 我在学习的这段时间确实遇到有几次更新提醒 . 同时支持ios android.,调试时支持热重载.  网站描述调试过程中如果崩溃了 , 还可以修复崩溃点继续热重载 . 这一点 react-native 还没做到 .
    Flutter 提供了两套组件库 Material Design是google主推的设计, 而Cupetino是apple主推的设计.
    自动化包安装是在代码的配置里写上要引用的包和版本号 IDE就可以轻松的将正确的包同步到本地. 相比npm管理包更轻松. 不过这个过程的进度信息比较少.  从官方的介绍看, 性能比ReactNative更接近原生的 app.
     

    环境搭建

     

    1. 下载Flutter SDK, 解压到C盘.

    是一个zip包, 解压到C盘, 因为担心权限问题, 要求不要放到program Files.

    https://flutter.io/sdk-archive/#windows

    2. 将c:/flutter/bin添加到环境变量path

    3. 添加两个环境变量的添加是为避免国内访问不到有些地址,

    export PUB_HOSTED_URL=https://pub.flutter-io.cn

    export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn                                            

    4. 升级和检查

    flutter doctor

    flutter upgrade

    5. 设置编辑器

    vscode Extensions: Install  Flutter

    6. android studio安装

    7. android studio安装flutter插件

    8. android studio配置虚拟安卓设备.

    Dart语言

     

    Dart类似于JS, 可以应用于web, server等应用场景, flutter框架下也支持了移动端开发.

    1.  需要main入口才能运行.

    2. Raw字符串, 不会发生转义

    3. 多行字符串, 考虑到代码上加的空格也会体现出来, 所以如果用这种方法, 又不想要这些空格, 会破坏代码的整体美观.

    4. 字符串中嵌入变量, 相比JS有些简化

    5. Future相比Promise简便一点. 并且它可以加一个Duration来完成timeout的工作.

    6.  async/wait可以应用场景可以更自由. 比如for循环

    还有一些没在这里演示, 比如类型继承, class extend, 类型安全等跟ts就比较像了.

    最大的优点是具备JS的大部分优点, 所以容易上手. 又去掉了JS的大部分缺点, 比如隐式转换.

    创建Flutter App

    1. 创建Flutter工程

         vscode命令也可以, 在命令行中输入flutter new, 填入名字, angular-cli类似, 就能生产一堆代码.

    2. Vscode打开工程, 左侧可以看到android, ios各自产生的相应的工程, lib/main.dart就是业务层代码了.

        其它的大部分可以不用管, 不过这里有一个pubspec.yaml是一个包管理文件, 类似与package.json.

    3.  找到lib/main.dart

         写上这些代码
    4.  F5运行, 选择虚拟设备, 将会看到虚拟设备显示出实现的界面. (调试支持热重载)

    这个例子中, 首先是main()的入口 调用 runApp创建app对象运行起来.

    App对象从statelessWidget创建. 所谓statelesswidget就是属性不可变的widget意思.

    widget是所有控件的基类.

    Widget最基本的方法就是buildsetState

    类似于Reactrender.

    这里@override表示extend出来的子对象覆盖widgetbuild方法.

    flutter里绝大部分的可见或不可见的界面元素都是widget, 整个页面, 路由的页面, 容器, , , 甚至是padding.

    MaterialAppmaterial组件之一, 提供整体的属性的定义.

    比如整体的风格, 颜色, 名称

    Scaffold提供默认的导航栏, 标题, body等属性的定义.

    Appbar标题栏

    Text控件

    Center是一个布局控件, 可以把子对象摆在中间, 像有图所示.

    这里的名称加冒号的传参方式, 前面解释了,

    是可选参的传递方式,不限定传参顺序.

     
     

    StateFulWidget状态控件

     

    这个例子要演示的是StateFulWidgetStateLessWidget的不同.

    这里引入了一个能产生随机单词的外部包.

    这里的外部包引用只需要在yaml填入包名称和版本号,

    然后触发flutter: get package命令就会完成包引用和更新.

    这里需要注意的是, 缩进的多少会影响语义.

    这里可以看到, StatefulWidgetoverride createState 函数

    返回一个new 的对象state<RamdomWords>模板参数又引用了前面这个类型,

    这个写法有点奇怪, 有一种循环引用的错觉. 不过实际上并不是循环引用.

    然后再在这个state<>override 一个build方法.

    state有变化时, 会触发build, 也可以手动触发.

    这里里面放入一个listView listTile构成一个列表.

    每次滚动到底部, 都会触发itemBuilder传入新的i.

    到了这里我们对FlutterDart就有了一个初步的了解了.

    接下来看一下Flutter的架构.

     

    Navigator导航

     

    Routeflutter中通过navigator来管理.

    支持两种方式来做路由, 一种是stack push pop,

    另一种就是常见的路径和页面映射.

    这里演示的是第一种, 因为手机最常见的情况是跳转, 然后返回.

    navigtorpush, pop, 操作widget对象来完成页面的跳转.

    这种widget叫做MaterialPageRoute.

    这里有一个navigator的例子, 实现的效果, 就是

    点击右上角的按钮之后, 跳转到收藏页面,

    点击返回又可以回到主页面.

    代码实现是在右上角增加一个按钮的onPress事件触发

    这个navigator.of是从当前的context也就是这个materialAppnavigator.

    然后push一个MaterialPageRoute

    Builder方法里返回一个Scofold页面就行了.

    这里可以看到context包含app的环境信息或对象

    MaterialApp的的routes属性可以设置路由路径和页面之间的映射关系.

    new MaterialApp(
    
    routes: <String, WidgetBuilder> {
    
         '/a': (BuildContext context) => new MyPage(title: 'page A'),
    
         '/b': (BuildContext context) => new MyPage(title: 'page B'),
    
    }

    除此以外, route还可以嵌套, 也就是说, app这一层是根路由,

    而根路由里面的page还可以嵌入子路由, navigator.of访问context

    按照就近原则获取当前的路由进行操作.

     
     
     

    Icons.xxx图标

     

    官方的图标库集成了内部的接口, 方便直接加载, 基于矢量. 操作便捷, Icons.xxx就可以加载这个图标.

    但是, 如果没有自己想要的图标还是需要通过图片加载的方式.
     
     
     

    Layout布局

     

    这里是对布局的演示,

    Flutter的布局有一个特点, 就是它不用负责告诉它的父节点, 自己要显示在哪里.

    主要是每种容器通过row, colum, list, card, gridview等容器来管着子节点的显示,

    然后再容器的属性可配置主轴, 纵轴的对齐方式, padding, margin, border.

    childrenchild嵌入子节点. 理解起来还是比较简单的.

    另外, 对于全局的风格, materialApp中也有属性进行定义.

    Animation动画

     Animation:

            1. 按时间阶段输出.value

            2. 监听状态(forward, backward, completed, dismissed)

        AnimationController:

            1. .forward, .backward控制向前向后

            2. 设置变化的时长

        CurvedAnimation:

            1. 曲线变化(fastOutSlowIn, bounceIn, elasticInOut, 可自定义)

            2. AnimationControllerCurves组合出一个Animation对象

        Tween(Animatable):

            1. 设置Animation值变化范围

            2. .evaluate(Animation)通过Animation可计算当前值

            3. .animate(AnimationController)可以返回一个Animation

    Pubspec.yaml环境配置文件

    Pubspec.yaml文件, 配置包,类似于node.js的package.json文件.

    前面提到配置的包在这里有修改的话,

    会可以自动触发更新

    相比npm install在编写代码再去输入命令要更便捷一点.

    命令也支持.

    然而这个国外的源可能被封禁, 所以经常get失败,

    谷歌说提供了一个国内的源, 但是实际使用的时候, 发现效果也是很差.

    另外还可以配置图片, 自定义字体, 本地语言等.

    GestureDetector手势检测

    •onTapDown :                     指针已经在特定位置与屏幕接触
    •onTapUp :                           指针停止在特定位置与屏幕接触
    •onTap tap:                          事件触发
    •onTapCancel :                    先前指针触发的onTapDown不会在触发tap事件
    •onDoubleTap :                   用户快速连续两次在同一位置轻敲屏幕.
    •onLongPress :                    指针在相同位置长时间保持与屏幕接触
    •onVerticalDragStart :        指针已经与屏幕接触并可能开始垂直移动
    •onVerticalDragUpdate :    指针与屏幕接触并已沿垂直方向移动.
    •onVerticalDragEnd :          与屏幕接触并垂直移动的指针不再与屏幕接触
    •onHorizontalDragStart :    指针已经接触到屏幕并可能开始水平移动
    •onHorizontalDragUpdate:  指针与屏幕接触并已沿水平方向移动
    •onHorizontalDragEnd :      与屏幕接触并水平移动的指针不再与屏幕接触

     

    大多数控件有onPress事件, 但是手机上的手势行为很多

    因此并没有让每一个控件支持所有手势的属性,

    所以如果想要获得哪些手势就需要使用GetureDetector

    GetureDetector本身也是一种widget把它和其它控件重叠放在一起,

    或者把其它控件作为GetureDetector的子控件.

    它就可以检测到这个控件上发生的手势动作.

    这里列举了可支持的手势动作.

     

    Inspector

    调试上除了传统的断点单步调试, 也一样支持inspector和性能分析

    不过提供的inspector支持不在vscode., 而是intelliJ,

    可以查看节点层次和节点属性, 只不过不能直接在inspetor里面修改属性.

    android studio是基于intelliJIDE, 所以也是支持的.

     

    Platform-Specific

    Flutter 与平台之间通过通信

    每个API都有一个独立的路径, 获得路径对应的methodchannel对象

    然后通过.invokeMethod(funcName)来访问接口.

    这里为防止阻塞使用了async await.

    已有的这些访问API的路径包含

    如果开发发现还不够, 可以自己在native开发这一层

    添加自定义的API路径和native api之间的映射.

    而数据的返回有两种形式, 一种从result.success, result.error阻塞式返回.

    另一种是通过event.

     

    Achitecture架构

    Flutter的框架从上到下分三个大层:

    FrameWork主要包含UI组件(MaterialCupertino widgets)也包含:

         widgets, Animation, getstures

    Engine主要是指Dart的引擎, 还包括

         Event, pipeline, 服务协议, 渲染等.

    Embedder主要是native层的一些接口和线程, 事件, 包管理等.

    根据介绍Flutter相比React最大的优势在于,

    在上层就完成了render, 避免了diff变化的层层传递. 所以性能更好.

     
     
     

    Publish打包发布

    打包和发布, 在各自的平台有一些不同的操作流程.

     
    本文参考:
    展开全文
  • flutter开发APP时icon图标使用

    千次阅读 2019-04-02 16:56:07
    链接:https://material.io/tools/icons/?style=baseline
    展开全文
  • 使用 Flutter 开发 macOS App

    千次阅读 2019-01-23 10:24:00
    Flutter 是 Google 开发的一套全新的跨平台、开源 UI 框架,支持 iOS、Android 系统开发,并且是未来新操作系统 Fuchsia 的默认开发套件。 Flutter 通过跨平台的 Skia 图形库来实现图形渲染,只依赖各个系统的图形...
  • 一个使用 Flutter 开发的一款漫画阅读 App, 相应的微信小程序地址 . Getting Started # clone project git clone git@github.com:cixiu/flutter_manhuatai.git # cd project root directory cd flutter_manhuatai # ...
  • 扑 Dart和Flutter应用程序开发的基础知识。 重要链接: 实践和此处运行Dart: 回购: 颤振: : 向和
  • Flutter开发 APP版本更新

    千次阅读 2019-04-11 20:52:00
     FlutterAPP打开后检测到有新版本后,可以直接到应用市场去下载新的APK,也可以使用flutter_downloader从服务器下载。因为我们的应用是上架到Google Play,当用户点击下载的按钮,直接跳转到Google Play官网去下载...
  • flutter_app 现有功能 1,登录 2,注册 3,欢迎页 4,启动广告页 5,首页 6,螺栓页 7,二维码 8,瀑布流 9,基本组件demo模块 10,会员首页 11,设置页面 使用的第三方库 # 图标库 cupertino_icons: ^0.1.2 #应用...
  • 第一安装vscode这个IDE工具 并且安装了Flutter和Dart扩展插件。 必须下载flutter SDk ,(git clone -b beta https://github.com/flutter/flutter.git) 还有Android SDK(这个可以下载android studio里面可以下载好...
  • 采用flutter开发社交app

    2019-08-10 05:00:12
    主要用于研究flutter常用packages,涉及到,app版本升级,权限获取,扫码,图片选择,图片上传,图片压缩,图片裁剪,图片缓存,数据缓存,http通讯
  • grpc_flutter_appflutter使用gRPC的demo。跨平台开发框架flutter使用gRPC的例子。
  • 个人感觉使用Flutter开发app快得不要不要的额. 两天就基本可以开发个大概出来. 最主要是热重载,太方便实时调整UI布局了. 相应速度极快. 如下图: 主要项目架构 详细说明一下,开发主要在lib文件夹 pubspec.yaml...
  • 使用Flutter开发的抖音国际版

    千次阅读 2020-05-21 18:59:50
    个人感觉使用Flutter开发app快得不要不要的额. 两天就基本可以开发个大概出来. 最主要是热重载,太方便实时调整UI布局了. 相应速度极快. 如下图: 主要项目架构 详细说明一下,开发主要在lib文件夹 ...
  • Flutter Food APP的设计Flutter FoodApp设计挑战此仓库为您提供了惊人的Flutter Food App UI设计! 如果您喜欢设计,请加星号支持我! :red_heart:Star:red_heart:支持该项目的仓库或:grinning_face_with_smiling_...
  • Dictionary App使用Dart和Flutter制作的Dictionary App。 可以在此处找到所使用的API。在项目中使用了以下Dart和Flutter软件包。 导入'dart:convert'; 导入'dart:io'; 导入'package:http / http.dart'为http; ...
  • 今天是第一个 Flutter iOS App 上架,激动,还有点担心。问题还不少,总结一下,让大家少入坑。 问题集锦 问题一: ERROR ITMS-90189: Redundant Binary Upload. You've already uploaded a build with build number...
  • 1. Flutter Application (全新的APP) 标准的Flutter App工程,包含标准的Dart层与Native平台层 创建命令 flutter create xxapp //默认Android使用Java,iOS使用Objective-C。 //如果要指定语言,比如安卓使用Kotlin...
  • 利用Flutter开发的漂亮天气App
  • 一个基于Flutter开发的移动App
  • 使用Flutter开发的数据是使用API​​提取的。因此,它不是存储在本地。有关API的信息在README.md的底部提供 在Play商店中获取 下载 安装步骤 在要克隆项目的位置打开CMD并运行以下命令 git clone ...
  • 使用Flutter开发的一款天气预报APP

    千次阅读 2019-07-31 14:24:53
    前段时间看了下Flutter相关资料,看完感觉还是啥都不会,还是写个小APP还练习一下吧。
  • flutter app开发教程合集.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,482
精华内容 8,192
关键字:

使用flutter开发的app