首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android Compose 新闻App(一)网络框架搭建

Compose 新闻App(一)网络框架搭建 前言 正文 一、项目创建 二、依赖配置 三、数据API 四、网络框架构建 五、项目配置 六、网络请求 七、源码 前言   要去学习新的知识,光是简单的使用还是不够的...正文   最近觉得Compose很有意思,想要去写一个关于Compose的系列文章,做一个简单的新闻App,话不多说,我们新建一个项目吧。...一、项目创建 这里选择的是Empty Compose Activity,点击Next。...二、依赖配置   作为一个新闻App,新闻数据的获取是通过网络API,那么我们需要先构建一个网络框架。...onCreate() { super.onCreate() context = applicationContext } } 然后因为我们访问的API是http开头的,在Android9.0

2.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Android Compose 新闻App(七)网络图片加载、Tab、HorizontalPager

Android Compose 新闻App(七)网络图片加载、Tab、HorizontalPager 前言 正文 一、申请API ① 增加服务接口 ② HomeRepository ③ HomeViewModel...二、网络图片加载 三、BottomBar遮挡 四、Tab + HorizontalPager 五、修改页面 六、源码 前言   在上一篇文章中,新增加了一个主页面,那么这个主页面用来做什么呢?...二、网络图片加载   之前在Android的开发你肯定是了解过Glide框架的,那么现在在Compose中使用Coli库,这个库有什么优点呢?...Coil 是一个 Android 图片加载库,通过 Kotlin 协程的方式加载图片。...使用它需要添加依赖,在app的build.gradle的dependencies{}闭包,代码如下: //Coil库 implementation 'io.coil-kt:coil-compose

1.6K40

我的Compose开源项目《出行防疫App》已发布

前言 在我的新书《Android Jetpack开发:原理解析与应用实战》 项目实战中,我们实现了一个MVVM版本的出行防疫App。...之前说过,会开发对应的Compose版本,如今,他来了~ 项目简介 如果你还没看过非Compose版本可以点击链接查看。...这是一款MVVM模式的Compose App,采用了组件化、Aroute、协程、flow等技术,适合初学者学习使用。此项目将长期维护,后续所有的新技术、平台适配等都将基于此项目实践。...聚合数据"在线API,需申请对应的API,申请成功后将key值替换到appbase下BaseApi中的KEY变量中 模块说明 app 入口模块 appbase 基础模块:基类Activity、网络请求...~ 项目地址 如果你觉得项目对你有帮助,欢迎start和Issue~ 项目地址:GitHub - huanglinqing123/TravelPreventionCompose: Compose-MVVM

70030

Jetpack Compose+架构=优秀APP?

前言 Jetpack ComposeAndroid推出的新一代声明式UI框架,Compose库是用响应式编程的方式对View进行构建,用更少更直观的代码拥有更强大的功能,同时还能提高开发速度。...总的来说与Compose最为契合的架构还是MVVMMVVM凭借着Controller清晰简洁、方便测试、开发解耦等优势深得各开发大佬的青睐。 ##如何快速入门 Compose ?...对于广大开发者来说,ComposeAndroid UI的未来,现阶段你可以不会用,但是未来如果你还想留在Android平台的话,Compose就是你必不可少的技能之一。...插槽API 第二章 Jetpack Compose构建Android UI 1....Android Jetpack Compose 最全上手指南 Jetpack Compose 环境准备和Hello World 布局 使用Material design 设计 Compose 布局实时预览

1.6K20

Mvvm、RxJava、Retrofit 三剑合璧

废话 说起现在Android流行的app架构,脱口而出MVP、MVVM,要问两者区别,张口就来,balabalabala。。...当然光说MVVM是不行的,肯定要讲一讲网络请求框架Retrofit,Retrofit和RxJava通常都是配套使用,所以这篇文章就把三者串在一起讲。...在MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding 使我们构建Android MVVM 应用程序成为可能。...Adapter的写法 粉丝列表:从网络获取数据,主要演示RxJava+Retrofit的基本使用方法 构建 理论讲了这么,不废话了,下面就开始搭建MVVM的应用程序。...compose指定请求网络和结果回调的线程 preAction主要是为了在请求之前做一些前置操作,比如showLoadingView啥的 subscribe绑定了订阅者,下面就来看下这个订阅这做了哪些事情

