LoopBack 操作记录 | Ohmer's Blog

作者:JerryXia | 发表于 , 阅读 (0)
Get Started继续查看Getting started
自定义MySql连接自定义table名字在模型的json文件中common/model/category.json添加Mysql的配置
12345678{  "name": "Category",  ...  "mysql": {    "table": "custom_category" // 自定义的表名  }  ...}更多Model的Json定义参考Model definition JSON file
自定义table列名同样在模型定义的json文件中,common/model/category.json找到properties模块的配置,为需要自定义表列名的属性下添加msql配置信息
1234567891011121314151617{  "name": "category",  ...  "properties": {    ...    "title": {      "type": "String",      "required": true,      "mysql":{        "colu...阅读全文

沪江学习安卓端应用架构重构 | Ohmer's Blog

作者:JerryXia | 发表于 , 阅读 (0)
对于大的架构重构,其实我们一直很谨慎的。我们的原则是将重构融合在每次迭代中,逐步优化代码的结构。这次针对整个应用的架构的调整的背景是公司移动开发部门的人数和项目越来越多,当初设计的移动端的架构让项目的依赖关系越来越复杂,维护成本也越来越高。刚好赶上公司产品的特别需求,我们决定梳理并优化一下整个项目解构。最后,我们还是将整个重构的过程融合在每个迭代中,逐步完成一次大的架构升级。
目标
如图所示,这次重构围绕一个老生常谈的概念「解耦」展开,设定几个目标:
清晰划分各模块的角色明确架构层级及各个模块所在的层级提高整个架构横向扩展的能力提高编译效率,由于我们项目大量使用 Kotlin 开发和 AOP 技术,在编译上面个比较耗时,期望在架构调整后,在整个项目的编译效率上又一次大的提升各模块独立开发,面向接口和协议编程提高可维护性现状在重构之前,我们的应用架构可以大致分为两层,应用层和 Library 层。一些通用的 Library 主要由专门的部门的同事维护,各业务线也会有一些自己维护的依赖库,也属于 Library 层。各业务线的主应用通过直接依赖的方式使用所需要 Library 提供的...阅读全文

NullPointException 利器 Kotlin 可选型 | Ohmer's Blog

作者:JerryXia | 发表于 , 阅读 (0)
tags: Kotlin
NullPointException (简称 NPE ) 被称作 The Billion Dollar Mistake一直困扰着Java 和 Android 开发者。Kotlin 的类型系统中提供可选类型用于减少 NPE 问题带来的风险。
虽然,Kotlin 提供了可选类型用于减少 NPE 问题的风险,但是并没有办法完全消除 NPE 带来的隐患,本问将探讨如何巧妙地使用「可选型」更好的规避 NPE 的发生。
可选型定义非空类型我们先从可选型的定义开始,当我们在 Kotlin 中定义一个变量时,默认就是非空类型的,当你将一个非空类型置空的时候,编译器会告诉你这不可行。
12var a: String = "abc"a = null // compilation error因此,如果你后面任何时候使用该变量时,都可以放心的使用而不用担心会发生 NPE。所以要想远离 NPE,首先需要「尽可能的使用非空类型的定义」。
可选型(可空类型)虽然「非空类型」能够有效避免 NPE 的问题,但是有时候我们总不可避免的需要使用「可选类型」。在定义可选型的时候,我们只要在...阅读全文

Kotlin 一个扩展函数,从此丢掉 ViewHolder | Ohmer's Blog

作者:JerryXia | 发表于 , 阅读 (0)
tags: Android, Kotlin
ViewHolder作为一名 Android 开发者,对 ViewHolder 应该再熟悉不过了。ViewHolder 一开始并不是 Android 原生提供的(现在已经是 RecycleView 的默认实现了),而是 Google 为了提高 ListView 的使用性能,为开发者提供的一种最佳实践,具体可以参考 ViewHolder。
Google 提供的 ViewHolder 的标准实现如下,熟悉者可以直接跳到下个部分「ViewHolder变种」继续阅读。
123456static class ViewHolder {  TextView text;  TextView timestamp;  ImageView icon;  ProgressBar progress;}在 Item 第一次创建视图的时候,填充 ViewHolder 并且将其保存在视图中。
123456ViewHolder holder = new ViewHolder();holder.icon = (ImageView) convertView.findVie...阅读全文

Kotlin:The Good, The Bad, and The Ugly(译) | Ohmer's Blog

作者:JerryXia | 发表于 , 阅读 (0)
tags: Kotlin, Android
在我的 上一篇文章, 谈到了关于转换 Java 到 Kotlin 代码和我喜欢的一些库。现在,我想要谈谈关于 Kotlin 这门语言本身的想法,还有它和 Java 交互的方式。
The GoodKotlin 有许多让人喜欢的理由。像 null safety、property access 和 unchecked exceptions 类似这些明显的特性在 publications都有描述,我就不重复了。我只讲一些我真正喜欢但很少被提到的特性。
Automatic conversion of Java to KotlinJetBrains 在 IntelliJ 中集成了 Java to Kotlin converter 为我们节约了大量的时间。虽然它还不是很完美,但是它让你不用再重复输入。要是没有它,你将要花费大量的时间从 Java 代码转换成 Kotlin。
lateinit, Delegates.notNull and lazyKotlin 的 null safety 非常好,但是由于在 Android 的 Activity 生命周...阅读全文