做一款属于自己的应用 - 玩Android app

313 阅读4分钟

背景

本人惭愧,又菜又懒,之前想要学习kotlin还有flutter都前功尽弃了,总会被工作生活阻挡自己学习的脚步(所有不想学习的人的全国统一借口),这次为了坚持下去,系统性地练习kotlin,并且能做一个属于自己的应用,并且能够学习一下新的工作之外的其他安卓特性和控件(懂得都懂,项目里的东西,就算新出的特性再厉害,再好玩,考虑到稳定性和重构的成本,基本都不会动原有的结构),本人于今天2022-09-03 正式启动做《玩Android》 app的工作,虽然已经预启动半年多了,但是晚来的总比没来的好。

在此可能有人不知道玩Android是个什么东西,这里给没有了解的同学,普及推荐一下,就是鸿洋大佬自己维护的一个android学习网站,这个网站有多牛不用我说,基本上安卓开发都会有所耳闻,如果你连鸿洋大佬都没听过,兄弟,我只能说你在安卓上的路太短了呀,没看过鸿洋大佬的技术贴,面经,你是怎么坚持下来的安卓工作,闲言少叙,直接上链接!! www.wanandroid.com/

本文主要是记录一个项目从无到有的工程,其中会包含各种问题,包括前期准备工作,git创建等工作,毕竟很久没有新启app了,好多东西都忘得四儿四儿的了。

项目构思

数据问题

玩android网站上已经提供了服务端接口,这个也是我想搞玩android app的主要原因之一,无需自己再搭建服务器,弄数据,写接口了

主体架构

语言

主要使用kotlin,其中会掺杂部分java,这样也能学习一下kotlin和java的交互,当然基本思想都是为了学习kotlin

项目计划

  • 接入玩android网站上提供的所有功能接口
  • 接入一些jetpack组件
  • 提供一个模块用于后续调研其他东西记录
  • 针对平时看到的主流app一些特有的动画功能进行模仿
  • 前期不进行组件化,插件化设计,考虑到工作中基本上都是会后期重构实现组件化,本项目也决定如此实现,在实现了基础功能之后会进行重构工作,前期直接模块化搞
  • 对于网络请求,消息总线等使用热门三方库
  • 对于性能优化等前期也不考虑,遇到问题再解决,这样能更好的锻炼自己
  • 项目准备上github,欢迎大家测试,如果有问题欢迎大家讨论,如果有兴趣,也欢迎大家一起来搞(嘿嘿嘿~)

更新记录以及问题记录

本文不会对任何技术以及问题进行太过细节的讨论,会附上问题解决思路以及协助博文,如果有必要也会单独针对某个问题另开文章

2022-09-14 安卓导航栏

推荐这篇博文,里面介绍了常规的实现方式,基本能满足大部分场景 Android 底部导航栏 (底部 Tab) 最佳实践

2022-09-24 列表中的标签

目前采用FlexboxLayout实现,可以通过传入标签样式,实现多元化标签展示,并且属性支持强大

2022-09-25 kotlin中创建集合

2022-10-02 查看布局插件 CodeLocator

推荐一款查看布局的插件, 可以动态修改view的属性,非常方便 使用方法也很简单

官方文档

codelocator官方插件

集成方法

  • 在AS中plugins中添加codelocator
  • 在app下的build.gradle中添加依赖
// app下的build.gradle
dependencies {
    implementation "com.bytedance.tools.codelocator:codelocator-core:2.0.0"
}

2022-10-02 图标库

自己做应用设计服务,只能自己动手了 矢量图库

2022-10-02 RecyclerView 分割线

实现方式千万种,但是最好还是通过RecyclerView为我们提供的itemDecoration来实现,为什么呢,因为优雅才是程序员应该追求的,哈哈,传送门在这 小甜点,RecyclerView 之 ItemDecoration 讲解及高级特性实践

2022-10-03 kotlin构造器,循环, 判空

惭愧,之前都学习过,但是没怎么用过都忘记了,熟能生巧吧