摘要: 开发一款App过程虽然很艰辛,但是对于个人能力的成长绝对不是一点点,中途会学会很多技能,希望有梦想的小伙伴可以尝试尝试,去折腾,才有成功的可能性 阅读全文
posted @ 2020-12-31 19:22 popfisher 阅读(2318) 评论(2) 推荐(3) 编辑
摘要: 通过阅读本文,你会对热修复技术有更深的认知,本文会列出各类框架的优缺点以及技术原理,文章末尾简单描述一下Tinker的框架结构。本文框架: 1. 什么是热修复? 2. 热修复框架分类 3. 技术原理及特点 4. Tinker框架解析 5. 各框架对比图。 阅读全文
posted @ 2018-03-11 13:43 popfisher 阅读(36699) 评论(5) 推荐(5) 编辑
摘要: 一种通过自动获取用户权限增强产品体验的方法 本文是基于辅助功能+悬浮窗+SurfaceView来实现自动获取用户权限的具体方案设计与实现。辅助功能抢红包插件相信大家并不陌生,但是微信官方不允许,但是在工具软件领域还是可以大显身手,特别是开权限。辅助功能的作用就是实现节点查找和模拟点击,而悬浮窗实现需 阅读全文
posted @ 2017-07-26 22:05 popfisher 阅读(1679) 评论(0) 推荐(0) 编辑
摘要: 使用Drawable有什么好处? 很方便得到一个矩形,圆,椭圆,圆环,很容易维护和修改;很方便实现圆角,渐变(线性渐变,径向渐变,扫描渐变);代替图片作为 View 的背景,减少 apk 的体积(减少 apk 体积最明显最有效的步骤就是去掉图片);大图片耗内存,使用 Drawable 节省内存,Android 本身对 Drawable 做了很好的优化(内存优化需要考虑) 阅读全文
posted @ 2016-12-30 19:43 popfisher 阅读(49473) 评论(0) 推荐(6) 编辑
摘要: 封装一个独立弹窗Module,这里的弹窗包括普通的Dialog方式弹框和WindowManager方式弹窗。提供一种管理项目里面弹窗的方案,便于后期修改和维护。 首先描述一个在大项目中普遍存在的一个现象:由于项目的功能多,负责功能的人不同,当功能中需要一个普通的确定取消对话框时,大部分人都选择自己写 阅读全文
posted @ 2016-11-03 22:56 popfisher 阅读(5253) 评论(11) 推荐(3) 编辑
摘要: AS 编译异常 Unable to load class 'javax.xml.bind.JAXBException'. 问题描述 升级AS 4.2 之后,编译不通过,出现如下异常 Unable to load class 'javax.xml.bind.JAXBException'. This i 阅读全文
posted @ 2021-07-21 10:18 popfisher 阅读(692) 评论(0) 推荐(0) 编辑
摘要: 引言 本节作为小组件基础介绍的最后一个章节,前面都没有提到如何支持多个小组件,默认新建一个组件Target,就有大中小三个组件。如果你是为已经存在的App开发一个小组件功能,那么可能你不会需要那么多小组件。但是也有的App需要支持很多个小组件,也可能是无限个。 要实现支持多个小组件,需要使用到Wid 阅读全文
posted @ 2021-06-11 11:13 popfisher 阅读(257) 评论(9) 推荐(0) 编辑
摘要: 引言 Widget是一个迷你版的App,IOS有沙盒机制,不同App之间无法直接共享数据。组件和主App之间其实就是不同App的关系,所以也无法通过userdefaults.standard来传数据,苹果为了在不打破沙盒的前提下能够传数据,就想出了App Group的方法。 数据共享方式 可以通过网 阅读全文
posted @ 2021-06-11 10:04 popfisher 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 引言 前面我们似乎掌握了实现一个小组件所需要的一切技能,默认情况下桌面点击小组件,也正常跳转到了App中。接下来我们一起来看看,小组件是怎么做到点击跳转到App的。 点击交互方式 点击Widget窗口唤起APP进行交互指定跳转支持两种方式: widgetURL:点击区域是Widget的所有区域,适合 阅读全文
posted @ 2021-06-07 12:03 popfisher 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 引言 上一节中我们了解了IOS小组件的刷新机制,发现根本没法实现按秒刷新,但是看别的App里面有做到,以为用了什么黑科技,原来是因为系统提供了一个额外的机制实现时间的动态更新,不用走小组件的刷新机制。 Text控件支持显示日期时间,下面是来自官网的代码 计算时间差 let components = 阅读全文
posted @ 2021-05-14 09:55 popfisher 阅读(743) 评论(1) 推荐(0) 编辑
摘要: 引言 前面的章节学完已经让我们可以顺利实现一个小组件了,但是小组件里面的数据如何刷新的呢,本节内容将讲解IOS的刷新机制。 大纲 系统如何管理小组件刷新 Timeline刷新机制 Timeline刷新机制代码实现 刷新策略建议 时钟刷新策略(只有小时分钟,没有秒) 主动请求重新刷新 系统如何管理小组 阅读全文
posted @ 2021-05-10 21:04 popfisher 阅读(1090) 评论(1) 推荐(0) 编辑
摘要: 引言 上一篇文章,讲解了如果通过配置修改小组件行为,只不过配置数据是写死的,本文将继续探索配置数据的高级用法,配置数据在小组件中动态创建的 大纲 在项目中添加”Intents Extension“ 在 xxx.intentdefinition文件中增加一个动态类型 实现 Intent Handler 阅读全文
posted @ 2021-05-07 22:31 popfisher 阅读(546) 评论(5) 推荐(0) 编辑
摘要: 引言 经过前面几篇文章阅读,已经掌握开发一款小组件的基本技能了,接下来开始掌握一些相对高级一点的技能。本文创建一个可配置小组件,通过修改时间类型,让Text空间显示不同格式的时间。 本文大纲 添加动态配置 Custom Intent Definition 可配置小组件框架代码解析 修改 .inten 阅读全文
posted @ 2021-05-07 22:14 popfisher 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 引言 经过上一篇文章,我们已经可以在桌面上展示出一个小组件出来了,你肯定想小试牛刀,动手改一改,那我们就从改小组件的布局做起吧。本文不会讲解Swift语法,如果是熟悉Flutter,Kotlin这种语言的,问题也不大。本文只讲解小组件中常用的SwiftUI组件。 本文大纲 小组件布局怎么区分组件型号 阅读全文
posted @ 2021-05-06 19:22 popfisher 阅读(647) 评论(0) 推荐(0) 编辑
摘要: 引言 看了小组件的概述,你肯定想马上搞一个小组件出来试试,实践中学习效果更佳 本文大纲 创建小组件 认识小组件框架各个组成部分 ##创建小组件 第一步:先创建好一个App,步骤省略 第二步:在App中创建小组件 1. 在Xcode中打开您的应用程序项目,然后选择 File > New > Targe 阅读全文
posted @ 2021-04-29 20:51 popfisher 阅读(195) 评论(0) 推荐(0) 编辑