阅读更多

4顶
0踩

移动开发
作为一个程序员,应该养成持续学习的能力,随时关注新技术,有时候做起事来会让你事半功倍的效果。之前在知乎上看到下面这个问题,觉得很受用,所有就总结了大牛们的回答,也跟着大牛们的脚步,看看有哪些新技术,也跟着学习学习,涨涨见识。

引用
本文参考@Android 笔记在知乎的回答:
Android 开发有哪些新技术出现?
https://www.zhihu.com/question/32037895

Android Studio

Android Studio 是Google 官方推出的全新的Android 开发的IDE,自2013 年发布,目前最新稳定版是1.5。
目前Google 官方放弃 Eclipse 的支持,加上Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。
例如支持很多注解代码提示注解、Live Code Template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表:tools.android.com/recent,一定会让你的写代码的生活更加美好。
而且Android 1.0 之后大量的新特性,让我们的开发更便捷,比如Vector Asset,Theme Editor,Gradle 编译速度大幅提升,Android Studio 2.0 的Install Run 实现的实时运行功能。

Material Design 设计

Android 4.0 的Android Design 留下了诟病,也让Google 下定了决心,在5.0 推出了Material Design 全平台设计语言。它对于每一个点击,每一次滑动都有设计规范。对于设计师和程序员都是值得一看的。
引用
Material Design 设计规范:https://design.google.com/

Design 设计支持库

如果说Material Design 是设计师看的(其实程序员也应该看)。那么的Design 设计支持库,也使得Material Design 设计在Android 中也慢慢实现了。也让没有设计感的程序员也可以制作出惊艳的App。比如Navigation View(侧滑栏),Floating Action Button(悬浮按钮),Snackbar,TabLayout,CoordinatorLayout,App Bar,nestedscrollview。
引用

Sketch 3

这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计:https://designcode.io/sketch
RecyclerView

RecyclerView的几大特性:
  • ViewHolder 模式:在ListView 中需要手动添加ViewHolder 模式,而且不会重用之前的View,RecyclerView默认实现了重用,让绘制View 更加高效。
  • LayoutManager :设置布局,就可以实现单列表,GridView,瀑布流的效果。
  • Item Decoration:自定义各种分割线
  • Item Animator:设置各种炫酷增删动画

RecyclerView 对于不同类型可以很容易添加。现在很多App 的首页很复杂的内容,样式不一样,使用RecyclerView 很容易解决,还有底部加载更多也很容易实现。
Kotlin

作为 Android 领域的 Swift,绝对让你如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会让你付出什么代价,为什么不来试试?

Fresco

Fresco是Facebook最新推出的一款用于Android应用中展示图片的强大图片库,可以从网络、本地存储和本地资源中加载图片。其中的Drawees可以显示占位符,直到图片加载完成。而当图片从屏幕上消失时,会自动释放内存。
React Native

React Native 结合了 Web 应用和 Native 应用的优势,可以使用 JavaScript 来开发 iOS 和 Android 原生应用。在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替 DOM 元素来渲染等。

跨平台一直是程序员的梦想,而且移动应用的跨平台解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,目前iOS 和Android 版本都已发布,最新版为0.5。

Dagger 2

Dagger 2 是Google 主导开发的依赖注入框架,它是基于Dagger 1(由Square 主导开发),利用生成和写的代码混合达到看似所有的产生和提供依赖的代码都是手写的样子,极大减少了使用者的编码负担,也更便于调试,Google 声称提高了13 % 的性能。

MVP

我们都知道MVC 模式,MVP 就是基于MVC 的模式上的一个演化版本。在MVC模式中,Activity应该是属于View这一层。而实质上,它既承担了View,同时也包含一些Controller的东西在里面。随着项目的迭代更新,这对开发很不友好,耦合度也原来越高,项目越来越难维护,而MVP 就是解决这样的痛点。把Activity的View和Controller抽离出来就变成了View和Presenter。

DataBinding MVVM

