带你走进灵动岛-编程思维

前言 iOS最近几年新特性 iOS14 视频画中画 AppLibrary 桌面小组件 照片隐私加强 应用限免 智能折叠 全新siri悬浮显示 iOS15 FaceTime支持屏幕共享 信息和新增拟我表情 推出专注模式 通知重新设计,图标变得更大 地图公共交通路线置顶,增加时间显示 识别图片上文字信息 支持照片信息和照片上的文字进行搜索 iOS16 iOS 16 锁定界面 锁定界

ios app包分析工具-编程思维

介绍 分享一款用于分析iOSipa包的脚本工具,使用此工具可以自动扫描发现可修复的包体积问题,同时可以生成包体积数据用于查看。这块工具我们团队内部已经使用很长一段时间,希望可以帮助到更多的开发同学更加效率的优化包体积问题。 工具下载地址 背景 APPAnalyze工具最早诞生主要是为了解决以下包体积管理的问题: 对于定位下沉市场的APP来讲,包体积是一个非常重要的性能指标,包体积过大会影响用户下

cocoapods 在ios开发中养活了这么多项目,它到底是个啥?-编程思维

对于iOS开发者而言,CocoaPods并不陌生,通过pod相关的命令操作,就可以很方便的将项目中用到的三方依赖库资源集成到项目环境中,大大的提升了开发的效率。CocoaPods作为iOS项目的包管理工具,它在命令行背后做了什么操作?而又是通过什么样的方式将命令指令声明出来供我们使用的?这些实现的背后底层逻辑是什么?都是本文想要探讨挖掘的。 一、Ruby是如何让系统能够识别已经安装的Pods指令

winobjc-编程思维

Github上一周年的WinObjc项目最近发布了预览版本,终于等到了这一天。WinObjc项目就是Build 2015大会上微软宣布的Project IslandWood项目,致力于将iOS应用快速移植成UWP应用。废话不多说,让我们来看看WinObjc项目到底如何使用。   开始之前   开始转制iOS项目前我们要先部署好WinObjc工具,工具链如下: 一台安装了Visual Stud

ios开发手记-仿qq音乐播放器动态歌词的实现-编程思维

最近朋友想做个音乐App,让我帮忙参考下。其中歌词动态滚动的效果,正好我之前也没做过,顺便学习一下,先来个预览效果。     实现思路   歌词常见的就是lrc歌词了,我们这里也是通过解析lrc歌词文件来获取其播放参数,以实现和播放器协同。下面是我从百度音乐获取的歌词文件示例:   [ti:冰雨] [ar:刘德华] [al:笨小孩] [00:0.05]冰雨 [00:0.94]作词:刘德华、李

记booking.com ios开发岗位线上笔试-编程思维

今晚参加了Booking的iOS职位线上笔试,结束后方能简单归纳一下。   关于测试内容: Booking采用了HackerRank作为测试平台,测试总时长为75分钟,总计4道题。   测试之前我很紧张,因为根据之前参加微软的Online Test经验来看,应该会有一些复杂的算法题。但是事实上Booking测试的题目,前三题均没有涉及高深的算法,都是一些基础的Objective-C和iOS开发的

ios开发笔记(swift)-通用app安装引导页的实现-编程思维

之前一直做的项目都是基于OC开发的,最近开始尝试使用Swift语言来重写整个项目。 本篇文章主要是讲述如何使用Swift来实现常见的通用App安装引导界面。   效果预览:     实现思路:   主要是采用了UIScrollView作为容器,将其ContentSize的宽度设置为(引导页数量)*屏幕宽度,并将pagingEnabled设为true,隐藏滚动条。作为指示的UIPageContr

ios开发笔记(swift)-针对swift调用ppiflatsegmentedcontrol项目的一些修改-编程思维

PPiFlatSegmentedControl项目是一个很流行的开源iOS控件库,提供了扁平化风格(Flat style)的SegmentedControl,可以自定义segment的颜色,图标、大小等等,十分灵活美观。 效果如下:   但是作为一个OC项目,在我们进行OC和Swift混合编程时,由于PPiFlatSegmentedControl的创建实例方法中使用了Block,产生了一些问题

ios开发-仿微信图片分享界面实现-编程思维

分享功能目前几乎已成为很多app的标配了,其中微信,微博等app的图片分享界面设计的很棒,不仅能够展示缩略图,还可以预览删除。最近我在做一款社交分享app,其中就要实现图文分享功能,于是试着自行实现仿微信分享风格的功能。   核心思想: 主要是使用UICollectionView来动态加载分享图片内容,配合预览页面,实现动态添加和预览删除图片效果。 实现效果: 核心代码如下: 分享界面:

