是时候学习新技术了:

转自:https://blog.csdn.net/qq_41346910/article/details/86692124


移动开发发展到现在,已经出现了三种开发方式。本文我将为你分析每一种开发的好处和缺点,帮选择一门你喜欢的开发。

你可能会遇到过没有不认识的名词,请一定要了解一下,你只需要右键搜索。

  1. 原生开发
  2. React Native (下文简称RN)
  3. Flutter

技术在不断前进,在原生开发还没有精通、RN还只是了解的时候,Flutter就横空出世了。不知道你急不急,我感觉面对移动开发的热度和入门很低的现在。你是时候掌握一门新的跨平台技术了,Android 和Ios一起开发,不要为自己没有Ios的手机为借口,买不起新的,买个二手的也行啊。

一、原生开发

1.概述
原生开发最简单理解了。如果你是从事的Android开发,你用Java和Kotlin开发的应用就是原生开发了,ios也同理。

2.优点
性能高 (不管是UI绘制和功能实现)
专一性高  (可针对物联网、车辆网、等)
可以完成高复杂App、用户体验好 
可以直接调用Android系统的API,学习比较容易,开发资料非常多。
3.缺点
成本高(无法跨平台,分别需要Android开发人员和Ios开发人员)
维护度高(Android的各种兼容,最明显的就是屏幕)
动态度比较复杂(一般更新只能发布新版本,需要各App市场审核。当然热修复和热更新可以一定程度上解决)
4、总结
自我感觉原生开发不是最差的路线,而是最好的。我对原生开发的建议,不要止步在对现有Android的App能完成开发。你应该选择深入学习。

对Android系统底层深入理解,framework的理解,以及自己实现。

实现复杂的UI可以话出各种别人无法绘制出来的UI,从把自己项目中的第三方UI库替换为自己的UI开始。

你写的App除了不能跨平台,别的方面是别的技术无法比拟的!!!

你的Android开发不至于App的简单开发,你可以把Tensorflow在Android上跑通。

你可以学习好c、c++做NDK开发、研究OpenCv、OpenGL、Openssl

二、React Native

1.概述
使用JavaScript和React编写原生移动应用。

React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。 你要做的就是把这些基础组件使用JavaScript和React的方式组合起来。

2.优点
跨平台(这是Android原生无法比的)
高性价(只需要一个精通JavaScript一门语言的工程师)
高动态  
3.缺点
性能低  
操作复杂(无法直接调用一些系统功能)
4.总结
最强点在与跨平台和高性价。如果你对前端很喜欢,可以通过这一方面向前端好好发展,或者成为一名全栈开发。这门技术比较成熟,学习资料也比较不少。

三、Flutter

1.概述
Flutter是自绘UI+原生。

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

2.优点
跨平台 (同样可以在Android和Ios运行)
性能比较高 (比RN高比原生低)
高灵活  (自己写UI)
热重载  
3.缺点
动态度低 (为了保证UI绘制性能)
成本高(学习资料少,还是新出来的技术不稳定)
4.总结
个人认为,如果你很喜欢App开发,你还是要学习Flutter,毕竟这是google出品,而且有一统移动App开发之势。

喜欢前端就学习RN,去慢慢接受前端的美。

喜欢Android底层、物联网等,你需要把你的Android学的更加深入。

最重要的是  深入学习

.