DataBinding 即数据绑定,在前端的框架有很广泛的使用,比如像AngularJS,就支持双向绑定。
所谓MVVM,像Activity,Fragment,View 都属于View 这一层;Model层主要负责数据相关部分,可以从数据库或者网络获取;ViewModel主要是把Model转换为View 可以呈现的东西,例如把一个Date 类型转化为格式化后的String,也就是将前面两者联系在一起的对象,
在Data Binding 支持下,会根据layout 文件名自动生成一个相对应的Binding(比如activity_main,对应生成MainActivityDataBinding 对象),数据绑定在Layout文件中XML标注。
在Google I/O 2015上,伴随着Android M预览版发布的Data Binding 兼容函数库改变了这一切。而在Android Studio 2.5 的预览版,Data Binding 在XML 中也终于有了代码提示功能。
RxJava/RxAndroid

RxJava一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。用简单的一个词来介绍就是“异步”。
它提供了基于Observable(观察者) 序列实现的异步调用及基于事件编程。
它扩展了观察者模式,支持数据、事件序列并允许你合并序列,无需关心底层的线程处理、同步、线程安全、并发数据结构和非阻塞I/O处理。
它支持Java5 及更高版本,并支持其他一些基于JVM的语言,如Groovy、Clojure和Scala。而且他能和Retrofit 更好的结合使用,也有相对应的RxBus 等框架结合。

Espresso 2.0

近些年,随着Android社区的成熟,出现了诸如Robotium,Robolectric等的优秀测试框架。而Google也在近期推出了自己的UI测试框架Espresso。
Espresso 是一个提供了简单 API 的用于 Android App UI 测试的测试框架。最新的 2.0 版本发布后已经可以在 Android Support Repository 中下载了,那么在项目中集成它就方便多了。它的API 很小,对外扩张开放,测试跑起来那是相当的快,对Gradle 和Android Studio 支持。
Baas

Baas又称mBaas,全称叫Backend as a Service(后端作为一种服务), 怎么说呢,为移动应用开发者提供后端服务;作为一个移动应用开发者(Android & iPhone),除了开发应用程序,还要做后台的服务器端,当然,大多移动应用开发者并非都懂后端开发, 这让一个应用应用开发者开发一款应用不容易,然而有了Baas,开发者就可以不用管后端开发了,Baas 提供商,提供了我们最常用的功能,比如数据存储,应用分析,IM 等功能,让开发者把主要精力放在应用本身,大大提高了效率。
当然也不一定是移动应用开发者,当然也可以Web 开发,当初Baas 主要是为了解决移动应用开发者的后端服务问题,Baas 也提供其他的服务;国外类似Parse,Firebase,国内像LeanCloud 都是提供这样的服务。

App Indexing

我们都知道网页是一个一个超链接相连的,然而在移动互联网时代,每个App 里的数据就想信息孤岛,App Indexing 就是要打破这样的尴尬,只要你在App 实现App Indexing 功能,你的App 里的数据,就会出现在Google 的搜索结果中,尤其是出海的App,这个功能尤其重要,据说Google 打算实现在网页中直接安装App。

