Android Studio: Google 官方放弃 Eclipse 和 Android Studio 普及。AS 虽然不算新,但是对 Android Studio 这个软件的更新速度快的惊人,有大量的新功能发布。例如支持很多注解代码提示注解、Live code template、支持自动生成 Parcelable 实现等等,作为开发者,持续关注这个更新列表 Recent Changes,一定会让写代码的生活更加美好。
2、编程“语言”
Kotlin:作为 Android 领域的 Swift,绝对如沐新风。抛弃沉重的 Java 语法,Kotlin 融入了很多现代编程语言的思想,作为开发者,接受新的语言,了解新语言的发展趋势,更有利于开阔你的思路和加深对语言的理解。在 Android 开发上,使用 Kotlin 并不会付出什么代价,为什么不来试试使用Kotlin进行Android开发。
React Nativ: 跨平台一直是程序员的梦想,而且移动应用的跨平台解决方案也很多,因为 Facebook 的参与和力推,让这个解决方案带上了光环。第一个用 React Native 开发的 App 已经在 Google Play 上架 Facebook 广告管理工具,听说 Android 的 SDK 也马上会到来,React Native。
Sky:与 React Native 类似,使用 Web 开发语言来做移动平台的开发,虽然这个只是一个尝试,但是这是 Google 自身推出的,特别是在 Java 语言的使用上败诉之后,这可能会有一些作为呢,domokit/sky_sdk。
3、开发模式
Dagger 2:依赖注入并不是什么新技术,但是使用在 Android 确实一个新的尝试。Android App 越来越被当成严肃的大型项目来构建,很多在以前大型服务器开发上使用的技术都被应用到了移动开发。Android 开发分模块开发,使用 Dagger 来松耦合模块。特别值得一体的是,Dagger 2 现在由 Google 亲自接管。 Dagger ‡ A fast dependency injector for Android and Java。
MVP:因为 Android 并没有严格的业务和界面区分,项目一复杂,就很容易使代码陷入混乱。现在 Android 开发社区对 MVP 模式讨论越来越热,觉得 MVP 是非常适合 Android APP 开发。MVP for Android: how to organize the presentation layer。
RxAndroid:函数响应式编程(Functional Reactive Programming)也不是新内容,RxAndroid 把 RxJava 带到 Android 环境中。很多时候,编写 Android 程序,也可以看成是数据的处理和流动,换一种思想编程,曾经看起来很棘手的问题,瞬间就很优雅的解决了:ReactiveX/RxAndroid。
MVVM:这是因为开始官方支持 DataBinding,把 MVVM 直接带到 Android 中。数据绑定在 Windows WPF 和 Web 已经非常常见,它非常高效的开发效率,只关心数据和业务。这也对 Android 开发来说,无疑是一个非常重大的影响:android UI设计MVVM设计模式讨论?。
插件化:针对大型 Android 项目,很多 App 开始使用插件来分模块构建相对独立的功能。
Hybrid:完全使用 HTML 5 开发 App,目前还不成熟。但是折中方案在很多情况下是非常适合的,典型的就是微信,大部分信息展示都是通过 H5 来完成,同时通过 Hybird 方式,把 Web 和 Native 打通,提供给网页访问本地资源的能力。
4、UI设计
Material Design:已经红遍了大江南北,这方面的讨论实在太多了,而且各种支持库都有了,特别是 Google 官方出了一个支持库 Android Design Support Library。
Sketch 3:这是一个专为设计移动端 UI 的设计工具,作为开发者,不用懂那么复杂的 PS 使用,也可以做非常专业设计。
原本java的项目引入Kotlin作为开发语言,在模块还没引用kotlin之前是采用databinding和ARouter进行ui绑定和模块界面跳转的,但是引入Kotlin后出现问题1:databinding冲突;问题2:ARouter提示跳转路径找不到;问题3:Android Architecture Components提示找不到ViewModelProviders
在自己的模块的gradle文件进行配置,我是在module_main模块中引入Kotlin进行开发的,所以我需要在app(module_main)build.gradle文件中添加一下配置信息有
这个仅使用与你项目本来是可以用ARouter来进行跳转的,在跳转到Kotlin的Activity时候提示找不到路径的场景。
这里需要弄清楚kapt与annotationProcessor区别可以查看 KAPT(Annotation Processing for Kotlin)是什么
google新推出MVVM+Android Architecture Components,优势在于不用管理Activity与Fragment的生命周期,当数据更新时候会自动通知到ui上,当然它这个实现还是基于观察者模式的,订阅-发布过程。作为一名优(懒)秀(惰)程序员当然要引入自己项目中啦。
问题来了,javaUI跳转到Kotlin写的UI上App闪退,项目报错信息: Failed resolution of: Landroid/arch/lifecycle/ViewModelProviders ,google了很多方法之后都没用,突然想到ARouter的解决方法,有点共同性,灵机一动,我就把上面的annotationProcessor替换成了kapt,然后项目就成功运行了。真是机(傻)智(逼)如(shi)我(wo)。其实核心问题就是没弄懂annotationProcessor的作用。想学习如何使用Android Architecture Components的童鞋可以去github的官方demo学习,链接如下 android-lifecycles
希望能帮到大家增加对android的热爱,fighting……
Swift和Kotlin作为更加"现代化"的语言,毫无疑问提升了开发原生app的效率,二者旨在与Objective-C和Java互 *** 作,方便"旧"应用的开发进行更新,如果你要从零开始编写一个全新的应用,不要犹豫,选择使用它们,尽情享受它们带来的乐趣。这两个语言有着许多相似之处,让我们来"欣赏"一下吧:
Kotlin有一个称为数据类的东西,该类在编译时将获得诸如hashCode(),toString()和copy()等方法。可以这样定义:
Swift没有数据类或任何等效类。
Swift具有元组功能,并且可以为元组设定类型别名;
Kotlin具有Pair和Triple工具类,用于呈现2元和3元组对象,并且可以通过data class模拟自定义元组。
Swift Struct和Class之间的区别在于,结构体是值类型,而类是引用类型。可将元组视为隐式定义的Struct:
Kotlin没有Struct类型。但是,我们可以通过copy函数创建一个新引用:
我们可以使用Kotlin数据类和Swift结构体来保存数据。即使一个是引用类型,另一个是值类型。
Swift和Kotlin都有枚举。但是声明和匹配方式有很大的区别:
Kotlint通过密封类可以实现枚举。Kotlin的Sealed Class和Swift的Enum之间的唯一区别是,密封类是引用类型,而Swift的Enum是值类型:
Swift还具有隐式解包功能,它定义了一个可选内容,但告诉编译器可以展开该内容,因为后面它将会被值。Kotlin也可以通过lateinit关键字执行相同的 *** 作。需要注意的是,作为开发人员,应尽可能避免使用隐式解包方式。
协议和接口有相同的功能,只是使用了不同的术语。它们定义了一个类在实现接口时必须遵循的一组函数/变量。Kotlin允许在接口的定义中使用泛型,而Swift则可以通过定义关联类型associatedtype来实现。
高阶函数本质上是接受闭包或函数作为参数并返回新值或另一个函数的函数。使用高阶函数,我们可以对值(例如数组)进行转换,过滤和迭代。
参考:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)