专栏名称: 郭霖
Android技术分享平台,每天都有优质技术文章推送。你还可以向公众号投稿,将自己总结的技术心得分享给大家。
目录
相关文章推荐
开发者全社区  ·  北大国发院博士去向 ·  22 小时前  
开发者全社区  ·  刘亦菲 ·  22 小时前  
开发者全社区  ·  微信+DeepSeek来了 ·  昨天  
开发者全社区  ·  我爸说:李宇春四十几了还没结婚 ·  昨天  
开发者全社区  ·  县城「婆罗门」的威力 ·  2 天前  
51好读  ›  专栏  ›  郭霖

Now in Android !AndroidApp开发的最佳实践,让我看看是怎么个事?

郭霖  · 公众号  · android  · 2024-11-20 08:00

正文



/   今日科技快讯   /


Grok-3 AI 系统刚刚证明了黎曼猜想(Riemann’s hypothesis)。 为了验证这一证明的正确性,我们决定暂停该系统的训练。如果证明被确认无误,我们将不再继续其训练,因为这样的AI 被认为过于智能,可能对人类构成威胁。


但最终内部员工证实该消息为谣言。


/   作者简介   /


本篇文章转载自 一杯凉白开 的博客,文章主要分享了 Android App Now in Android 示例的最佳实践 ,相信会对大家有所帮助!


原文 地址:

https://juejin.cn/post/7416970976667648026


/   前言   /


在Android的官网,有个示例程序,在官网是这样介绍它的。

https://developer.android.google.cn/samples?hl=zh-cn

github地址如下:

https://github.com/android/nowinandroid

那我得看看了。


/   功能介绍   /



ForYou 首页


头部是一个标题栏,是一个公用的组件。


中间是一个列表,Item的内容就是Android届的文章和新闻。有图片,标题和描述。标题右边有一个收藏按钮。Item的下边是分类标签,这个文章属于哪一类,哪一个标签。 下边是一个TabBar。


在首页第一次进入的时候,列表时没有数据的,会显示另外一个界面,让你选择你感兴趣的标签。是一个横向的GridView列表。有兴趣的同学可以去github上看看,学一学。



Saved


这个就是你收藏过的列表,这里边全是你收藏的文章。

列表结构和首页一致。


Interests


第三个页面就是,选择你感兴趣的标签和分类。选中状态是对钩,首页的数据,根据你选中的标签,去请求数据。


标题栏


两个功能,一个是搜索,一个是设置主要用来设置主题,和黑暗模式,还有动态颜色


整体的功能就这些。 该说不说这小App设计的还不赖,感觉看起来还是很舒服的。相比我们公司的很妙的UI设计。


感觉还是这个看起来比较舒服。


/   技术架构   /


模块化


这个项目已经完全模块化,分了很多模块。



在Now in AndroidDiagram中显示模块的类型和它们在Now in AndroidDiagram中的依赖关系。提示:模块图(如上所示)可以在模块化规划中用于可视化模块之间的依赖关系。


app模块——包含应用级和脚手架类,它们绑定了其余的代码库,比如MainActivity、NiaApp和applevel控制的导航。


一个很好的例子是通过NiaNavHost的导航设置和通过TopLevelDestination的底部导航栏设置。app模块依赖于所有的功能模块和所需的核心模块。


feature: modules——特定于功能的模块,它们的作用域是处理应用程序中的单个职责。这些模块可以被任何应用程序重用,包括测试或其他风味的应用程序,在需要的时候,同时仍然保持分离和隔离。


如果一个类只被一个特性模块需要,它应该留在那个模块中。 如果没有,则应将其提取到适当的核心模块中。 一个特性模块不应该依赖于其他特性模块。 它们只依赖于所需的核心模块。


core: modules——包含辅助代码和特定依赖的公共库模块,它们需要在应用中的其他模块之间共享。这些模块可以依赖于其他核心模块,但它们不应该依赖于功能模块或应用模块。


其他模块-例如同步,基准测试和测试模块,以及app-nia-catalog-一个目录应用程序,用于快速显示我们的设计系统。 这模块还是分的很全的,值得大家学习的,东西还是挺多的。 看起来比较高级。


架构


Now in Android ,遵循官方架构指导。 架构有三层: UI、DoMain和Data。



官方的Android架构不同于其他架构,比如“Clean architecture”。 来自其他体系结构的概念可能不适用于这里,或者以不同的方式应用。


该体系结构遵循具有单向数据流的响应式编程模型。 数据层位于底层,关键概念是:高层对低层的变化作出反应。 事件向下流动。 数据向上流动。


在ForYou界面上显示新闻 当应用程序第一次运行时,它将尝试从远程服务器加载新闻资源列表。(当选择prod构建风格时,演示苟江将使用本地数据库)一旦加载,将根据用户选择的兴趣,显示给用户,下图显示了发生的事件,以及数据如何从相关对象中流出来实现这一目标。



下面是每一步发生的情况,你们可以把源码加载到AndroidStudio中,根据步骤去跟一下。



大体的架构就是这样,更详细的架构介绍:

https://github.com/android/nowinandroid/blob/main/docs/ArchitectureLearningJourney.md







请到「今天看啥」查看全文


推荐文章
开发者全社区  ·  北大国发院博士去向
22 小时前
开发者全社区  ·  刘亦菲
22 小时前
开发者全社区  ·  微信+DeepSeek来了
昨天
开发者全社区  ·  我爸说:李宇春四十几了还没结婚
昨天
开发者全社区  ·  县城「婆罗门」的威力
2 天前
参考消息  ·  啦啦啦,我是卖报的小行家~
8 年前
同花顺财经  ·  4月25日同花顺早间必读(周二)
7 年前
新疆949交通广播  ·  你看过这样的情书吗?实在太有创意了!
7 年前