ios开发-清理缓存功能的实现-编程思维

移动应用在处理网络资源时,一般都会做离线缓存处理,其中以图片缓存最为典型,其中很流行的离线缓存框架为SDWebImage。 但是,离线缓存会占用手机存储空间,所以缓存清理功能基本成为资讯、购物、阅读类app的标配功能。 今天介绍的离线缓存功能的实现,主要分为缓存文件大小的获取、删除缓存文件的实现。 获取缓存文件的大小 由于缓存文件存在沙箱中,我们可以通过NSFileManager API来实现对

ios开发笔记-根据frame大小动态调整fontsize的自适应文本及圆形进度条控件的实现-编程思维

最近同样是新App,设计稿里出现一种圆形进度条的设计,如下:                   想了想,圆形进度条实现起来不难,但是其中显示百分比的文本确需要自适应,虽然可以使用时自己设定文本字体的大小,但是这样显得很麻烦,也很low。   查了一圈,目前实现的自适应UILabel,都是根据font大小动态调整frame的size,并不能满足我们的需求。    那么问题来了    如何实现一

ios开发手记-ios8中使用定位服务解决方案-编程思维

问题描述: 在iOS8之前,app第一次开始定位服务时,系统会弹出一个提示框来让用户选择是否允许使用定位信息。但iOS8后,app将不会出现这个弹窗。第一次运行之后,在设置->隐私->定位服务中,你的app没有任何设置,既不是“永不”,也不是“始终”。 代码如下: #import "XYZFirstViewController.h" @interface XYZFirstView

ios开发之todo list for swift项目-编程思维

一直从事Windows Phone开发,但对iOS开发一直有所好奇,于是在MBP到手之际,顺手安装了Xcode。移动互联网开发的相似性,使得我能快速地了解和认识了iOS的开发框架体系,在看完了Apple官方的入门文档-120页的Start Developing iOS App Today之后,能够写出像模像样的iOS app了。 最近在Xcode 6和iOS 8 GM版本发布后,我尝试使用Swi

基于 zego sdk 实现 ios 一对一音视频聊天应用-编程思维

1 准备环境 在开始集成 ZEGO Express SDK 前,请确保开发环境满足以下要求: Xcode 12.0 或以上版本。 iOS 9.0 或以上版本且支持音视频的 iOS 设备。 iOS 设备已经连接到 Internet。 2 项目准备 2.1 创建项目 进入即构官网,在【ZEGO控制台】创建项目,并申请有效的 AppID,这一步很关键,appid为应用的唯一标识,如身份证号,是应用

音视频开发进阶指南:基于ios实现超低延时耳返-编程思维

1 功能简介 在音视频应用中我们经常涉及到耳机麦克风和设备麦克风的切换。不同声道的配置。在遇到这种情况的时候,我们如何配置呢? 耳返即耳机采集监听,在设备上插入耳机(普通耳机或蓝牙耳机)后,能从本机耳机侧听到本设备麦克风采集的声音。 双声道即两个声音通道,听到声音时可以根据左耳和右耳对声音相位差来判断声源的具体位置。ZEGO Express SDK 默认音频采集单声道,当开发者有高音质需求时,

崩溃分析 - 编程思维

该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> http://www.jianshu.com/p/77660e626874 在iOS开发调试过程中以及上线之后,程序经常会出现崩溃的问题。简单的崩溃还好说,复杂的崩溃就需要我们通过解析Crash文件来分析了,解析Crash文件在iOS开发中是比较常见的。现在网上有很多关于解析崩溃信息的博客,但是大多

ios开发如何避免安全隐患 - 编程思维

现在很多iOS的APP没有做任何的安全防范措施,导致存在很多安全隐患和事故,今天我们来聊聊iOS开发人员平时怎么做才更安全。 一、网络方面 用抓包工具可以抓取手机通信接口的数据。以Charles为例,用Charles可以获取http的所有明文数据,配置好它的证书后就可以模拟中间人攻击,获取https加密前的明文数据。 1.1 中间人攻击 先简要地说下什么是中间人攻击: ①客户端:“我是客户端,给

runtime介绍 - 编程思维

该文章属于<简书 — 刘小壮>原创,转载请注明: <简书 — 刘小壮> https://www.jianshu.com/p/ce97c66027cd Runtime是iOS系统中重要的组成部分,面试也是必问的问题,所以Runtime是一个iOS工程师必须掌握的知识点。现在市面上有很多关于Runtime的学习资料,也有不少高质量的,但是大多数质量都不是很高,而且都只介绍