本文转自:Tikitoo Blog
来自: Tikitoo Blog
4
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C#中TCP粘包问题的解决方法

    主要为大家详细介绍了C#中TCP粘包问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  • java中处理socket通信过程中粘包的情况

    本篇文章主要介绍了java中处理socket通信过程中粘包的情况,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  • golang网络socket粘包问题的解决方法

    主要介绍了golang网络socket粘包问题的解决方法,简单讲述了socket粘包的定义并结合实例形式分析了Go语言解决粘包问题的方法,需要的朋友可以参考下

  • Golang TCP粘包拆包问题的解决方法

    于是通过查阅资料,发现这个就是传说中的TCP粘包问题。下面通过编写代码来重现这个问题: 服务端代码 server/main.go func main() { l, err := net.Listen(tcp, :4044) if err != nil { panic(err) } fmt....

  • c#tcp 粘包拆包解决方法,包头加数据长度

    发生TCP粘包或拆包有很多原因,现列出常见的几点,可能不全面,欢迎补充, 1、要发送的数据大于TCP发送缓冲区剩余空间大小,将会发生拆包。 2、待发送数据大于MSS(最大报文长度),TCP在传输前将进行拆包。 3、...

  • java socket 粘包解决_关于socket粘包、拆包的解决方法总结

    在平时客户端socket开发中,如果客户端连续不断的向服务端发送数据包时,服务端接收的数据会出现两个数据包粘在一起的情况,这就是TCP协议中经常会遇到的粘包以及拆包的问题。我们都知道TCP属于传输层的协议,传输层...

  • python TCP Socket的粘包和分包的处理详解

    主要介绍了python TCP Socket的粘包和分包的处理详解,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

  • java socket解决半包、粘包问题

    java socket解决半包、粘包问题 一、java socket出现半包、粘包问题原因及解决见博客: http://www.cnblogs.com/solq/p/4315763.html http://bbs.csdn.net/topics/250027309?page=2 ...

  • C#TCP\Socket粘包处理(加长度头)

    资料文件用于解决C#编程中发生的粘包问题的处理

  • 【QT】自定义协议解决TCP粘包和拆包问题

    本demo模拟了TCP通信中发送端和接收端的行为,并利用序列化和反序列化的思想,自定义协议来解决TCP的粘包和拆包问题。

  • SuperSocketDemo:一个基于WPF + SuperSocket的TCP长连接小示例 实现心跳检测、断线重连、解决TCP粘包问题

    一般所谓的TCP粘包是在一次接收数据不能完全地体现一个完整的消息数据。TCP通讯存在粘包的主要原因是TCP是以流的方式来处理数据,所以就会引发一次接收的数据无法满足消息的需要,导致粘包的存在。处理粘包的唯一...

  • Java Socket TCP粘包和拆包问题

    客户端发送一次消息后,服务端读取这次消息,可能由于socket缓冲区较大,继续等待客户端的发送,如果未收到则读取完成,如果收到则将新读取的内容拼接到旧的后面,这样的现象会造成数据传输错误,解决这个错误需要...

  • TCP粘包|拆包和解决方案

    收发两端(客户端和服务端)都要有一一成对的socket,因此,发送端为了将多个发给接收端的包,更有效的发给对方,使用了优化算法(),将许多数据量小且间隔小的数据,合并成了一个大数据块,然后进行封包,这样做...

  • JAVA Socket编程学习10--解决TCP粘包分包问题

     根据我的第六篇文章http://blog.csdn.net/m0_37739193/article/details/78484577编写了NIO的Socket服务端代码后,接受UDP的数据正常,但是接收的TCP数据却出现了粘包分包/拆包/半包问题,查阅网上资料知道已经有...

  • Socket编程TCP粘包Demo.zip

    利用网络通信中,经常会出现粘包的问题,围绕着这个问题说原因和解决的蛮多帖子的,但是给出粘包代码的就好少,为了便于大家更好的理解粘包的问题,这里对客户端和服务器端出现的粘包问题进行模拟

  • Java 面试题 —— TCP 粘包、拆包问题

    Java 面试题 —— TCP 粘包、拆包问题 1、粘包、拆包问题概况 2、产生原因 3、解决方案 4、Netty 框架对 TCP 粘包拆包问题的解决工具

  • Socket编程(网络编程)中TCP粘包的实例,含代码演示

    利用网络通信中,经常会出现粘包的问题,围绕着这个问题说原因和解决的蛮多帖子的,但是给出粘包代码的就好少,为了便于大家更好的理解粘包的问题,这里对客户端和服务器端出现的粘包问题进行模拟,以方便更好的理解...

  • Java-美妆神域_3rm1m18i_221-wx.zip

    Java-美妆神域_3rm1m18i_221-wx.zip

  • 51单片机的温度监测与控制(温控风扇)

    51单片机的温度监测与控制(温控风扇)

  • 电赛案例,C++简单的智能家居系统,其中包含了温度监测、光照控制和报警系

    电赛案例,C++简单的智能家居系统,其中包含了温度监测、光照控制和报警系统。该系统可以: 监控室内温度:当温度超过设定阈值时,触发警报。 自动调节光照:根据光线传感器的值自动调节LED灯的亮度。 入侵检测:通过红外传感器检测入侵,并触发警报。

Global site tag (gtag.js) - Google Analytics