网络相关 网络连接 AFNetworking - ASI不升级以后,最多人用的网络连接开源库,iOS的网络编程之AFNetworking使用,iOS的开发下载文件速度计算 , AFNetworking 3.0迁移指南 , AFNetworking2.0源码解析<一> ,AFNetworking2.0源码解析<二>,AFNetworking源码解析<三>,AFNetworking源码解析<四>。 Alamofire.swift - Alamofire是AFNetworking的作者mattt
初看这个标题你可能会不解,SQLite 本身就是一个跨平台的数据库,在这里再说跨平台有什么意义呢? 其实不然,目前我就遇到了一个项目需要使用 SQLite 数据库,而且我甚至完全不想花多套代码在不同的平台上,毕竟每个平台的包含的相关 SDK 并不一致。举个简单的例子,在 Android 上操作 SQLite,需要用到 SQLiteDatabase 这个类,用 Java 来操作;而在 iOS 上,除了需要引入 libsqlite3.tbd 外,还需要引入 sqlite3.h 这个头文件,使用
上篇博客《iOS逆向工程之KeyChain与Snoop-it》中已经提到了,App间的数据共享可以使用KeyChian来实现。本篇博客就实战一下呢。开门见山,本篇博客会封装一个登录用的SDK, 该登录SDK中包括登录、注册、忘记密码等功能,当然该SDK中包括这些功能的UI、数据验证等业务逻辑、网络请求、数据存储等等。当然此处的登录SDK是一个简化版的,真正的登录SDK比这个考虑的东西要多的多,如果在加上多个App进行登录账号的共享的话,那么考虑的东西就更为复杂了。 本篇博客就先封装一个LoginSDK, 让
前边以及陆陆续续的介绍了使用Swift3.0开发的服务端应用程序的Perfect框架。本篇博客就做一个阶段性的总结,做一个完整的实例,其实这个实例在《Swift3.0服务端开发(一)》这篇博客中已经简单的介绍过了,本篇博客就来详细的聊一下这个工程的具体实现细节。当然包括iOS端和服务端的代码。本篇博客的介绍顺序按照功能模块来划分的,如登录注册模块、记事本列表,记事本的增删改查等功能。在每个功能模块,我们先给出服务端代码的实现,然后给出客户端代码的实现。 本篇博客的前几部分主要介绍整个工程的公用模块,为工程的
摄像照相视频音频处理 SCRecorder - SCRecorder短视频录制。 VideoPushDemo - 视频剪辑视频特效制作1 视频特效制作2。 LLSimpleCamera - 一款简单的,可自定义的iOS摄像头控件,摄像头。 EZAudio - EZAudio是一个iOS和OSX上简单易用的音频框架,根据音量实时显示波形图,基于Core Audio,适合实时低延迟音频处理,非常直观。中文介绍,官网。 ffmpeg - ffmpeg官网,FFmpeg在iOS上完美编译。 V
在iOS开发中,使用tableView的界面,大多会用到一个下拉刷新的的控件,第三方库中,我们一般会选择比较好用的MJRefresh,其实,在iOS6之后,系统为我们提供了一个原生的刷新控件,使用起来非常方便,只是制定性不强,如果我们没有复杂的需求,使用UIRefreshControl也是不错的一个选择。
本文来自:微信移动客户端开发团队公众号(WeMobileDev) 我们来了 ---- 今天,WCDB(WeChat Database)通过了公司的最终审核,作为腾讯微信的一个开源组件分享给大家。 从WCDB初建,到不断摸索、优化,再到整理代码、文档,最终看着她在 GitHub 上静静等待着“Make Public”被按下,心情犹如看着女儿出嫁的父亲。趁此机会,正好回顾一下 WCDB 这个“微信的数据库”的成长,分享我们的心路历程,也希望以此让大家更了解WCDB。 各自探索 ---- 最早期的微信,各个平台
实际上,Plugin就是一个特殊的Package。Package是一个纯Dart包,它里面封装了一个纯Dart的功能组件,可以将其理解成是一个Widget;而Plugin是提供的对Android或者iOS功能的封装,它是在Flutter层面提供前述组件功能,使Flutter可以较为方便地调取Native的相关功能模块。
在之前的博客IOS开发之新浪围脖中获取微博的内容是使用我自己的access_token来请求的数据,那么如何让其他用户也能登陆并获取自己的微博内容呢?接下来就是OAuth和SSO出场的时候啦。OAuth的全称为Open Authorization 开发授权,SSO--单点登陆(Single Sign On)。至于其原理是什么,更具体的介绍网上的资料是一抓一大把,在这就不做过多的原理性的概述。当然啦,OAuth和SSO在Web和其他手机终端上应用还是蛮多的,所有这方面的资料也是多的很。 简单的说就是可
iOS中常用的Networking技术主要包括HTTP(s)及TCP,前者主要的API封装在URL Loading System中,后者API主要封装在CFNetwork的Stream(ReadStream&WriteStream)中。
在iOS开发框架中,AVKit是一个非常上层,偏应用的框架,它是基于AVFoundation的一层视图层封装。其中相关文件和类都十分简单,本篇博客主要整理和总结AVKit中相关类的使用方法。
早在2017年年初,我就用七八篇文章的篇幅系统介绍过Objective-C中的CoreAnimation框架。CoreAnimation是iOS中实现动画的框架,整个iOS中的动画(比如UIView中封装的动画、UIViewController切换时的转场动画、UITableViewCell移除增添时的动画等,都是对CoreAnimation的封装)都是通过CoreAnimation实现的。
长期以来,Flutter都缺乏一个简单易用,功能强大的二维码、条形码等扫码库,需要既能支持相机扫码,也能支持本地图片码识别。为了解决这个问题,我考察了原生的扫码生态,选取了功能强大的HUAWEI ScanKit SDK,对它进行了Flutter插件包封装。
Hello,各位小伙伴,又是好久没见,因为最近工作变动的原因,停更了快一个月的时间,好多同学都QQ问我什么时候更,会不会不更新了之类的。答案当然是不会的。
距离我们发出第一篇音视频技术文章已经过去一年了,回顾这一年,我们发了几十篇文章,覆盖了音视频基础知识、工具使用、工程示例、实战经验等主题,这些文章基本上构成了入门音视频开发并做一些功能实现和指标优化工作所需要的知识框架,这里我们来回顾下这些文章,做一下内容简介,给需要的朋友提供一些指引。
一.UI框架 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。 SVPullToRefresh - 下拉刷新控件。 MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。 (国人写) XHRefreshControl - XHRefreshControl 是一款高扩展性、低耦合度的下拉刷新、上提加载更多的组件。(国人写) CBStore
所谓混合开发,指的是 App 的整体架构以原生技术栈为基础,将 Flutter 运行环境嵌入到原生 App 工程中,然后由原生开发人员为 Flutter 运行提供宿主容器及基础能力支撑,而 Flutter 开发人员则负责应用层业务及 App 内大部分渲染工作。
我们知道在开发 Native App 时经常会有打开网页的需求,可供的选择通常只有两种:
模糊效果 FXBlurView - 是一个UIView子类,支持iOS5.0以上版本,支持静态,动态模糊效果,继承与UIView的模糊特效。 VVBlurPresentation - 很简单易用的在原来viewconntroller基础上做模糊,然后呈现新的viewcontroller的。 UICustomActionSheet - 通过模糊背景来着重强调与菜单相关的元素 - 对话框里面已经收藏。 SABlurImageView - 支持渐变动画效果的图像模糊化类库.PS与前几天推存类SAH
封装就是把编码器生成的音频,视频同步以生成我们肉眼可见,耳朵可听并且看到的与听到的是同步的视频文件.即封装后生成一个容器,来存放音频和视频流以及一些其他信息(比如字幕, metadata等).
今年大前端的概念一而再再而三的被提及,那么大前端时代究竟是什么呢?大前端这个词最早是因为在阿里内部有很多前端开发人员既写前端又写 Java 的 Velocity 模板而得来,不过现在大前端的范围已经越来越大了,包含前端 + 移动端,前端、CDN、Nginx、Node、Hybrid、Weex、React Native、Native App。笔者是一名普通的全职 iOS 开发者,在接触到了前端开发以后,发现了前端有些值得移动端学习的地方,于是便有了这个大前端时代系列的文章,希望两者能相互借鉴优秀的思想。谈及到大前端,常常被提及的话题有:组件化,路由与解耦,工程化(打包工具,脚手架,包管理工具),MVC 和 MVVM 架构,埋点和性能监控。笔者就先从组件化方面谈起。网上关于前端框架对比的文章也非常多(对比 React,Vue,Angular),不过跨端对比的文章好像不多?笔者就打算以前端和移动端(以 iOS 平台为主)对比为主,看看这两端的不同做法,并讨论讨论有无相互借鉴学习的地方。
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件。 SVPullToRefresh - 下拉刷新控件。 MJRefresh - 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能。可以自定义上下拉刷新的文字说明。具体使用看“使用方法”。(国人写) XHRefreshControl - XHRefreshControl是一款高扩展性,低耦合度的下拉刷新,上提加载更多的组件。(国人写) CBStoreHouse
内容来源:2018 年 3 月 10 日,今日头条-Musically IOS端架构师任凯在“饿了么技术沙龙・第22弹 【移动专场】”进行《IOS架构设计杂谈》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。 阅读字数:2842 | 8分钟阅读 摘要 本次分享将探讨iOS中的架构设计,讲解工程设计的6大原则,通过一个简单登陆界面,一步步分析开发中的MVVM框架应用。 嘉宾演讲视频及PPT回顾:http://suo.im/4HHwpv 为什么要做架构设
前言 随着移动互联网时代的蓬勃发展,移动终端的自动化测试也在业界日益活跃,总体来看在Android平台上的自动化工具和实践比较多,但是说到iOS平台无论从自动化工具的数量还是质量上就陡降了。究其原因,无外乎是iOS系统的封闭性,加上相对Android用户的数量少,导致对这个平台系统的自动化进展缓慢,据笔者了解到的情况,很多iOS平台的测试人员还处于纯手工测试模式,自动化程度和Android平台无法相论,更别提和PC端相比了。 然而越是困难的事,越是研究的少,就越发有挑战性。有挑战性的事大多又会带来不菲的收益
背景 测试作为质量保证极其重要的一环,在移动App开发流程中起到非常关键的作用。从开发工程师到测试工程师,人人都应具备良好的测试意识,将隐患和风险在上线之前找出并解决,可以有效的减少线上事故。 美团和大众点评App作为美团点评平台的主要入口,支持承载着美团点评各大业务。其中美团点评境外度假业务主要包括了出境游相关业务以及所有的境外城市站,也是美团点评非常看重和大力发展的业务线。为了保证质量,需要进行各项测试:冒烟测试[1]、功能测试、集成测试、专项性能测试,回归测试[2]。其中冒烟测试和回归测试大多由开发自
移动端跨平台技术自移动开发诞生以来一直是个热门话题,一是持续关注研发效率,降本提效;二是一套代码多端运行可以提升多端业务逻辑的一致性;三是跨端技术方案通常意味着更佳的高效运维和缺陷修复。
我也年轻过,我首先非常尊重每一个不远前来面试的每一个准小伙伴.我代码或者项目上的任何问题,都不会带进面试间!
Flutter综合应用 Flutter综合应用 线上出现问题,该如何做好异常捕获和信息采集 Flutter异常 App异常的捕获方式 FrameWork异常的捕获方式 异常上报 Dart接口实现 iOS接口实现 Android接口实现 总结 衡量FLutter App线上质量,需要关注三个指标 页面异常率 页面帧率 页面加载时长 组件化和平台化,如何组织合理稳定的Flutter工程结构 组件化 组件化的具体实施步骤 平台化 如果下层组件确实需要调用上层组件的代码怎么办? 如何构建高效的Flutt
这次呢,我们来说说iOS中数据持久化的几种方案。说到iOS中的数据存储,无非有4中方式:
gif动画 UIImageView-PlayGIF - UIImageView-PlayGIF。 YLGIFImage - YLGIFImage。 YLGIFImage-Swift - YLGIFImage-Swift。 gifu.Swift - gifu.Swift高性能GIF显示类库。 droptogif - droptogif视频拖拽到应用窗口后自动转换为 GIF 动画(其转换进程动画效果也超赞)。 JWAnimatedImage.swift - JWAnimatedImage.swift
Native有更合适的线程模型,尽管Web Worker可以解决一部分问题,但如图像解码、文本渲染仍无法多线程渲染,这影响了Web的流畅性。
之所以要发表这篇博客,还源于最近的开发工作所实现的一个小的Demo, 当然这个Demo不会涉及工作中App的一些内容,下方要实现的Demo是通用的。因为项目需求的迭代,要求在银行卡绑定中添加支行所在的省市信息。在iOS中选择这种省市信息的一个比较不错的方式当时是使用UIPickerView进行显示了。当然在PickerView上的省市信息是联动显示的,我们在此因为需求定的是让用户选择省市信息,所以我们进行二级联动,当然多级联动的原理也是一样的。由于之前的老项目是使用Objective-C写的,虽然现在是Sw
5G网络作为第5代的移动通信网络,它的网络峰值传播速度可1以达到10Gbps/s.这比4G的的传输速度快数百倍.举个例子,整部超高画质电影下载可在1秒钟之内下载完成.
让世界充满爱的图片处理工具 壹 项目名称:图片实时处理使用工具 iOS-GPUImage 项目简介:本项目是基于 ios 的图片处理 App,完全模仿 QQ 影像2.0,使用 QQ 影像资源。其主要
文 | Lefe 对于一名 iOS 开发者来说,微信小程序的出现,会让我们感觉到些许的不安。 但接触一段时间后,我发现,其实并不是想象中的那样。微信小程序不可能替代原生 app,也没有绝对的优势战胜原生 app。 不过,微信小程序固然有它的好处,比如我们需要用到的那些不常用的服务。对于小企业来说,小程序可以让他们更便捷地宣传他们的服务,或是给顾客一个更好的线下体验。 那么对于一个 iOS 开发的成员来说,开发小程序会有哪些挑战呢? 回顾 iOS 开发过程 最基本的 iOS
flutter-boot核心解决了混合开发模式下的两个问题:flutter混合开发的工程化设计和混合栈。那flutter-boot是如何解决的呢?
Core Animation 这个框架实际上非常容易让iOS开发者误解仅仅是用来做动画效果的框架.实际上动画仅仅是是它功能的冰水一角. 它包括了图形绘制,投影,动画的Object-C 类集合.它通过我们iOS开发熟悉的应用程序套件与CocoaTouch 视图架构的抽象分层模式,提供了一套非常流畅的动画的接口出来.
Flutter基础介绍 Flutter简介 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台应用,支持Android、IOS、Web、Linux app。 Flutter 支持毫秒级的热重载,并提供了富有表现力和灵活的 UI,可达到原生一样的性能。 Flutter 与 React Native 设计对比 相比于 RN 转换原生控件,Flutter 则编译为原生代码. Flutter 控制屏幕上的每个像素,这避免了由于需要 JavaScript 桥接而导致的性能
QT4W (Quick Test for Web)是使用Python开发的Web自动化框架,是QTA(QTA是一套集成面向多端多平台的自动化测试解决方案,包括QT4A,QT4A,QT4C等,其中QT4A及QT4I已经开源)自动化体系内实现支持Web自动化测试能力的支持库。QT4W和QT4A一起使用时,可以实现Android端的Web自动化,和QT4I一起使用时,可以进行IOS端Web自动化。 本框架采用分层设计,将整个Web自动化过程抽象出了三个层次:WebControl层,WebDriver层以及原生
表相关与的TabBar SWTableViewCell - 国内开源作者,带很多手势的表单元格。 MCSwipeTableViewCell - 带很多手势的表单元格。 TMQuiltView - 瀑布流。 XRWaterfallLayout - 超简单的瀑布流实现,实现说明。 WaterfallFlowDemo - 一个简单的UICollectionView瀑布流布局演示demo。 XLForm - 很多表格类的表,写法更高冷一点,推荐使用。 Eureka.swift - Eur
对于刚接触iOS图形相关框架的小白,有一些图形框架在字面上和功能上非常容易混淆。这里旨在总结一下各种框架,区分它们的概念和功能,以作日后进一步细分学习的指引。因而,本文并不会针对具体框架作详解,只作区分引导,读者可自行选择方向继续深造。为此,笔者总结了一张各种框架关系图,如下所示:
先来聊聊NSURL吧,NSURL实际上就是对网址字符串的一个封装。而之所以进行这个封装,就是因为请求网址字符串中包括协议类型、服务器地址、端口号、资源层级、文件名等等(这些项目是按照一定的规则组合在一起的),我们要在字符串中获取到其中某一项,那就要自己写一个正则表达式来获取到,这是很不方便的;而NSURL就可以将这个网址字符串分解成固定特有的子字符串,这样就方便了系统的调用以及开发人员的debug。
在音视频领域接触最多实现的方案通常是通过ffmpeg(PC和sever端居多)或者硬件厂家的的SDK实现特定硬件的编解码功能(机顶盒,电视等嵌入式设备)。这里我们介绍一个在国内不太常用的解决方案----gstreamer媒体库
相信在iOS开发中,大家对UIAlertView和UIActionSheet一定不陌生,这两个控件在UI设计中发挥了很大的作用。然而如果你用过,你会发现这两个控件的设计思路有些繁琐,通过创建设置代理来进行界面的交互,将代码逻辑分割了,并且很容易形成冗余代码。在iOS8之后,系统吸引了UIAlertController这个类,整理了UIAlertView和UIActionSheet这两个控件,在iOS中,如果你扔使用UIAlertView和UIActionSheet,系统只是会提示你使用新的方法,iOS9中,这两个类被完全弃用,但这并不说明旧的代码将不能使用,旧的代码依然可以工作很好,但是会存在隐患,UIAlertController,不仅系统推荐,使用更加方便,结构也更加合理,作为开发者,使用新的警示控件,我们何乐而不为呢。这里有旧的代码的使用方法:
GPUImage框架是一个获得BSD许可的iOS库,可让您将GPU加速滤镜和其他效果应用于图像,实时摄像机视频和电影。与Core Image(iOS 5.0的一部分)相比,GPUImage允许您编写自己的自定义过滤器,支持部署到iOS 4.0,并且具有更简单的界面。但是,它目前缺少核心图像的一些更高级的功能,例如面部检测。
WebDriverAgent简介 WebDriverAgent是Facebook 在去年的 SeleniumConf 大会上推出了一款新的iOS移动测试框架。当时的推文申明,还只支持模拟器,不过在今年4月更新的版本中,官方宣称支持真机测试了,大家可以查看官方github 的介绍:https://github.com/facebook/WebDriverAgent 下面摘录一段官方对于WebDriverAgent的介绍字段: WebDriverAgent 在 iOS 端实现了一个 WebDriver serv
前言 在移动开发中,发起http请求几乎是每个app必备的功能。今天就用这篇博客记录iOS发起http请求的示例代码。 本文基于swift,使用第三方库Alamofire。 引入第三方库 iOS与Android类似,都会通过一个构建脚本来实现对工程第三方依赖的管理。在Android中这个脚本叫build.gradle。在iOS开发中,这个脚本叫Podfile。我们通过编辑Podfile管理iOS工程的依赖: platform :ios, '8.0' use_frameworks! target 'Hell
数据库 FMDB - 多线程FMDatabaseQueue实例,FMDB数据库的使用演示和封装工具类,基于fmdb的基本操作 通过fmdb进行的数据库的基本操作(增删改查)查找是使用UISearchBar和UISearchDisplayController进行混合使用。 GXDatabaseUtils - 在FMDB基础上的工具。 realm-cocoa - Realm是一个真正为移动设备打造的数据库,同时支持Objective-C和Swfit.Realm宣称其相比Sqlite,在移动设备上有
这里是 RenderDemo 的第三篇:用 OpenGL 实现高斯模糊。我们分别在 iOS 和 Android 平台实现了用 OpenGL 对图像进行高斯模糊处理并渲染出来。效果图如下:
领取专属 10元无门槛券
手把手带您无忧上云