zoukankan      html  css  js  c++  java
  • 移动应用开发总纲

    假如要开发移动应用,最直接方式是直接开发Android和iOS应用,即是用Java和Object-c写。

    但这就要求配备Android和iOS开发人员,有没有其他更高效的方式?

    混合应用

    在不太考虑性能和运行效果情况下,可以选择混合应用框架。

    大概在13年,也即使我毕业那种,就有Cordova这种框架,它允许你是用web技术开发页面,然后运行在原生webview容器上。

    相比原生界面代码,用web写会简单高效多。

     

    这时是需要移动端原生人员集成Cordova,给出配套的打包,当Cordova不支持需求,自行定制开发。

    假如不想干这事,也可以找提供混合应用集成和打包的服务商,那么只需要web开发人员即可开发移动应用。

    其中需要关注的是,Android和iOS都需要打包证书,Android的比较简单,而iOS就较为复杂,申请证书就要企业身份,企业证书发布的还好,上架到AppStore更是麻烦,多次打回重改是必修课。

    混合应用2

    如果嫌弃web做的页面效果,那么可以换一种用前端语法写,但是本质上是原生的框架。阿里曾经就搞过个叫weex框架,是用vue的语法来写,由容器来解析成原生界面。

    从原理上,这种方式是更为高效,毕竟它本质上是原生程序,但是,但是,这也是从原理上说的。从这种框架诞生开始到现在,就没给出一个高效的证据。

    虽然说是用前端语法来写,但毕竟真不是web技术,有很多的关键特性无法使用,开发过程会有各种各样的麻烦。本质上是因为这种解释性的框架,无法完全解释web技术的语法与特性,一定会是部分支持,你完全不知道哪些东西它就不支持了。

    你想想,它要是完全解释了web的HTML、CSS、JavaScript,那它本身不就是一种新语言么。其开发者得有多大的能耐,才能实现那么多语法特性。

    所以,我极其不赞同使用这种框架技术,它把web技术阉割了,它导致的麻烦使得开发者的效率可能比开发原生程序还慢。

    Flutter

    也许web页面效果真无法满足要求,不想用混合应用,但又想提高开发效率,至少不用Android和iOS各开发一套,那么目前Flutter就是最佳方案。

    Flutter几大特性

    快速开发

    Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态。

    富有表现力,漂亮的用户界面

    使用Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验。

    现代的,响应式框架

    使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战。

    访问本地功能和SDK

    通过平台相关的API、第三方SDK和原生代码让您的应用变得强大易用。 Flutter允许您复用现有的Java、Swift或ObjC代码,访问iOS和Android上的原生系统功能和系统SDK。

    统一的应用开发体验

    Flutter拥有丰富的工具和库,可以帮助您轻松地同时在iOS和Android系统中实现您的想法和创意。 如果您没有任何移动端开发体验,Flutter是一种轻松快捷的方式来构建漂亮的移动应用程序。 如果您是一位经验丰富的iOS或Android开发人员,则可以使用Flutter作为视图(View)层, 并可以使用已经用Java / ObjC / Swift完成的部分(Flutter支持混合开发)。

    个人见解

    性能。

    无需担心的问题,它本身就是原生代码。

    界面。

    漂不漂亮见仁见智。

    响应式。

    提高开发效率的特性,赞。

    原生API。

    这种支持是必然的。

    统一开发。

    这种是最为关键的,不再需要同时配备Android和iOS开发人员,以后招聘开发人员,很可能就是写着Flutter开发人员。

    整体解决方案

    简单的移动APP

    如果是做简单的移动APP,那么选择以上一种就可以了。

    原生实现;

    混合应用;

    Flutter;

    平台级应用

    如果是一个平台级应用,那么就可以使用Flutter做平台能力,然后集成Cordova(或者其他类似能力框架),做平台上的应用。

    这样,平台的能力拥有原生效果,又因为是Flutter,原生开发人员需求降低,而平台应用,可以web开发人员来做,这样对开发者要求大大降低,可以短平快的产出应用。 

    本文为原创文章,转载请保留原出处,方便溯源,如有错误地方,谢谢指正。

    本文地址 :http://www.cnblogs.com/lovesong/p/15487988.html

  • 相关阅读:
    ACM的算法分类 2015-04-16 14:25 22人阅读 评论(0) 收藏
    初学Larevel 2014-08-21 11:24 90人阅读 评论(0) 收藏
    初学PHP&MySQL 2014-05-31 12:40 92人阅读 评论(0) 收藏
    codeforces 570 E. Pig and Palindromes (dp)
    codeforces 570 D. Tree Requests (dfs序)
    poj 2157 Maze (bfs)
    cf 570 C. Replacement (暴力)
    cf 570B B. Simple Game(构造)
    cf 570 A. Elections
    hdu 1429胜利大逃亡(续) (bfs+状态压缩)
  • 原文地址:https://www.cnblogs.com/lovesong/p/15487988.html
Copyright © 2011-2022 走看看