重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
手机APP制作流程:无需技术,教你制作一个自己的手机APP
洪洞ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!
一款手机APP的制作,说复杂非常复杂,涉及到多个领域的研发,稍复杂一点的个人研发基本上搞不定,但是,也有非常简单的手机APP一站式制作运营方法。
随着移动互联网基层开开发技术的发展,无需编程技术,也可以在应用公园制作手机。这里就以应用公园为例,教您熟悉手机APP制作流程,手把手教你制作一款自己心仪的手机APP。
第一步:了解自己想要制作一款怎么的手机APP。是软硬件结合? 游戏 类?商城类?新闻资讯类?互动类?聊天类?还是团购类、同城服务类?送餐类?企业展示类?
每一个类别的APP开发差异非常大,主要就是不同类型所需要的功能支持。对自己想要做的APP有个大致的了解,但是这一步很多人都没搞清楚,大部分人都存在一个大概模糊的创意、想法阶段。
第二步:了解自己想要做的APP的基础功能,划分板块。
对基础功能的了解、板块的分类,上手最快的方法就是:查看市场上类似的APP进行借鉴。
第三步:界面及交互的设计
界面及交互的设计,可以直接使用“墨刀”。可以先设计一个大概,后期不断丰富。
第四步:APP功能的开发制作
APP功能的开发直接使用应用公园就可以了。应用公园把市场上常见的APP功能进行拆分组合,你不需要懂任何编程技术,只需哟安把需要的功能挑选出,组合搭配一个,就能迅速组建出一个手机APP。
手机APP制作具体流程:
1、打开应用公园的官网,点击“开始制作”,注册登录;
2、应用公园为在线APP制作平台,所以不需要下载任何东西,直接进入制作页面就可以;
3、应用公园目前有两种模式:
(1)主题模式:应用公园平台上,已经很多已经制作完善的手机APP软件,可以直接当做模板使用,仅需要把里面的文字图片进行替换,就可以快速制作一款APP。
(2)自由模式:就像拼图一样,把需要的功能自由组合搭配一下,就可以创造一款独一无二的手机APP。
每一个功能控件的具体功能,都通过后台自动配置。
4、手机APP打包
制作完善后,在应用公园平台直接点击制作完成,就会自动打包成手机安装程序。
5、应用发布上架
在应用公园平台直接申请应用发布,通过联网后,就可以联网使用了。
6、下载管理、运营
应用公园提供运营管理后台、下载站点、下载二维码、手机管理助手等APP相关产品,一站式服务,自动配置,免去多次开发成本,而且后期的功能、内容的更新迭代自己既可以搞定,也不需要具体的编程技术。
自己制作app需要 编程知识 。但依靠第三方工具,三分钟就可以做成专属自己的APP。下面以简易网为例演示:
简网APP工厂三大特点
1、最低的成本:节省所有开发成本,以及仅几分钟的时间成本。
2、实用的功能:贴近传统网站的内容编辑与发布方式。
3、灵活的运营:生成APP后,一个人也可以完美运营。
先来了解一下APP工厂:三分钟制作APP
使用简网APP工厂之前,我曾经通过其他类似的APP公司制作过两三个不同版本的免费APP,简网的操作流程是制作门槛最低的一家。
不支持用户名注册,需要使用微博账号
新浪与腾讯微博用户数几乎覆盖全网网民数,我们默认用户已经拥有微博账号,以便于进行APP快速创建。
填写APP信息:几分钟搞定
制作APP之前我们需要做一些准备工作,比如我们要明确我们要做一个怎样的APP,我们要为这个APP准备一张1024x1024的ICON以及一张114x114的小图标,另外还需要一张640x1136的开机图。
从简网APP工厂的首页,经过3次跳转,省略了网站注册过程,通过模板挑选完成APP美工定案,所需的是APP的图标与应用简介。全过程几分钟足矣。
快捷实用的后台采编系统
我们制作了一个新闻资讯类的APP软件,同时我们拥有了一个功能齐全的后台更新系统。利用后台可以完全解决APP内容更新问题,可以快速进行新闻发布,包括文字、图片、视频、微博等形式,并且引入了完善的评论系统与社区系统。
笔者至今使用过三家大型网站的后台系统,由于种种 历史 原因,这些后台系统都存在或多或少的不合理设计,也许是因为承载的功能过多,数据架构过于复杂,在新入职人员上手操作时,需要经过长时间的熟悉过程。
简网为我们制作的APP提供了统一的后台模板,这个后台的功能亮点在于不仅提供原始录入,还提供也许是目前设计最为合理的网络来源抓取功能。包括网页、微博在内的网络内容,都可以在大约1分钟时间内导入后台中,并且实时呈现在用户手机上的APP客户端。
APP的生成时间约为三分钟,APP容量只有3M,一般的宽带都可以在1分钟之内下载好装进手机
我们得到了一个可安装的APP软件
同时获得了一个功能完善的编辑后台
快速的内容抓取,让后台采编人员的数量可以降到最低,维持一个日更新量在100篇文章左右的APP客户端,一个工作人员足矣。
内容采编神器:发布到应用
“发布到应用”这个功能可以说是管理后台提供的最强大的一个功能,经过简单的设置后,我们可以在几秒钟之内把网络内容发布到我们的APP客户端。
这样一个媒体类APP就做好了。
很高兴回答这个问题。
我是从事安卓App开发的,开发过很多App,那么App是如何制作的。
页面设计
我们看到的app都一个个页面,每个页面功能不同。首先是产品经理通过调研整理需求,然后将需求整理成页面(可以使用墨刀等网页制作),然后在交给UI人员进行专业设计和美化,最后将设计图打包给开发人员。
开发设计
拿安卓举例,开发使用语言也分几种,具体得根据实际情况来选择。
1.原生开发
安卓一般使用java语言开发,当然现在也有kotlin语言进行开发。如何开发就涉及到具体编程了,这里就不详说了。简单描述就是使用安卓提供的一系列控件来实现页面,复杂点的页面可以通过自定义控件来实现。
2.使用H5语言开发
使用H5开发的好处有很多,可以多端复用,比如浏览器端,ios端,当然H5开发的体验是没有原生好的。结合我做过的项目来说,一般是这个页面需要分享出去的话,就用H5开发。
3.使用flutter开发
flutter是近年来谷歌推出的一款UI框架,
使用dart语言进行开发,支持跨平台,weight渲染直接操作硬件层,体验可媲美原生。但是flutter技术比较新,生态还不完善,开发起来效率相对偏低
页面数据填充
页面开发出来只是空壳子,没有数据填充,这时候就需要通过接口获取数据,然后解析数据,显示在页面上。
到此,一个大概的App制作流程就结束了。
首先你要清楚自己想要什么样的APP,是做哪一方便的?简单的?还是复杂的
一下我就分为两类进行回答
一,简单APP
必要岗位
ui设计师(至少一个)
主要负责APP页面的搭建和交互的梳理
客户端开发人员(至少一个)
目前市面上的APP开发方式多为混合开发,如果做一个简单的APP可以选择webapp,这样不但可以减少开发周期还可以控制开发成本
服务端开发(至少一个)
目前服务器语言很多php,java,
node.js
非必要岗位
首先 ,我说的非必要岗位不是说这些岗位不重要,而是说在为了减少成本的情况下,这样岗位可以被别的岗位所替代
产品经理
如果开发的App功能简单,UI设计师就可以担任这样职责
测试工程师
当然,在时间允许的情况下,开发人员也可以是测试人员
二,复杂APP
复杂app可以考虑纯原生开发,那么客户端至少两个人进行开发(安卓,IOS),或者考虑混合开发,及web前端+原生开发人员
必要岗位
ui设计师,安卓开发工程师,ios开发工程师,后端开发工程师,产品经理,测试工程师,人员的多少可以根据项目的大小来定
三,必要成本
服务器 :这是开发app必须要的,也就是我们放代码的地方
上架审核所需费用 :比如IOS上架审核的花好几百,安卓要申请软著等
今年六月的时候,萌生了开发一个记账 App 的想法,想去用自己的 App 记账,管理收支。那时正好在英国是考试周,放假后,我回到了国内,准备去实现我的计划。没想到这暑假很快就结束了,在这个暑假中经历的太多的事,准备了要去美国读研的考试,遇到了生命中的另一半,同时,也将 Costuary for iPhone 带到了这个世界。
Logo
说道为什么要开发这样一个 App ,因为笔者在 UK 读书,市面上很少有记账 App 能够实现实时汇率的换算,带有这个功能的 App 也是操作繁杂。所以要自己开发一个,功能并没有那么复杂的,并且能够满足自己在国外和国内生活需求的 App,所以自己编写了 iPhone 的客户端,为了获取汇率和 Excel 导出,又用 Java 设计和编写了 Costuary 的后端服务器。
比起今年年初开发的 Flat Weather,这个项目的代码量大约是他的十倍,需要实现众多的功能和模块。
这篇文章将会介绍一下 Costuary 的功能与我开发过程中的一些心得。
效果图设计
说到设计,两年前,我还是一个 Android 开发者,Google 的 Material Design 是我的最爱,所以,Costuary 采用了 Android 5.0 之后采用的 Material Design 设计。其中掺杂了一些我自己的设计,因为 Material Design 的控件有时候操作繁琐。
早在 5 月份的时候已经零零总总的用 Sketch 画出了这个产品的 UI 和图标,之后开始了漫长开发的过程。
Sketch交互
与去年开发的 Android 版不同,iPhone 版的 Costuary 采用了底部导航栏的设计,相比于 Android 通常使用的 Navigation Drawer 的抽屉布局,底部导航栏的设计即使在右手操作 iPhone 的时候都不会太费力。
UX功能 Features
Costuary 支持世界上主要货币的实时汇率转换,所有外汇在统计时会转换成主货币的数目,方便查看花销。
日历视图能够很直观的反映出哪一天有消费和收入。
说到记账软件,量化消费的图表无疑是重要的一环,Costuary 提供了饼状图来视觉化一段时间的花销。
可以建立多个账户来表示自己的银行卡,支付宝,现金等等。
可以看出本月的预算还有多少。
如果想要进行更加详细的分析,可以使用导出功能将账本导出到 Excel。
允许备份账本内容到 iCloud。
开发
去把一纸设计变成真正的产品,这是一个独立开发者应该具有的能力。只会写代码不只是我唯一掌握的,能够去设计出来自己想要的应用并且将他实现才是我在做的事情。
这款应用的开发并没有想象中的简单,需要自己去实现大量 Android UI 控件,很多圆角,阴影,字体,要慢慢的去调整,让控件适合 iPhone 的屏幕。整个应用的背后有 3 个关系型数据库来储存账户,账本与各种汇率。与以前开发的 Flat Weather 不同,Costuary 会产生大量的用户数据,所以整个软件架构的稳定性变得异常重要,需要设计一些机制来防止数据丢失与损坏。
Development
为了实现 App 获取每日的汇率,并且在 iPhone 上能够实现账本导出到 Excel ,我设计了一个服务器后端来处理这些繁杂的实物。每次 App 启动后会与我的服务器来更新最新的汇率。当用户选择导出时,账本会被发送到服务器上并处理为 Excel 发送到用户的邮箱里。
说到服务器,就不得不提到用户隐私了,因为导出到 Excel 功能需要将账本传到我的服务器上做进一步处理,很多人会觉得我侵犯了他的个人隐私。对此,为了保护我的权益与用户的权益,我撰写了 Costuary 软件许可及服务协议与 Costuary 隐私政策,这是我作为独立开发者这么多年后第一次去写许可协议。
Agreement资费
与我的其他产品一样,这款 App 依旧是免费供大家使用的,作为独立开发者,我们都知道,绝大多数用户不会去珍惜一个免费的产品。就像 Flat Weather 一样,虽然获得了很多人的支持,但是也收到了很多人的吐槽。在 Costuary 中依然设计了一个的捐助按钮,如果大家使用之后喜欢这个应用,请支持我将他维护下去。
Please donate me尾巴
Costuary for iPhone 是我开发出来过最大的软件体系。我相信,能够独立开发出来产品的人懂得不只是编程。一个人要去经历项目的全部生命周期:规划,设计,开发,运营,维护,营销,这些是我开发这么多产品所学会的。
现在的 Costuary 只是第一个版本,还有很多 iPhone 的特性没有来得及开发,以后会跟上的,比如 iPhone X 的适配,3D Touch、Today Widget、Touch ID 等等。
以前在少数派撰稿的时候,很多读者会来问我如何学习开发,我也特地去写过如何去学习编程,但我相信,真正想去学习的,想去为这个生态贡献出自己的一份力的人,自己都会找到学习的方法。我的专业是电子电器而不是软件工程,但是我不后悔当年去学习编程。
最后,还是感谢在背后默默支持我的人,我会不断地改进与提升,如果 Costuary 真的在记账方面给予了你便利,这是我莫大的荣幸。
如果想要了解我的更多作品可以访问我的个人博客 MikeTech,或者在少数派中阅读我以前写过的文章。今年年初也在 iPhone 上写过一个天气 App,天气应用 Flat Weather 的设计历程
对了,关于记账有什么用,如何记账,如何养成记账的习惯。为什么每个月末都捉襟见肘,除了没钱,很可能是对财务管理的能力不强。想了解这一方面的知识,不妨看一看我派的付费阅读栏目:从零开始做好个人记账
你好,非常感谢你的邀请。
开发一个app的话首先
第一步、需要调研,分析开发需求。
第二步、根据你的开发需求整理一个开发方案,选择合理的架构。
第三步、开始研发。
第四步、测试。
第五步、上线试运行。
第六步、查缺补漏后投入使用。
开发一个app的话。有多种选择。可以找一个第三方公司来进行开发。也可以自己招聘开发团队。也可以交给比较信任的程序员朋友来进行开发。第三种方式的话,属于接私活儿,成本较低。 当然前提你得有认识的人。
我也是程序员出身。参与过web网站开发。传统办公开发。H5开发。微信小程序开发。以及安卓开发。有着较丰富的开发经验。自己完全可以胜任一个App,如果你有这方面的事需求的话,也可以私信我。我是山东的。如果方便的话也可以面谈。
App软件开发,从之前的沟通需求、规划设计、程序开发、测试修改、它的发布等。这是一个非常复杂和漫长的过程,一旦进入通信,就需要定期维护和功能变更。它需要大量的专业人员参与,成本自然很高。 所以,随着更新市场的发展和人们福利的提高,现在已经不像传统开发那么困难了。只需要动动鼠标,不需要触碰代码就可以完成制作app部分。
App开发已成为企业发展的重要推动力量
十年巨变!移动互联网已颠覆我们的时代,商业、社交、视频、新闻、工具等领域,移动应用的渗透率已高达95%,在团购 旅游 和零售行业,移动端收入规模已超过PC端,手机APP已成为企业不可或缺的线上阵地。
不用编程就能制作app的在线平台,摆脱了很多复杂的流程,还能减少用户的麻烦,不会制作,而且可以在平台上查看详细的课程,非常贴心的设置!在这里,我想说的是,如果你想制作app的话,可以在平台上查看详细的课程。总的来说,这种方法会大大降低软件开发app的成本,节省时间,让很多人解决了资金短缺和想快速制作app的问题。
app是如何制作的,APP如何开发?
随着智能手机APP软件的吸引力越来越大,越来越多的企业开始开发自己的APP应用。企业要想开发属于自己企业的APP应用,首先要分析自身的情况和市场对产品的需求。
在APP,开发这件事上,企业一定要注意以下几点。
1. 开发APP应用一定要明确以自己为中心,开发APP是否能带来巨大的利润。
2. 要了解目标用户的需求,配置APP吸引用户,提高用户购买应用的意愿。
3. 通过合作再次寻找潜在客户,我相信开发APP的收益远远大于成本。
开发APP苹果系统,必须使用Xcode苹果开发工具,一般采用Objective-C或Swift语言。Objective-C是继承了C语言的C字,可以直接用Objective-C语言进行编程。如果你不懂数据,差别很小。还有一些新的苹果后缀语言,非常有用。
Andro系统的app都是用Java语言开发的,Java语言已经流行了20多年,这个趋势还在持续和延续。如果想要安卓系统的app首先要掌握Java语言,对于说C语言的人来说,学习Java还是很容易的。如果你对自学感兴趣,Java网站上有很多培训课程,还有很多免费培训。视频,不想付费。如果这个绝对是零基础(没学过其他编程语言,比如c语言),如果真的很感兴趣,可以自学,但是速度比较慢。
总结:app开发拥有多种方法,选择最适合自己的方式方法很重要
答案写到这里,我想您应该知道了app的开发途径或者方法是什么。如果您是小企业或者是个体工商户,您可以找人帮忙开发小程序或者自己在一些网站上进行傻瓜式软件开发。正如上文所说,现在有很多的网站支持在线生成APP,常用的功能和接口都已经设置好了,操作起来不是很难。如果您是大企业,业务多访问量比较大,我的建议是您应该聘请专业的软件工程师开发专门的app,避免后期出现的问题没办法及时解决给您的企业带来损失。
不懂的话,找专业的人帮忙,我就是专业的
app即application program。应用程序。目前手机平台是ios和安卓两大平台的天下。本人不才从事安卓开发。简单介绍一下吧你问的这个问题范围太广。ios和安卓开发语言不同。ios使用的是object_c和swift。安卓是基于java。二者都属于面向对象的语言。开发平台安卓基于android studio早期使用的是eclipse+adt。不过已经被淘汰了。那么怎样开发app?首先你需要一个后台程序员写服务器以及搭建数据库。其次你的会ios或是android其中之一那么这就是最简单的配置.现在流行混合开发如果你再会点前端的h5和js就更好了。一般一个软件公司的基本配置是一个前端一个ios一个安卓一个后台。基本就满足你搭建网站和手机应用的需求了。不过你作为老板养这样一个团队很费钱。还不如找外包
软件的生成需要经历以下几个阶段:
1、满足用户需求——建立软件目标,设想产品功能,进行场景化细分说明;进行可行性分析,用户需求收集,用户需求场景描述;场景问题梳理;获取用户行为、想法;场景应用痛点,机会点
2、需求开发与管理——建立用户画像,从软件目标出发,进行问题梳理,场景行为分析,愿景分析,建立体验地图
3、利用Axure绘制软件原型,在用户场景中切入,并组织软件原型实施,在实施过程中进行问卷调查,收集问题,记录用户行为,不断改善软件需求,进行需求评审,进入评审优化
4、技术可行性分析——技术分析,场景分析,功能实现验证,
5、开发计划制定,实施,测试,验证,发布
1. div和table
这个是最简单的,也是最基础的。要熟练掌握div、form table、ul li 、p、span、font这些标签,这些都是最常用的,特别是div和table,div用于布局、table也可以用于布局,但是不灵活,基本 table是用来和数据打交道。
2.html
HTML是指超文本标签语言,是目前web领域应用广泛的语言,我们只需要在html文档中插入对应的标签,即可实现web页面的编写与排列,所以要熟练掌握HTML基本知识,包括每个标签的用法等。
3. CSS
CSS指层叠样式表,可以为HTML标签自定义样式,通过设置HTML标签的样式,来改变其外形,达到美化与排版web页面的目的。
4.Javascript
Javascript是网页脚本语言,它可以在html中运行,设置并修改浏览器中的各种对象与变量。例如用来改进设计、验证表单、检测浏览器、创建 cookies等等,现在各大网站都可以看见 Javascript的踪影,常见的网站首页大眼晴、警告提示框、页面动画效果等等。Javascript更是一种在客户端广泛使用的脚步语言,在 Javascript当中提供了一些内置函数、对象和DOM操作,借助这些内容我们可以来实现一些客户端的特效、验证、交互等!
5.Jquery
Jquery是相当于把js封装了一套的一个js插件,目的就是操作起来更方便,代码写的更少。 Jquery是一个免费、开源的轻量级的Javascript库,并且兼容各种浏览器,同时现在有很多基于 Jquery的插件可供选择,这样在我们实现一些丰富的动态效果时更方便快捷,大大节省了我们开发的时间,提高了开发速度。
6.框架
从 bootstrap开始,响应式的珊格系统被后来框架一直沿用,建议学一套主流mvc框架,vue,react, angular两选一种。
7.会点后台语言
对于前端工程师来说,并不需要像网站程序员样,编写对象、开发特殊功能、搭建数据库。但是前端工程师要掌握基本的页面GET&POST传参、程序判断语法、程序输出语法、页面提交、数据库查询与记录插入,以及掌握HTTP与WEB工作原理、掌握Socket长连接实时网络通信技术、掌握 NOSQL中的 MONGODB的应用、了解PHP语法、了解 MYSQL数据库的基本操作。
当然,以上技能能够帮助你成为一个合格的前端工程师,但要成为一个优秀的前端,必须掌握除技术以外的东西,例如设计,用户等等,因此还需不断的坚持学习。
APP 启动页在国内是最常见也是必备的场景,其中启动页在 iOS 上算是强制性的要求,其实配置启动页挺简单,因为在 Flutter 里现在只需要:
一般只要配置无误并且图片尺寸匹配,基本上就不会有什么问题, 那既然这样,还有什么需要适配的呢?
事实上大部分时候 iOS 是不会有什么问题, 因为 LaunchScreen.storyboard 的流程本就是 iOS 官方用来做应用启动的过渡;而对于 Andorid 而言,直到 12 之前 windowBackground 这种其实只能算“民间”野路子 ,所以对于 Andorid 来说,这其中就涉及到一个点:
所以下面主要介绍 Flutter 在 Android 上为了这个启动图做了哪些骚操作~
在已经忘记版本的“远古时期” , FlutterActivity 还在 io.flutter.app.FlutterActivity 路径下的时候,那时启动页的逻辑相对简单,主要是通过 App 的 AndroidManifest 文件里是否配置了 SplashScreenUntilFirstFrame 来进行判断。
在 FlutterActivity 内部 FlutterView 被创建的时候,会通过读取 meta-data 来判断是否需要使用 createLaunchView 逻辑 :
是不是很简单,那就会有人疑问为什么要这样做?我直接配置 Activity 的 android:windowBackground 不就完成了吗?
这就是上面提到的时间差问题, 因为启动页到 Flutter 渲染完第一帧画面中间,会出现概率出现黑屏的情况,所以才需要这个行为来实现过渡 。
经历了“远古时代”之后, FlutterActivity 来到了 io.flutter.embedding.android.FlutterActivity , 在到 2.5 版本发布之前,Flutter 又针对这个启动过程做了不少调整和优化,其中主要就是 SplashScreen 。
自从开始进入 embedding 阶段后, FlutterActivity 主要用于实现了一个叫 Host 的 interface ,其中和我们有关系的就是 provideSplashScreen 。
默认情况下它会从 AndroidManifest 文件里是否配置了 SplashScreenDrawable 来进行判断 。
默认情况下当 AndroidManifest 文件里配置了 SplashScreenDrawable ,那么这个 Drawable 就会在 FlutterActivity 创建 FlutterView 时被构建成 DrawableSplashScreen 。
DrawableSplashScreen 其实就是一个实现了 io.flutter.embedding.android.SplashScreen 接口的类,它的作用就是:
之后 FlutterActivity 内会创建出 FlutterSplashView ,它是个 FrameLayout。
FlutterSplashView 将 FlutterView 和 ImageView 添加到一起, 然后通过 transitionToFlutter 的方法来执行动画,最后动画结束时通过 onTransitionComplete 移除 splashScreenView 。
所以整体逻辑就是:
当然这里也是分状态:
当然这个阶段的 FlutterActivity 也可以通过 override provideSplashScreen 方法来自定义 SplashScreen 。
看到没有,做了这么多其实也就是为了弥补启动页和 Flutter 渲染之间, 另外还有一个优化,叫 NormalTheme 。
通过该配置 NormalTheme ,在 Activity 启动时,就会首先执行 switchLaunchThemeForNormalTheme(); 方法将主题从 LaunchTheme 切换到 NormalTheme 。
大概配置完就是如下样子, 前面分析那么多其实就是为了告诉你,如果出现问题了,你可以从哪个地方去找到对应的点 。
讲了那么多, Flutter 2.5 之后 provideSplashScreen 和 io.flutter.embedding.android.SplashScreenDrawable 就被弃用了,惊不喜惊喜,意不意外,开不开心 ?
通过源码你会发现,当你设置了 splashScreen 的时候,会看到一个 log 警告:
为什么会弃用?
其实这个提议是在 这个 issue 上,然后通过 这个 pr 完成调整。
大概意思就是: 原本的设计搞复杂了,用 OnPreDrawListener 更精准,而且不需要为了后面 Andorid12 的启动支持做其他兼容,只需要给 FlutterActivity 等类增加接口开关即可 。
也就是2.5之后 Flutter 使用 ViewTreeObserver.OnPreDrawListener 来实现延迟直到加载出 Flutter 的第一帧。
为什么说默认情况? 因为这个行为在 FlutterActivity 里,是在 getRenderMode() == RenderMode.surface 才会被调用,而 RenderMode 又和 BackgroundMode 有关心 。
所以在 2.5 版本后, FlutterActivity 内部创建完 FlutterView 后就会执行一个 delayFirstAndroidViewDraw 的操作。
这里主要注意一个参数: isFlutterUiDisplayed 。
当 Flutter 被完成展示的时候, isFlutterUiDisplayed 就会被设置为 true。
所以当 Flutter 没有执行完成之前, FlutterView 的 onPreDraw 就会一直返回 false ,这也是 Flutter 2.5 开始之后适配启动页的新调整。
看了这么多,大概可以看到其实开源项目的推进并不是一帆风顺的,没有什么是一开始就是最优解,而是经过多方尝试和交流,才有了现在的版本,事实上开源项目里,类似这样的经历数不胜数:
第一阶段:库/框架选型 前端工程建设的第一项任务就是根据项目特征进行技术选型。 基本上现在没有人完全从0开始做网站,哪怕是政府项目用个jquery都很正常吧,React/Angularjs等框架横空出世,解放了不少生产力,合理的技术选型可以为项目节省许...
我认为的2020年前端开发者最应该掌握的一些比较火爆的技术与知识点。
1,前端框架和语言层面
9月份 Vue3.0 发布,声称对 TypeScript 有着更好的开发体验,通过从不同框架级别 TS 支持上,我们可以看出社区的整个风向从2019年的大家都去学习应用 TS,变成了大家如何把 TS 用的更好这个方向上来了。
所以我认为今年 TypeScript 的火热程度还是应该排名很靠前的,我今年也使用 TypeScript 重构了 Daruk 的服务框架推出了2.0版本,让 TS 开发者拥有更好的 TS 开发体验。
接下来就是两大重磅框架的更新历程对比,Vue3 前面说了一句。而 React 也在十月也发布了 React 17 的 release 版本。这两大主流框架的频繁更新,也说明了社区和作者都在一同演化。
在 Vue 3中除了更好的支持 TS 外,还更新了Composition API。而 React 17 主要是集中精力在升级体验上,虽然没有新的 Feature 但是提升了和解决了很多之前版本潜在的问题。
要说哪个最火还是要看个人实际的使用场景和喜好,但是2020年来看还没有别的框架可以与之一战。
2,大前端相关技术栈
今年基于Chromium的微软edge浏览器也已经推出。google 在 web 端的发展产生了对开发者深刻的影响。Chrome 80+ 也已经发布多个版本,提供了一系列的新特性,比如Core Web Vitals标准,Desktop PWA等都值得我们去关注。
我们说完了浏览器相关的那点技术之后,再聊聊大前端相关的一些技术实践,比如 Flutter。
很多前端在今年已经从 web 开发转型为 Flutter 开发,学习和使用 Dart 技术来构建 UI,这是很多大厂的前端工程师正在经历的事情(包括我的部门也在尝试这个事情),这个趋势应该在未来几年还会持续。
客户端 electron 在今年也有着长足的进展,一年内多次更新版本一路到了10.1.5。随着疫情影响,国内在线教育的又一波兴起。很多桌面软件,网课软件都在采用这个技术来进行开发,市场上的岗位也开始变多,electron 技术可以说在今年也有火的趋势。
然后我们再看看BFF 层,nestjs依然坚挺,越来越多的人开始跳过学习 express 和 koa 开始学习更丰富的 web 框架了,比如 egg 或者我的 daruk,开发者已经在慢慢形成共识,在 web framework 的路上开始越走越远,裸写 nodejs web 服务的时代已经开始慢慢褪去。
不得不提的还有 serverless 在前端的普及,在2020年到达了一个新的高潮。阿里云,腾讯云,头条云等等国内的互联网厂商也都开始大玩 serverless 概念。从对内服务开始转向对外服务,普及的势头很猛,也有落地的趋势和场景。今年的 D2同样也有 serverless 的专场,可见受重视程度非比寻常。
3,工程化提效和个人素质提升
再离我们近一些的推动生产力的技术,比如据我所知在用 CI/CD 和 pipeline 管理上线流程的公司越来越多,这种去年还可以出去吹一吹的东西,今年也逐步变成了业界标配基础能力,如果不会的同学可要抓紧学习了。
2019年前大家都疯狂吐槽面试刷 medium 题目没用,而2020年后大家开始默认面试某些公司都至少要刷到medium程度的题目。这对很多前端来说是一个心智和素质的提升与转变,大家在接触新技术的同时,也慢慢发现,前端整个职业环境的变化,越来越多的公司对人的整体综合素质要求变高了。