零Flutter基础,四天完成Flutter简版玩Android客户端开发攻略

2024-08-31 01:38

本文主要是介绍零Flutter基础,四天完成Flutter简版玩Android客户端开发攻略,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

身为android开发者,在这几天深深感到flutter容易上手的特性,尤其是dart,稍微了解下基本语法,就能直接写,爽的一批~

废话少说,先看成果

image.png

Day0 环境搭建

环境搭建很简单,就是下个 Flutter SDK,然后设置设置环境变量什么的就差不多了,我这里是按照 Flutter 中文网教程搭建,没遇到问题。附上地址:https://flutterchina.club/get-started/install/

Day1 dart语法学习 + Flutter基本开发了解

dart 基本语法学习,看这里即可 https://book.flutterchina.club/chapter1/dart.html

有 Java 开发基础,花半小时了解 dart 语言特型就能上手开发了。

Flutter 基础开发需要了解的一些知识点

  • Widget 概念
  • 路由管理
  • 包引用
  • Widget 状态更新
  • 网络请求 + 数据解析
  • 异步操作

小 Tip: 阿里某个团队开源了一个『Flutter Go』项目,遇到不会的原生组件在上面直接搜名字即可看到使用方法,属性说明什么的,非常之方便!(开源万岁)

项目地址:https://github.com/alibaba/flutter-go

可以仔细做一下 Flutter 中文网的这个教程 https://flutterchina.club/get-started/codelab/ 初步了解Flutter,做完这个教程,基本就可以上手开发我们的简版『玩Android』客户端了。

Day2 基本框架搭建

最外层用 Scaffold 包裹,Scaffold 直接支持底部导航栏这种布局,我们只要实现 bodybottomNavigationBar 就可以。

页面容器我们用 PageView 实现, 底部导航栏用 BottomNavigationBar 实现。

Scaffold(body: PageView(controller: _pageCtr,physics: NeverScrollableScrollPhysics(),children: <Widget>[HomePage(),ProjectPracticePage(),WechatArticlePage(),],),bottomNavigationBar: BottomNavigationBar(currentIndex: _tabIndex,type: BottomNavigationBarType.fixed,fixedColor: Colors.deepPurpleAccent,onTap: (index) => _click(index),items: [BottomNavigationBarItem(title: Text('推荐'), icon: Icon(Icons.home)),BottomNavigationBarItem(title: Text('项目'), icon: Icon(Icons.map)),BottomNavigationBarItem(title: Text('公众号'), icon: Icon(Icons.contact_mail)),]),)

三个界面都是有状态的,所以都继承 StatefulWidget, 这样就能简单实现一个底部导航栏切换页面的功能。

Day3 列表创建+网络数据获取

文章和项目模块,用的都是顶部导航栏+列表的形式展示信息

  • 顶部导航栏选择flutter自带的 TabBar
  • 列表还是选择flutter自带的 ListView
    关于如何使用,Flutter Go 中一查便知

需要注意的是,由于切换到这个模块就需要网络请求,并且有数据后才开始绘制界面,所以我们这里在构建Widget的时候需要 FutureBuilderFutureBuilder使用方法可以在文末的项目中找到。主要就是可以拿到数据回调的状态,然后根据这个状态再构建相应的widght。

网络操作我选择的是 Dio 2.0,由于刚出来不久,并且和1.0还是有些不同,网上大部分文章都是基于1.0的,所以建议直接看官方文档学习,地址: https://github.com/flutterchina/dio#examples

我的项目中用单例封装了一下网络请求操作,每个api请求封装成一个方法,使用起来也很方便,具体在文末项目中可以找到。大概就是长这个样子:
image.png

我先调试的是网络请求,获取到正确的数据后,测试 TabBar,顶部导航栏没有问题,再创建ListView页,条目的话就用随便展示一个标题什么的就可以。

Day4 跳WebView + ListView完善

为什么我把 ListView 条目完善放到最后,因为我觉得在代码中写视图是在是太麻烦了,那么多层,肯定是一个难啃的硬骨头,结果上手之后发现,其实也就是看起来很麻烦,真正写的时候,虽然不如android中XML文件方便,但是确实有一种行云流水的感觉QAQ。

好话说在前头,写起来虽然问题不大,但是真的不符合主流好吗,写完看的我头大,随便放张图感受下:
image.png

后期维护成本也是问题,希望谷歌在这方面做一些改变,让 Flutter 可以更好的发展下去。

在设计好一个视图后,可以横向纵向一层一层定义结构,行就用 Row,列就用 Colunm,使用方法就在 Flutter Go 上去查。在 Flutter 中,万物皆为 Widght,可以在图中看到,即使是一个边距之类的,都会用一个 Widget 实现。

点击事件也是一个 Widght, 用 GestureDetector 实现。有两个参数,一个是 onTap(), 也就是点击的回调,一个是 child,也就是我们需要点击事件的 widght。

这个项目中,点击事件都是跳 WebView 页,然后看下 WebView 页怎么创建。如果不需要状态管理,那么就可以正常创建一个界面,然后child用 WebviewScaffold 实现,即可实现 WebView 的功能。

image.png

总结

大佬都说大前端是趋势,身为客户端开发者,了解一些大前端开发技术绝对不亏,甚至真香哈哈。

贴了那么多地址,最后也把这个项目的地址贴上来吧 https://github.com/chinahaozai/enjoy_android

欢迎 Star、Fork、Issue !

推荐我的公众号「后知后jue」,欢迎关注

这篇关于零Flutter基础,四天完成Flutter简版玩Android客户端开发攻略的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1122521

相关文章

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Flutter打包APK的几种方式小结

《Flutter打包APK的几种方式小结》Flutter打包不同于RN,Flutter可以在AndroidStudio里编写Flutter代码并最终打包为APK,本篇主要阐述涉及到的几种打包方式,通... 目录前言1. android原生打包APK方式2. Flutter通过原生工程打包方式3. Futte

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