自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

H.A.N的博客

Objective-C、Swift、热更新、APICloud跨平台开发、Flutter学习实践指南、性能优化实践指南...

原创 Flutter iOS App 上架 使用 Flutter 框架搭建的App上架那些事(持续更新)

问题一: ERROR ITMS-90189: "Redundant Binary Upload. You've already uploaded a build with build number '1' for version number '1...

2020-05-08 10:48:59 1713 0

原创 Flutter 获取应用缓存和清理缓存

Flutter 获取应用缓存和清理缓存   在 Android 和 iOS 中,都有需要获取应用缓存和清除应用缓存的功能,那么在 Flutter 里面应该怎么做呢?   要想获取到应用缓存,我们就必须找到用来装缓存数据的文件夹,所以这里我们需要引入 path_provider , 用来获取 And...

2019-11-12 08:55:22 1196 1

原创 APICloud 自定义弹窗实现

  在大家的项目里应该会出现一些弹窗选择,你可能用了 confirm、prompt,也可能用了 dialogBox,使用这些模块总是不错的,但也许其样式满足不了你的需求。 在这我给大家分享一个简单的弹窗实现,主要利用 frame 实现。   先上个效果图:   点击遮照部位可以关闭弹窗。   这个...

2019-08-30 14:25:37 1187 0

原创 为什么要使用组件化???

什么是组件化?   在看了很多其他的方案之后,首先对组件化思想上有一个小分歧。我认为很多人对于 iOS 中组件化的理解其实是有误区的。我刚工作的第一年就是在做 Flex 开发,其中就有很多组件化的思想,加上最近在用 Vue 做 web 项目之后,更为意识到大家在 iOS 开发上说的组件化有点不合适...

2019-08-21 14:09:29 353 0

原创 Flutter 命名路由及传值

命名路由是区别于基本路由的一种存在,方便于大型项目中路由的统一管理,现在,在前面基本路由的项目基础上实现实现命名路由。 使用步骤 路由配置   命名路由在使用前,需要在根组件main.dart中进行简单的配置(前面是页面路径,后面是页面中的组件名称): main.dart 主要代码: imp...

2019-08-13 08:39:38 623 0

原创 APICloud Studio 2 新建项目报错:检出失败和解决办法

