【译】使用Kotlin从零开始写一个现代Android-项目-Part1

nameTextView?.setEnabled(true)

仅当nameTextView不为null时,这行代码才会继续执行。另一种情况下,如果我们使用!!操作符:

nameTextView!!.setEnabled(true)

如果nameTextView为null,它将为我们提供NPE。它只适合喜欢冒险的家伙)

这是对Kotlin的一些介绍。我们继续进行,我将停止描述其他Kotlin特定代码。

2、构建变体

通常,在开发中,如果你有两套环境,最常见的是测试环境和生产环境。这些环境在服务器URL图标名称目标api等方面可能有所不同。通常,在开始的每个项目中我都有以下内容:

  • finalProduction: 上传Google Play 使用
  • demoProduction:该版本使用生产环境服务器Url,并且它有着GP上的版本没有的新功能,用户可以在Google play 旁边安装,然后可以进行新功能测试和提供反馈。
  • demoTesting:和demoProduction一样,只不过它用的是测试地址
  • mock: 对于我来说,作为开发人员和设计师而言都是很有用的。有时我们已经准备好设计,而我们的API仍未准备好。等待API准备就绪后再开始开发可不是好的解决方案。此构建变体为提供有mock数据,因此设计团队可以对其进行测试并提供反馈。对于保证项目进度真的很有帮助,一旦API准备就绪,我们便将开发转移到demoTesting环境。

在此应用程序中,我们将拥有所有这些变体。它们的applicationId和名称不同。 gradle 3.0.0 flavourDimension中有一个新的api,可让您混合不同的产品风味,因此您可以混合demominApi23风味。在我们的应用程序中,我们将仅使用“默认” 的flavorDimension。早app的build.gradle中,将此代码插入android {}下:

flavorDimensions “default”

productFlavors {

finalProduction {
dimension “default”
applicationId “me.mladenrakonjac.modernandroidapp”
resValue “string”, “app_name”, “Modern App”
}

demoProduction {
dimension “default”
applicationId “me.mladenrakonjac.modernandroidapp.demoproduction”
resValue “string”, “app_name”, “Modern App Demo P”
}

demoTesting {
dimension “default”
applicationId “me.mladenrakonjac.modernandroidapp.demotesting”
resValue “string”, “app_name”, “Modern App Demo T”
}

mock {
dimension “default”
applicationId “me.mladenrakonjac.modernandroidapp.mock”
resValue “string”, “app_name”, “Modern App Mock”
}
}

打开string.xml文件,删掉app_namestring资源,因此,我们才不会发生资源冲突,然后点击Sync Now,如果转到屏幕左侧的“构建变体”,则可以看到4个不同的构建变体,其中每个都有两种构建类型:“Debug”和“Release”,切换到demoProducti

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值