Taro使用tailwindcss+styled-components

提示:如果需要使用Taro编写小程序而不是H5的话,此方案并不生效。可参考: https://docs.taro.zone/docs/css-in-js

在用Taro框架写小程序的时候,写组件样式的时候,总觉得全部写在css文件里,如果需要通过某个参数来调节不同的样式,那么就比较麻烦。

这时候就想到了styled-components,同时又由于上一个项目是使用tailwindcss来编写的样式,那么有没有办法可以使用styled-components的语法来写tailwind呢?

搜索了一下NPM仓库,还真有,tailwind-styled-components可以实现这个功能,但是实现这个功能之前,需要在Taro中安装tailwind。

一次Android相册的开发日志记录 Day3

在开发阶段进入到Day2之后,工作开始变得繁忙了起来,加之生活上也有许多琐事要安排,导致相册开发进度陷入停滞。
但是与此同时,群晖的DSM7.0正式版发布了,跟随着新系统到来的,是Moments和DSPhoto两个相册软件废弃,随之而来的是整合了两者功能的SynologyPhoto,
于是我升级了并体验了一波,UI风格也与时俱进,同时整合了Moments和DSPhoto的优点,可以时间轴、文件夹、相册、多维度的管理照片,网络连接也稳定了非常多,这基本就是我想要实现的。但是还是有小遗憾的,文件夹视图模式下,仍然和DSPhoto一样,只有两列,在图片数量巨多的时候,查找就变成了一个很痛苦的事,这也是阻挠我使用这个作为相册系统的一个重要因素。

但是!等等!是不是只有这一点不满意?那么…我如果能修改一下APP,让他变成3列呢?

说干就干,试试看。

一次Android相册的开发日志记录 Day2

初步定好方案之后,我们先来实现一个基本的相册app。
一个基本的相册APP总共由3个页面构成:

  • 相册文件夹页面
  • 照片列表页
  • 照片详情页

在页面展示之前,首先我们要能拿到数据,这里我们使用MediaStore来获取用户的媒体信息。
MediaStore记录了用户的各种类型的文件位置,并保存到数据库中名称为external.db

一次Android相册的开发日志记录 Day1

我实在受够啦!!!!
这个市面上就没有简单好用的相册管理软件了么!!!
尝试了我能找到的市面上所有的相册管理软件,没有一个能完全做到我想的样子。
手机自带的相册软件+云同步确实可以在单个或同品牌手机内,完成我想要的需求,但是我手上的设备众多,每次更换设备不一定会使用原品牌,那么这就变得非常的麻烦了。

我的需求实际相对简单:
1.相对可用的UI,比如三星相册,小米相册
2.照片存储在服务器上,本地只缓存缩略图,只有用到的时候展示全图。
3.支持文件夹管理,这个非常关键。并且对应在服务器的文件目录结构要一致。
4.支持隐藏显示部分相册,保护隐私。
5.支持文件夹->远程文件夹的定向同步(单向或双向)

但是同时满足这些点的相册,或多或少都有些问题。

Android打印日志到文件

项目遇到一个问题需要排查,由于是偶现的问题,所以需要打印特定的日志并保存下来,但是并不需要将所有的Log都保存下来,
那么就需要一个小工具来解决这个问题了。

逻辑也很简单,当需要写入日志时,调用函数进行写入即可。简单封装下的代码如下,便于使用。

Android内存泄露的排查

在一次项目开发中,测试提到了一个问题,在详情数据页左右反复滑动多次,页面会越来越卡顿,加载速度也会越来越慢,需要我排查一下问题。
由于这个详情数据页面是一个Fragment,数据量特别大,并且嵌套在ViewPage中可以左右滑动,并且ViewPage的页数可以非常多。那么首先想到的问题是ViewPage + Fragment,Fragment没有被正确回收导致的。
首先来排查下Fragment的生成逻辑:

1
2
3
4
5
6
7
8
@Override
public Fragment getFragment(Fragment fragment, int currentPage) {
DemoFragment fragment = new DemoFragment();
Bundle bundle = new Bundle();
bundle.putInt("page", currentPage);
fragment.setArguments(bundle);
return fragment;
}
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×