报错信息: Can’t locate SVN/Core.pm in @INC (you may need to install the SVN::Core module) (@INC contains: /usr/local/git/lib/perl5/site_perl/5.18.2/darwi...

2019-06-10 11:53:49 1364 0

原创 程序员专属小情话,哎呦,不错哦!!!

中学还没学习计算机的时候,在小城市里都还没见过电脑。 那个时候觉得敲键盘很帅很神秘

2019-03-29 10:24:11 7180 7

原创 零基础研发微信小程序遇到的坑总结(持续更新)

1、小程序在Mac导入时打不开? 解决:目录结构里面有中文目录导致的 2、scroll-view列表中item点击事件设置 .wxml添加: <scroll-view scroll-y = &am...

2019-01-23 15:08:22 179 0

原创 iOS 底层Runloop的详解

有人做了两年多的iOS开发,对iOS和Objective-C深层次的了解还十分有限,大多还停留在会用API的级别,这是件挺可悲的事情。想学好一门语言还是需要深层次的了解它,这样才能在使用的时候得心应手,出现各种怪异的问题时不至于不知所措。 废话少说,进入今天的正题。 RunLoop 的概念 一...

2019-01-17 14:38:25 173 0

原创 iOS 最简单的 Runtime 教程(适合新手入门)

本篇主要是从新手的角度出发,介绍 Runtime 的原理、常用方法、应用场景等。 一、Runtime 是什么       &amp...

2018-12-21 14:17:17 182 0

原创 iOS 实现类似支付宝的进入后台模糊效果

今天在用手机后台切换程序时突然发现支付宝的页面自动模糊,因此对这一细节感到十分惊喜,想知道为什么要这么做?有什么作用?如何实现? 之后查了一些资料,很多金融类的App都实现这样效果来增加安全,代码很简单,在AppDelegate中实现。很多细节可以根据场景来进行添加,比如判断是否存在用户登陆,没...

2018-12-17 16:24:04 1017 1

原创 iOS 性能优化之教你使用Allocations分析内存分配

Allocations Allocations用来分析静态内存分配。 Demo项目 Demo App Demo是一个简单的图片应用:首页只有一个简单的入口;次级页面会读取本地图片,加滤镜,然后按照瀑布流的方式显示出来;第三个页面提供大图显示; 运行代码:点击Photos -&am...

2018-11-19 11:34:19 336 0

原创 iOS 漫谈App瘦身

前段时间部门开需求会,砍掉了应用中的部分需求。这简直就是给应用瘦身的良机!这个时候测试又提出来:安卓端的app在应用市场的包只有26M,而iOS端的app在App Store上却有88M。 会后,我就找来安卓的测试机,对比了百度、支付宝、微信、京东、新浪和抖音几个App在应用市场和App Stor...

2018-11-19 09:13:44 218 0

原创 iOS 性能优化之图片加载和处理

前言 本文基于WWDC2018-Image and Graphics Best Practices,对图片加载和处理的思考和总结。 本文不是WWDC翻译,如果需要了解视频内容可以点击上面的链接观看。 正文 图片的显示分为三步:加载、解码、渲染。 通常,我们操作的只有加载,解码和渲染是由UIKit进...

2018-11-08 11:01:39 787 0

原创 iOS 所有线程 Autorelease 对象的内存管理

最近面试,然后不管是应届生还是工作两三年的高级工程师都对下面这几个问题比较懵逼,可能是开发中用到的不多,在这里浅浅的讨论下: Autoreleasepool 与 Runloop 的关系 ARC 下什么样的对象由 Autoreleasepool 管理 子线程默认不会开启 Runloop,那出现 A...

2018-10-11 08:36:50 384 0

原创 iOS 网络请求优化之取消请求

页面返回的时候,将网络请求取消 同一个请求多次请求时,短时间忽略相同的请求 同一个请求多次请求时,取消之前发出的请求 发送的请求,多次尝试并确保成功 最近发现很多网络请求都有可以优化的地方,虽然开发和测试都没有发现问题,但是可以让代码更加的优雅。想到了有四个方面可以优化,亲测有效。 1....

2018-09-30 10:06:42 1327 2

原创 iOS 谈一谈自适应Cell的高度缓存

系统如何计算的自适应高度? 系统计算的行高会不会被缓存? 如何缓存? 前几天读文档的时候发现一对方法 - (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize NS_AVAILABLE_IOS(6_0); - (CGSize)syste...

2018-09-28 17:46:43 169 0

原创 iOS 性能优化篇

苦逼周末加班,无心干活,写一篇文章打发时间。 先来谈谈CPU和GPU 在屏幕成像的过程中,CPU和GPU起着至关重要的作用 CPU( Central Processing Unit, 中央处理器)就是机器的“大脑”,也是布局谋略、发号施令、控制行动的“总司令官”。 CPU的结构主要...

2018-09-16 14:22:22 240 0

原创 iOS 性能优化之页面加载速率

前言 之前搜罗了网上很多关于iOS性能优化方面的资料 ,本人和我的小伙伴们也用了一些时间针对自己的App进行了App的启动速率、页面的加载速率和 页面的帧率方面进行了优化,所以结合了理论和实践,把我们在实践中主要踩过的坑和需要注意的东西 ,总结了一下,希望可以帮到正在准备进行App的性能优化的你...

2018-09-14 15:42:22 819 0

原创 iOS 代码瘦身实践(二)

一、分析当前ipa的组成 一般一个ipa会包含: 1. 资源文件 本地文件:数据、配置、数据库等等 字体文件 图片资源 2. 源代码 通过生成linkmap文件,分析源代码生成的编译文件的大小。在Build Settings中Write Link Map File设置为Yes (...

2018-09-04 09:22:52 207 0

原创 iOS 架构思想UIViewController的瘦身之路(一)

前言 这篇文章里会涉及如下几个方面: 1、代码的组织结构,以及为何要这样写。 2、那些场景适合使用子控制器,那些场景应该避免使用子控制器? 3、分离UITableView的数据源和UITableViewDataSource协议。 4、MVVM的重点是ViewModel...

2018-08-27 09:18:15 600 0

原创 iOS 网络性能优化之路

一、度量网络性能 1.网络带宽 用于描述无线网络性能的最常见度量指标就是带宽。在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数。现代无线网络所能提供的理论带宽是很高的。不过请记住,运营商与网络设备提供商引用的带宽数字常常是该项技术的理论最大值,网络设备使用的实...

2018-08-02 14:17:36 1424 0

原创 iOS App启动+广告思路

需求 很多App(如淘宝、京东、美团、饿了么等)在启动图加载完毕后,还会显示几秒的广告,一般都有个跳过按钮可以跳过这个广告,有的App在点击广告页之后还会进入一个广告页面,点击返回进入首页。虽然说这个广告页面对用户体验来说并不是很好,但是如果真的有这个需求,我们还是要想办法去开发,至少这比内嵌广...

2018-07-06 15:09:58 2145 0

原创 iOS 动画专题(UIView二维形变动画与CAAnimation核心动画)

1. iOS动画 总的来说,从涉及类的形式来看,iOS动画有:基于UIView的仿射形变动画,基于CAAnimation及其子类的动画,基于CG的动画。这篇文章着重总结前两种动画。 2. UIView动画 设置UIView形变动画有两种常见用到的属性,.frame,.transform,...

2018-07-05 17:08:50 929 0

原创 iOS 2018最新搭建 React Native 开发环境教程

一、ReactNative简介 ReactNative是移动端目前最热的框架之一, 着力于提高多平台开发的开发效率 —— 仅需学习一次,编写任何平台。(Learn once, write anywhere)。Facebook 已经在多项产品中使用了React Native,并且将持续...

2018-06-09 14:03:13 1493 0

原创 iOS 项目启动时间优化之pre-main 时间

苹果为查看 pre-main 提供了支持,具体配置如下,配置的 key 为:DYLD_PRINT_STATISTICS。 然后再运行项目,Xcode 就会在控制台输出这部分 pre-main 的耗时: Total pre-main time: 2.2 seconds (100.0%) ...

2017-12-05 14:58:03 2091 0

原创 Flutter - TabController监听index

简单一个小例子: class _RankPageState extends State<RankPage>{ final List<Tab> titleTabs = <Tab>[ Tab( text: '全部', ...

2020-03-20 09:11:30 439 0

原创 iOS Error Domain=NSCocoaErrorDomain Code=4099

Xcode 控制台报错: [Client] Sending selectors failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commce...

2020-01-20 09:57:01 430 0

原创 iOS Xcode 提示 “This app could not be installed at this time.”

好好运行的项目,第一次模拟器安装没问题,第二次在安装提示错误: This app could not be installed at this time. 首先清理模拟器 第一步:点击模拟器,选择Hardware -> Erase All Content and settings 第二步...

2020-01-19 11:12:01 177 0

原创 Flutter 报错:The 'Pods-Tatget' target has transitive dependencies that include static binaries

  最近做一个 Flutter 电商项目,编译 pod install 时报错 :“The ‘Pods-Tatget’ target has transitive dependencies that include static binaries”。 直接上解决办法:   出现这个问题的主要原因是...

2020-01-09 08:40:56 336 0

原创 Flutter String 中的字符取出匹配

Flutter 字符匹配   在需求中需要对数据返回的值进行字符的匹配,而 Dart2 是没有 char 的基本类型 那么我们怎么进行匹配。 方式1:   直接上伪代码: var aa = "789"; List<int> bb = aa.codeUnit...

2019-12-18 09:44:05 337 0

原创 解决 Flutter showBottomSheet 设置高度没有作用的?

  最近在做一个电商项目,其中规格视图 Flutter 的底部弹窗,但是发现 showBottomSheet 在弹出的时候最高高度始终限制在了屏幕的二分之一的位置,再往高设置仍然还是一半高度,但是我们的弹窗设计稿是占据屏幕三分之二的位置的,显然 Flutter 的这个限制是无法满足需求的。   有...

2019-12-13 17:27:38 191 0

原创 Flutter 取两位小数 不要四舍五入的方法

  如图:   打印结果:   我们知道 toStringAsFixed() 这个方法会在保留小数的基础上对末位进行四舍五入。所以我们需要多取 1 位再进行截取,防止第二位四舍五。   为什么要进行 toStringAsFixed() 这个方法呢,原因是我们要求保留两位小数,假如给的数字是 ...

2019-12-11 10:01:48 1785 0

原创 Flutter Clipboard 粘贴板使用

  在 Flutter 提供了 Clipboard 跟 ClipboardData 用来操作系统的复制粘贴。   源码如下: /// 设置要复制到粘贴板中的内容 @immutable class ClipboardData { /// Creates data for the system c...

2019-12-09 09:41:24 79 0

原创 Flutter 取消按钮水波纹的方法

  因为 InkWell 继承自 InkResponse,因此这里只以 InkResponse 来进行分析。 第一种方法:   在 InkResponse 外围添加 Container,然后在 Container 中添加 color 属性,例子如下: return Scaffold( ap...

2019-12-06 10:47:51 807 0

原创 iOS 微信支付(1.8.6) -- Universal Links 创建

  今天项目接入微信支付,在更新微信支付sdk(1.8.6)的时候,用到一个Universal Links,之前没有接触过,于是就简单的记录一下配置过程。在 iOS9 之前,要在浏览器中唤醒 App,我们通常使用 scheme。这种方式需要提前判断系统中是否安装了能够响应此scheme 的 App...

2019-12-03 13:51:29 209 0

原创 Flutter 解决依赖版本冲突

前言   Google 推出 Flutter 这样一个新的高性能跨平台(Android,iOS)快速开发框架之后,被业界许多开发者所关注。我在接触了 Flutter 之后发现这个确实是一个好东西,好东西当然要和大家分享。   今天要跟大家分享的是如何解决 Flutter 中依赖版本冲突。 为什么会...

2019-12-02 16:47:42 82 0

原创 Flutter 隐藏键盘

直接上代码 : TextEditingController _contentController = new TextEditingController(); FocusNode _contentFocusNode = FocusNode(); Container( ...

2019-11-22 08:30:28 116 0

原创 Flutter 相册选择图片和相机拍照

Flutter 获取相册中的图片和用相机拍照   在原生开发中,拍照及从图库选择图片是非常常见的需求,而且原生的图片选择第三方库也有很多并且很完善了。Flutter 也给我们提供了好用的图片选择插件,iOS 和 Android 都可以使用! 使用方法   首先添加依赖:   在 pubspec....

2019-11-21 08:31:50 171 0

原创 Flutter 倒计时

Flutter 倒计时 写一个倒计时定时器听起来真的好简单,然而在 Flutter 里面写这个东西还是挺坑的。原本以为创建一个 Timer 就一切都搞定了,但并没办法实时获取倒计时的进度。 void countdown(){ Timer timer = new Timer(new Dura...

2019-11-13 08:28:59 69 0

提示
确定要删除当前文章?
取消 删除