2.6K20

MVVM 成为历史,Google 全面倒向 MVI

看起来Google已经开始推荐使用MVI架构了,大家也有必要开始了解一下Android应用架构指南的最新版本了~ 总体架构 两个架构原则 Android的架构设计原则主要有两个 分离关注点 要遵循的最重要的原则是分离关注点...每当数据发生变化时,无论是因为用户互动(例如按了某个按钮),还是因为外部输入(例如网络响应),界面都应随之更新,以反映这些变化。...当然在软件开发中没有最好的架构,只有最合适的架构,各位可根据情况选用适合项目的架构,实际上在我看来Google在指南中推荐使用MVI而不再是MVVM,很可能是为了统一AndroidCompose的架构...因为在Compose中并没有双向数据绑定,只有单向数据流动,因此MVI是最适合Compose的架构。...,后续也可以无缝切换到Compose

1.8K10

MVVM、RxJava、Retrofit三剑合璧,事半功倍

前言 MVVM和MVP是当前比较流行的两种应用开发架构,两者各有优缺点。目前公司所有Android项目用的都是MVP架构,所以这篇文章我们可以一起来深入了解一下。...本文仅讨论在Android平台应用开发中的使用,其它平台也相似但可能存在些许差别。 简介 在搭建MVVM项目之前我们先来简单了解下MVVM模式,以及和MVP的区别。...在Android中我们可以通过一个简单的配置集成DataBinding,使我们构建Android MVVM 应用程序成为可能。...RecyclerView列表Adapter的写法 (4)粉丝列表:从网络获取数据,主要演示RxJava+Retrofit的基本使用方法 构建 废话讲了这么,下面开始正式搭建MVVM应用。...Compose指定请求网络和结果回调的线程。 PreAction主要是为了在请求之前做一些前置操作,比如ShowLoadingView啥的。

2.3K40

DDU框架学习之路

theme: condensed-night-purple Android官方推荐架构:DDU MVVM对比 M:Model 网络层 用于获取远端数据 VM:ViewModel 中间转换层 获取网络层数据进行转换成...可以直接使用的数据 V:VM提供数据,V负责展示,VM中通过提供可被观察的数据流(Flow或者LiveData)来实现V层被动更新,不需要手动调用VM获取数据 DDU 数据消费者UI UI layer,对应于MVVM...的V层用于展示数据 UIElements:界面元素  通过View/Compose实现的界面树 UIState:界面数据状态  通过包装界面控件属性值来驱动UI改变 数据的转换者:Domain Layer...LiveData包装可被观察的数据流,Domain Layer层可直接改变也可以放到DataLayer中去处理(根据业务逻辑选择) 数据图生产者/提供者 DataLayer 整合用户需要的备份内存数据操作及请求远端网络数据这两个数据层

29430

Android UI 架构演进:从 MVC 到 MVP、MVVM、MVI

MVC MVC 其实是 Android 默认的设计,MVC 里将代码分为三个部分: View: Layout XML 文件; Model: 负责管理业务数据逻辑,如网络请求、数据库处理; Controller...MVP 同样将代码划分为三个部分: View: Activity 和 Layout XML 文件; Model: 负责管理业务数据逻辑,如网络请求、数据库处理; Presenter: 负责处理表现逻辑。...在实现细节上,View 和 ViewModel 之间的多个交互( LiveData 数据流)变成了单数据流。...实践中应该根据状态之间的关联程度来决定使用单流还是流; 内存开销: ViewState 是不可变类,状态变更时需要创建新的对象,存在一定内存开销; 局部刷新: View 根据 ViewState 响应...但是不可否认,从 React 到 Flutter,从 MVI 到 Compose,响应式编程似乎有一统天下的趋势。未来会怎么样,我们拭目以待。

98410

聊聊类组件到函数组件的变迁

