Flywith24
Flywith24
# 前言 很高兴见到你 👋 我是 Flywith24,这是我在掘金发布的第 53 篇文章。 「Fragment多返回栈」是一个新的系列,主要追踪官方对 Fragment 多返回栈这一功能的实现过程,透过该过程,我们可以学习官方面对一个新功能是如何进行开发的。 本文是该系列的开篇,内容分为三部分: 1. 简单介绍 Fragment 返回栈,并说明单返回栈与多返回栈的实现方式 2. 简单解释 Navigation 所谓的重建 bug 3. 简单梳理官方对此多返回栈功能支持的规划 本文对上述内容均是简单介绍,使用图片的方式形象地表述该部分内容(为此专门学习了 Sketch 🤣,我这么拼你好意思不点赞嘛?😋)。 关于源码详解,以及官方对此多返回栈功能支持全部时间线,可参考我之前的文章 [【背上Jetpack之Navigation】想去哪就去哪,Android世界的指南针](https://juejin.cn/post/6844904165362270215#heading-22)。 OK,让我们开始吧~ #...
# 前言 很高兴见到你 👋 我是 Flywith24。 在大学刚入学时,我与老师进行过一次「术」和「道」的讨论:大学应该教什么,学生应该学到什么,如何学习。 如果将我之前的文章看作是对各种「术」的整理,那么本文的内容是对「道」的讨论。 在本文中,我会回顾自己学习 Android 的经历,并总结我在这一过程中对学习方法及路线的思考。 # 关于 Flywith24 名字的由来 为了不干扰阅读,感兴趣的小伙伴点击查看详情 我是科比的球迷,从 07-08 赛季的总决赛开始喜欢科比。而他的绰号叫「小飞侠」,因此初中时候给自己起了一个网络 id:与 24 号一起飞翔。 在大学时觉得太中二了,于是改成了 Flywith24 。 我的付费专栏 [Android Detail](https://xiaozhuanlan.com/detail) 的名字致敬科比的一档篮球节目 Detail。...
# 前言 很高兴见到你 👋 本文不是面经 本文不是面经 本文不是面经 本文的目标读者是想要换城市/换工作的小伙伴(无论何种技术栈),喜欢「吃快餐」的小伙伴可以关闭窗口了。 分割线开始 --- 分割线结束 很高兴您能读到这里,我想通过这样的方式过滤一部分非目标读者。我保证接下来的内容会干货满满~ 😉 本文将分享一下我跨城市换工作的经历以及心得(面试了快手和字节两家公司,拿到快手 offer)。 我将从 面试前准备 -> 面试过程 -> 面试后总结 三个阶段进行阐述。 这是我 2021 年的第一篇文章,让我们开始吧~ # 面试前准备 ## 技术人的基本盘? [之前的文章](https://juejin.cn/post/6903681611716362254)...
# 前言 很高兴见到你 👋 [我不是大佬,但我相信我在通往成为大佬的路上 | 掘金年度征文](https://juejin.cn/post/6903681611716362254) 中我结合自身经历阐述了自己对学习方法的思考与实践。简单来说,我认为学习需要建立一套系统的知识体系(知识树),在此基础上可将学习分为 **通用学习** 与 **需求学习**。本文将简单讨论掌握知识的过程,并基于这一过程的各阶段进行内容创作实践。 # 掌握知识的三个阶段 个人认为,对知识的掌握,需要经历以下过程: - 感性认识阶段 - 理性认识阶段 - 实践阶段 **感性认识** 可以看作是一个 **从 0 到 1 的过程**,它是认识的初级阶段。在这一过程学习者通常会寻找已有的素材学习(如书籍,论坛博客,视频等)。而创作感性认识相关的内容看似简单,实则非常困难。这里列举一些优质的从 0 到 1...
## 前言 之前写过两篇关于管理项目中依赖本的文章: [什么?项目里gradle代码超过200行了!你可能需要 Kotlin+buildSrc Plugin](https://juejin.im/post/6844904050798886919) [【奇技淫巧】除了 buildSrc 还能这样统一配置依赖版本?巧用 includeBuild](https://juejin.im/post/6844904169833234439) [Android Detail 项目](https://github.com/Flywith24/Android-Detail) 目前使用的是第二篇提到的方式。  主工程(Android-Detail)与一个版本控制插件(version)通过组合构建(composing builds)进行管理。 今天我们来谈一谈在这种方式的基础上如何抽取公共配置,使得 build.gradle 文件的内容尽可能少,甚至内容可以为空。  阅读本文,你将了解: - 如何抽取 build.gradle 文件中的公共配置 - 如何一键切换本地 module 与远程依赖...
# 前言 很高兴见到你 👋,我是 Flywith24 。 最近 Android 官方针对 Fragment 文档进行了重新编写,使其适应 2020 年最佳实践的快速发展。  Fragment 的确是一个让开发者头疼的组件,它是一个很好的设计,但一直处于可改进的状态,随着 AndroidX Fragment 的快速更新,Fragment 已不同往日,虽然仍有改进的空间(单个 FragmentManager 不支持多返回栈,Fragment 自身和其 view 的生命周期不一致)。考虑到该文档的确有很多新知识以及官方文档的极慢的汉化速度,本文将 2020 版 Fragment 的官方文档翻译成中文,喜欢一手信息的小伙伴可直奔 [官方原文](https://developer.android.com/guide/fragments/lifecycle)。如果只想关注新文档中的变化,可...
# 前言 很高兴见到你 👋,我是 Flywith24 。 最近 Android 官方针对 Fragment 文档进行了重新编写,使其适应 2020 年最佳实践的快速发展。  Fragment 的确是一个让开发者头疼的组件,它是一个很好的设计,但一直处于可改进的状态,随着 AndroidX Fragment 的快速更新,Fragment 已不同往日,虽然仍有改进的空间(单个 FragmentManager 不支持多返回栈,Fragment 自身和其 view 的生命周期不一致)。考虑到该文档的确有很多新知识以及官方文档的极慢的汉化速度,本文将 2020 版 Fragment 的官方文档翻译成中文,喜欢一手信息的小伙伴可直奔 [官方原文](https://developer.android.com/guide/fragments/lifecycle)。限于篇幅原因,该文档分上下两部分。...
> 原文:[Bridging the gap between coroutines, JVM threads, and concurrency problems](https://medium.com/androiddevelopers/bridging-the-gap-between-coroutines-jvm-threads-and-concurrency-problems-864e563bd7c) > 作者:[Manuel Vivo](https://medium.com/@manuelvicnt) > 译者:[Flywith24](https://www.yuque.com/flywith24) 「协程是轻量级的线程」,是不是经常听到这样的描述?这个描述对你理解协程有实质性的帮助吗?可能没有。阅读本文,您会对 **协程在 JVM 中实际的执行方式**,协程与线程的关系以及使用 JVM 线程模型时不可避免的 **并发问题** 有更多的了解。 # 协程与 JVM 线程 协程旨在简化执行异步操作的代码。基于 JVM...
# 前言 最近 [activity 1.2.0 ](https://developer.android.com/jetpack/androidx/releases/activity#1.2.0) 正式版发布,除了全新的 Activity Result API (前面已有介绍),还引入了一个新的接口 `ContextAware`。  老规矩,我们沿着 git commit 查看该功能的引入过程。 # 引入原因 [IssueTracker](https://issuetracker.google.com/issues/161390636) 上提了这样一个需求:  `LifecycleOwner` API 提供了达到 `CREATED` 状态时的回调,但有些场景这个 API 不满足我们的需求。 例如:...
[WrapperLiveData](https://github.com/Flywith24/WrapperLiveData)