【Flutter学习一】Android的App的三种开发方式的更多相关文章

  1. APP的三种开发模式

    转载于http://pleasureswx123.github.io/2014/09/15/APP%E7%9A%84%E4%B8%89%E7%A7%8D%E5%BC%80%E5%8F%91%E6%A8 ...

  2. uni-app&H5&Android混合开发三 || uni-app调用Android原生方法的三种方式

    前言: 关于H5的调用Android原生方法的方式有很多,在该片文章中我主要简单介绍三种与Android原生方法交互的方式. 一.H5+方法调用android原生方法 H5+ Android开发规范官 ...

  3. App开发三种模式

    APP开发三种模式 现在App开发的模式包含以下三种: Native App 原生开发AppWeb App 网页AppHybrid App 混合原生和Web技术开发的App 详细介绍: http:// ...

  4. Android平台中的三种翻页效果机器实现原理

    本文给开发者集中展现了Android平台中的三种翻页效果机器实现原理,希望能够对开发者有实际的帮助价值! 第一种翻页效果如下:     实现原理: 当前手指触摸点为a,则 a点坐标为(ax,ay), ...

  5. Android自定义View的三种实现方式

    在毕设项目中多处用到自定义控件,一直打算总结一下自定义控件的实现方式,今天就来总结一下吧.在此之前学习了郭霖大神博客上面关于自定义View的几篇博文,感觉受益良多,本文中就参考了其中的一些内容. 总结 ...

  6. 结对编程学习fault、error、failure三种状态

    点滴成就 学习时间 新编写代码行数 博客量(篇) 学习知识点 第一周 10小时 0 0 了解软件工程 第二周 10小时 0 1 项目开题 第三周 15小时 0 1 开通博客.开展项目调查 第四周 20 ...

  7. Android Studio项目中三种依赖的添加方式

    通常一个AS项目中的依赖关系有三种,一是本地依赖(主要是对本地的jar包),二是模块依赖,三是远程依赖:添加这些依赖的目的在于上我们想要在项目的某一个模块中使用其中的功能,比如okttp这个网络框架库 ...

  8. Android启动组件的三种主流及若干非主流方式

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处 启动组件的一些方式,今天做一个简要的总结 Service:通过startService()启动,或者写 ...

  9. Android录制音频的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

随机推荐

  1. js笔记18

    1.面向对象 (1)单例模式 (2)工厂模式 (3)构造函数 a.类  js天生自带的类 基类   object 子类   Function  Array Number  Math  Boolean ...

  2. 【LeetCode每日一题 Day 5】5. 最长回文子串

    大家好,我是编程熊,今天是LeetCode每日一题的第五天,一起学习LeetCode第五题<最长回文子串>. 题意 给你一个字符串 s,找到 s 中最长的回文子串. 示例 输入:s = & ...

  3. 揭开Docker的面纱

    开新坑了,开始挖坑Docker了,兄弟们.为什么需要Docker呢?Docker是什么?这里开始揭开Docker的面纱. 一.为什么需要Docker 可能每个开发人员都有一种困扰,软件开发完之后部署项 ...

  4. 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈

    2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈 题目描述 **取球博弈 今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并 ...

  5. Xshell怎么连接数据库

    之前一直用Navicat Premium链接数据库,其实在xshell也可以链接数据库,本文将先介绍如何用xshell链接数据库的方法. 1.打开xshell,连接上 输入指令:mysql -h 19 ...

  6. abp知识

    领域驱动开发的特点:1.分层更多,前期代码量大,后期维护方便2.业务进行了专业的领域划分,业务逻辑更加清晰,便于业务扩展.3.代码工程高内聚,更加精简.4.主要是解决复杂业务逻辑编写问题 为什么要使用 ...

  7. 【Spring】Spring中的循环依赖及解决

    什么是循环依赖? 就是A对象依赖了B对象,B对象依赖了A对象. 比如: // A依赖了B class A{ public B b; } // B依赖了A class B{ public A a; } ...

  8. (精)题解 guP4878 [USACO05DEC] 布局

    差分约束模版题 不过后三个点简直是满满的恶意qwq 这里不说做题思路(毕竟纯模板),只说几个坑点: 1. 相邻的两头牛间必须建边(这点好像luogu没有体现),例如一组数据: 4 1 1 1 4 10 ...

  9. c语言:结果不理解

    #include <stdio.h> int main() { int a;float b; scanf("a=%d,b=%f",&a,&b); pri ...

  10. Python运行时报错 ModuleNotFoundError: No module named ‘exceptions‘

    踩的坑: 搜教程,很多文章都推荐使用:pip install python_docx‑0.8.10‑py2.py3‑none‑any.whl 但是依旧报错. 成功的示范: 使用命令:pip3 inst ...