首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS
订阅
蜡笔小森
更多收藏集
微信扫码分享
微信
新浪微博
QQ
20篇文章 · 2订阅
业余时间如何开发一个App?出于好奇心QiShare带你体验一下 | 创作者训练营第二期
前言 本文仅仅是作者在业余时间从零到产生需求到开发一个 App 的个人总结与记录。开发过程中使用了 Google 的跨平台开发框架 Flutter ,移动端和官网都采用 Flutter 来实现,目前来
深入理解 Autolayout 与列表性能 -- 背锅的 Cassowary 和偷懒的 CPU
这篇文章会通过对 autolayout 内部实现的探索和数据分析和对 autolayout 的性能问题做一个详细的分析,并在最后给出一个高性能 autolayout 的解决方案。开始看文章之前,可以先试试这个 demo ,使用 YYKit demo 数据做的微博 Feed 列表…
23个经典设计模式的Swift实现
也就是工厂问题想解决的原始问题。 从代码和UML可以看出,为了得到产品A,调用者Client要同时依赖Product, ConcreteProductA和ConcreteProductB,并亲自写一个创建产品的方法。 每当需求新增一个产品,就要改动到调用方Client。如果这一…
从实际问题看 SwiftUI 和 Combine 编程
假设大家已对 Swift 语法有基本了解,并且已经上手体验过。虽在工作中可能并不会立即介入 SwiftUI 和 Combine,但通过对这两个框架的学习和使用可以从侧面给我们提供一个优化的思路,从以往「流程化」和「命令式」的编程思维中转变出来,提升开发效率。 此次分享在于快速对…
AppDelegate解耦
作为iOS整个项目的核心App delegate,随着项目的逐渐变大,会变得越来越臃肿,一不小心代码就过了千行. 大型项目的App delegate体积会大到什么程度呢?我们可以参考下国外2亿多月活的Telegram的 App delegate.是不是吓一跳,4千多行.看到这样…
iOS设计模式之(二)生产者-消费者
我们公司自己项目中,有个场景,就是IM消息,当我们收到消息时候,进行一些业务逻辑的处理,还有数据库的操作,然后刷新列表。存在的问题是,如果消息接收的特别快,例如离线消息,可能登陆的是,有几百条消息拉取下来,如果每一条每一条的处理,将会导致两个问题: 上次刷新还没完成,下次就进来…
iOS开发如何避免安全隐患
现在很多iOS的APP没有做任何的安全防范措施,导致存在很多安全隐患和事故,今天我们来聊聊iOS开发人员平时怎么做才更安全。 用抓包工具可以抓取手机通信接口的数据。以Charles为例,用Charles可以获取http的所有明文数据,配置好它的证书后就可以模拟中间人攻击,获取h…
Runtime Method Swizzling 开发实例汇总(持续更新中)
该篇文章主要列举 Method Swizzling 在开发中的一些现实用例,同时文中也有补充读者的一些疑点。希望阅读文章的朋友们也可以提供一些文中尚未举出的例子,本文持续更新中。 目前已更新实例汇总: 实例一:替换 ViewController 生命周期方法 实例二:解决获取索引、添加、删除元素越界崩溃问题 实例三:防止按钮重复暴力点击 实例四:全局更换控件初始效果 实例五:App 热修复 实例六:App 异常加载占位图通用类封装 实例七:全局修改导航栏后退(返回)按钮
Flutter最佳入门方式——写一个计算器
Flutter的入门文档给予了我很大的启发,它并没有把API文档或者是整个框架的内容直接展现给初学者,而是通过一个简单的计数器例子,从基础的组件到手势的监听,再到状态的改变,将Flutter最核心的思想展现的淋漓尽致。 我见过许多初学者,喜欢先将入门文档、API文档和教学视频一…
Block 原理分析详解
Block 一直是 OC 的一个重点、难点、黑科技。Block 在日常项目中经常使用,他的实现方式和一般的 oc 代码不一样。同时也很容易出现使用不慎的情况。我们知道 OC 的本质是 C+runtime。runtime 中的具体实现完全就是汇编加上 C 语言。而且我们发现大部分都是通过结构体实现的。我们可以通过 clang -rewrite-objc main.m 这种命令吧 main.m 函数反编译 (注意:这里所说的反编译并不是真正的反编译,只是把 OC 源码转换为对等的 C++ 源码) 为为 C++ 的具体实现。下面我就会通过这个命令来分析一下转换以后的源码。下面所有列子中转换前的代码都在 main.m 中,替换后的代码都在 mainX.cpp 中.