稀有猿诉

十年磨一剑,历炼出锋芒,说话千百句,不如码二行。

赶紧上车开启Compose大前端之路

前面的文章中,我们一再强调Jetpack Compose是一个声明式的UI框架,尽管我们都是基于Android开发来实战的,但Compose并不局限于Android开发,它其实与特定的开发平台没有关系,是可以做到跨平台开发的。事实上JetBrains早就已经准备好了一套工具,以让Compose跨平台,开发多端应用,跻身于大前端的一员。今天就来学习一下如何使用Compose进行大前端开发。

用Compose中的CompositionLocal来暗渡陈仓

通过前面的学习我们知道Jetpack Compose是一个声明式的UI框架,采用的是函数式编程思想,直观上来看就是一坨函数从上调到下。当函数需要数据时,会通过函数调用的参数来传递,一般来说这也没有什么问题。但当需要的数据特别多时,特别是对于一些非业务逻辑本身的数据(输入与输出),如上下文环境变量(Context,或者主题之类),都通过函数调用的参数传递就难免会让代码变得非常的庞杂和臃肿。这时候就可以使用CompositionLocal,一种在组合树中隐式的从上到下传递数据的方法,我们来具体地看一下。

给Jetpack Compose添加Native支持

Jetpack Compose是一个声明式的UI框架,但一个项目不可能光有UI,还需要有业务逻辑。Compose所用的编程语言是Kotlin,一种基于JVM的多范式通用编程语言,尽管非常强大,但因为现代的项目都非常复杂,多语言混合,有些东西用Kotlin没法实现,或者有些现成的C/C++代码可以复用,这时就需要能把native代码集成到Compose项目中去。

喜迎国庆,用Compose赶制一面五星红旗

我们学习Jetpack Compose已经有一段时间了,通过前面的学习已能掌握足够的技巧以在实战中应用。恰逢普天庆国庆,利用我们学过的知识,使用Jetpack Compose来画一个迎风飘扬的五星红旗吧!废话不多说,先来看一眼效果图。

搞定在Jetpack Compose中优雅地申请运行时权限

随着安全与隐私问题越来越被人们所重视,操作系统对应用程序的限制也越来越严格。一个非常明显的控制就是对于运行时权限(Runtime permissions)的管控是越来越严格,很多原本不需要权限的地方也需要了权限。这就要求应用程序必须能够灵活的处理运行时权限。Jetpack Compose作为一个独立于平台的声明式UI框架,本身并没有权限的概念,权限是平台强相关的,本文将研究一下如何在Compose中优雅的申请运行时权限。

轻松解决Jetpack Compose中的一些痛点问题

暑去秋来,金桂飘香,不知不觉中我们已经练完了『降Compose十八掌』,相信通过这一系列文章能够对Jetpack Compose有足够的理解,并能在实际项目中进行运用。今天将继续Compose之旅,总结一下Compose使用过程中经常会遇到的一些痛点问题,并学会如何优雅的解决这些问题。

Sub Array and Seb Sequences Made Easy

子数组和子序列,特别是在一个区间内,或者一个窗口内的子数组个数或者子序列个数问题是非常常见的一类题目,与其他算法结合在一起,求子数组或者子序列数量是非常常见的题目,今天就来总结 一下。

降Compose十八掌之『神龙摆尾』| Architecture

通过前面的一系列文章,我们已经掌握了足够的Jetpack Compose的开发基础。为了更好的在实际项目中使用Compose,我们还需要了解一下现代应用开发的架构原则,以及使用Jetpack Compose时如何更好的遵循这些原则。这篇文章将聚焦于架构原则这一话题,进行一些探讨和总结。

降Compose十八掌之『羝羊触蕃』| Handle Platform Lifecycles

Jetpack Compose是一个独立的声明式UI框架,它并不受限于任何操作系统平台,从框架定位的角度来讲,它是跨平台的,也应该要跨平台。但是我们的应用程序必然是为某些操作系统平台(后面简称平台Platform)构建的,也就是说要运行在某些平台上面。这就免不了要与平台进行打交道。这篇文章将以Android平台为例,学习在Compose中如何处理平台的生命周期事件。