最近一直在学习 React,在看到 React Hooks 一章时联想到 Compose ,简直有着异曲同工之处,他们都是由 UI 组件、State 状态、Effect 副作用构成,而且,Android...端很多优秀的架构思路都来源于前端,适当性的学习些前端知识,反而更能容易理解当下 Android 原生的架构,这也是我一直推荐大家有时间也学习一下前端的原因,本期主要聊聊 Android 原生与 React...1、基于类组件的对比 原生 对于原生 Android 来说,通过 Activity 类来承载当前界面的 UI ,例如如下示例: class HomeActivity extends Activity{...vm.observer(this){ textView.text = it // 更新 UI } } } 这还是一个比较简单的例子,当业务越来越复杂,最后你会发现,虽然项目是按照 MVVM.../docs/hooks-effect.html [2] Compose 中的附带效应: https://developer.android.com/jetpack/compose/side-effects

3.5K20

如何构建Android MVVM应用程序

MVVM模式中ViewModel和View是用绑定关系来实现的,所以有了DataBinding 使我们构建Android MVVM 应用程序成为可能。   ...可复用性 一个View Model复用到多个View中,同样的一份数据,用不同的UI去做展示,对于版本迭代频繁的UI改动,只要更换View层就行,对于如果想在UI上的做AbTest 更是方便的。...通过上面对MVVM的简述和其他两种模式的对比,我们发现MVVM对比MVC和MVP来说还是存在比较大的优势,虽然目前Android开发中可能真正在使用MVVM的很少,但是是值得我们去做一些探讨和调研。...4、总结和源码### 本篇博文讲解主要是一些个人开发过程中总结的Android MVVM构建思想,更多是理论上各个模块如何分工,代码如何设计,虽然现在业界使用Android MVVM模式开发还比较少,但是随着...DataBinding 1.0 的发布,相信在Android MVVM 这块领域会更多的人来尝试,刚好最近用MVVM开发了一段时间,有点心得,写出来仅供参考。

1.2K10

Carson带你Android面试:Android语言篇

具体请看性能优化系列文章: 如何全面进行性能优化 Android性能优化:布局优化(含、、) Android性能优化:内存泄露 Android...开源框架 当前Android比较热门的开源框架 & 原理,主要包括:图片加载框架、网络请求框架、效率开发框架等。...图片加载框架 Universal-Image-Loader Picasso Fresco Glide 具体介绍请参考文章:图片加载开源框架对比:UIL、Glide、Picasso、Fresco 6.2 网络请求框架...Android-Async-Http Volley OkHttp Retrofit 具体介绍请参考文章:网络请求框架对比:Android-Async-Http、Volley、Okhttp、Retrofit...Compose 插件化:设计原理及应用 架设设计:MVC、MVP、MVVM 热补丁修复:设计原理及常见应用 至此,关于Android面试的Android语言篇讲解完毕。

55220

原生开发如何学习 Flutter ?

下载依赖成功后,可以直接通过 flutter run 或者 IDE 工具点击运行来启动 Flutter 项目,这个过程会需要原生工程的一些网络同步工作,比如: Android 上的 Gradle 和 aar...响应式开发比数据绑定或者 MVVM 不同的地方是,它每次都是重新构建和调整整个渲染树,而不是简单的对 UI 进行 visibility 操作。...好了,扯了那么,总结下就是: ComposeAndroid UI 的未来,现阶段你可以不会,但是如果未来你会继续在 Android 平台的话,你就必须会。...Flutter 的未来在于平台,更稳定可靠的平台 UI 框架。如果你的路线方向不是大前端或者多端开发者,那你可以不会也没关系。...它们二者的未来都会是平台,而我认为的冲突主要是在于动手学起来,而不是在二者之间徘徊纠结。

69920

分享一个我开发的MVVM架构的开源小项目

MVVM(Model-View-ViewModel)是一种代码架构模式,被广泛应用在Android程序设计领域,类似的架构模式还有MVP、MVC等。...黄色部分表示的是仓库层,仓库层要做的工作是自主判断接口请求的数据应该是从数据库中读取还是从网络中获取,并将数据返回给调用方。...如果是从网络中获取的话还要将这些数据存入到数据库当中,以避免下次重复从网络中获取。...最后红色部分表示的是网络数据层,这里使用了Retrofit从web服务接口获取数据。...另外也请大家随手帮我点个star,一些鼓励,我也就一些持续贡献开源的动力。 最后,希望这个项目能够帮助大家更好地学习Jetpack,更好地学习MVVM架构。

75630
领券