Code Monkey home page Code Monkey logo

mikack-mobile's Introduction


Elixir Rust Typescript Dart React SolidJs Flutter NixOS Android avator

About me

Hi, I'm Hentioe, a professional and personal developer living in China. Used to work in Shanghai, now in Shenzhen.

Since I became a full-time independent developer, I've used Elixir and Rust extensively as base programming languages, and have acquired a very rich technology stack and experience across various domains.

Elixir and Rust are my main areas of research, but that doesn't mean I haven't worked with other languages. In fact, in my previous work, I've mainly worked with more mainstream languages such as Java, Ruby, and Golang.

Contact me

Over the past few years, I managed to develop (or participate in the development of) several software products for companies/individuals all over the world (mainly Chinese companies, but also Americans). Especially in the areas of Telegram, blockchain, cloud computing, etc., in-house infrastructure framework development and design, etc.

Feel free to contact me, I accept remote work.

mikack-mobile's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mikack-mobile's Issues

优化标记之前章节功能

主要问题在于数量太多时有明显延迟。

考虑解决方案:

  • 优化查询,只在第一次载入时加载数据库数据。其余操作在更新成功以后直接改变状态数据而不重新加载。
  • 优化大批量数据更新。在经过一个常数次循环过后就更新一次状态,因为存在第一条的实现保障了不真实重载数据,所以常数不必过大。

收藏按钮调整

  • 删除漫画列表的收藏图标
  • 漫画详情页显示收藏状态图标(保持和书架图标一致),并提供对应功能

自动阅读下一章节

基本的上/下章节信息预览和跳转功能。

注:跳转有一个先 pop 到上一个页面再 push 新页面的过程,所以会出现闪屏幕。后续会优化为在同一个页面更新内容。

软件使用条款

条款设计:

  • 使用条款具有版本(主.次.修订)
  • 强制同意方可使用(同意后存储当前版本)
  • 使用条款暂且存于本地,使用 Markdown 格式

主要的数据模型设计

  • 图源(平台结构为主):
    • 域名(建立索引)
    • 名称
  • 收藏模型(漫画结构为主):
    • 图源
    • 最后一次阅读的章节历史(可为空)
    • 名称
    • 地址(建立索引)
    • 封面
    • 添加时的章节数量
    • 最新的章节数量
    • 插入时间
    • 最后阅读时间
  • 历史模型(章节结构为主):
    • 图源
    • 标题
    • 地址(建立索引)
    • 漫画封面
    • 插入时间

添加图片下载失败的视图

  • 封面图片下载失败,使用文字
  • 资源图片下载失败,使用重试按钮加点击复制的地址显示(暂不允许赋值图片地址)
  • 平台图标下载失败,使用预置图标(已强制本地)

阅读页面释放迭代器和调用迭代器方法任务之间的冲突

描述:

在 State 的 dispose 回调中释放迭代器是正常/标准的思路,但是迭代器的 next 调用会导致较长时间的内存驻留,在释放迭代器指针指向内存的同时经常还存在 next 调用未结束的情况,会导致不可预估、无法处理的问题。

解决思路:

dispose 回调中,以 Isolate 通信的方式结束 next 任务,并确定任务被终止后才释放迭代器内存。或者以通信的方式告知 next 任务负责迭代器的内存释放工作。

书架更新功能设计

  • 下拉检查更新。
  • 排队抓取收藏中对应的漫画数据,在 appBar 下面显示进度条。
  • 通过抓取结果的章节数量和收藏的 latest_chapters_count 字段值比对判断是否存在更新。通过计算差值显示更新数字。
  • 更新数字角标最多显示三位数,大于 999 的一律显示 999。
  • 更新记录持久化存储,进入页面(包括从导航返回)都从本地获取更新记录。并且显示上次更新时间。(划掉部分等后续实现)
  • 打开漫画主页更新章节数量到最新的数据。
  • 停止更新时确保 isolate 任务正确结束。

附加的可能性实现:

  • 后台服务化运行更新检测任务。原因有二:(如果可能的话,以后考虑实现)
    • 无需强制在前台等待耗时的更新检测过程。
    • 为「定时检查书架更新」功能铺路。

设置页面的功能设计

  • 基本设置
    • 开始页面
    • 左手翻页
    • 允许 NSFW 内容
    • 倒序排列章节
  • 数据清理
    • 清空图片缓存
    • 清空阅读历史
    • 清空书架图书
  • 掌握动态
    • 项目仓库
    • 加入群组
  • 关于
    • 检查更新
    • 使用条款

阅读页面未加载完成就返回会导致系统 UI 被隐藏

原因:系统 UI 在页面迭代器创建以后隐藏,迭代器创建是异步任务,在它还未结束就过早返回会导致其它页面被延迟执行隐藏逻辑。

解决办法:完善逻辑,增加页面状态的判断。如果已经不再 mounted 则不隐藏系统 UI。

二次元动漫阅读崩溃/资源无法下载

  • 阅读崩溃链接:https://www.2animx.com/index-comic-name-7%E5%A4%A9%E5%90%8E%E7%99%BC%E7%8F%BE%E8%AE%8A%E4%B8%8D%E5%9B%9E%E7%94%B7%E4%BA%BA%E7%9A%84%E5%B9%BC%E5%A5%B3-id-45376
  • 资源无法下载(初步推断所有)(跟踪 #26

本地储存平台图标和默认图标

  • 抽象平台图标 Widget,优先加载本地资源
  • 本地和网络资源不存在,则使用名称中的单个文字仿图标
  • 如果网络图标加载失败,策略同上

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.