当前位置:首页 > 技术分析 > 正文内容

探索iOS 9适配(iphone适配)

ruisui882个月前 (05-03)技术分析17

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿,或寻求《近匠》报道,请发送邮件至tangxy#csdn.net(请把#改成@)。

作为一名iOS开发者,你可能不熟悉陈宜龙,但不会不知道 @iOS程序犭袁,曾多次在 GitHub 每日最受欢迎 Objective-C 开发者排行NO.1,热爱分享,崇尚开源精神,对新技术有狂热的追求。近日,在飞行课堂·北大孵化营站,陈宜龙从基础适配、崩溃与警告、UI适配、新特性适配四部分,分享了对 iOS 9 适配的探索与理解。

蛋疼的基础适配?

陈宜龙认为,很多开发者对ATS有误解,因为多多少少都会遇到网络中断问题。所以,得出了一个结论:“所有从 iOS 9 发出网络请求,都会受到ATS的限制。”其实不是这样。只有从NSURLConnection,CFURL或者NSURLSession APIs这三类发出的请求才会受到网络限制。 第二个误解:iOS 9 之后,之前上架的App就不能正常使用了。经过很多开发者实践,没有问题。原因就在于ATS是iOS 9 在 SDK 层面的新特性。

ATS:安全第一

Xcode病毒事件中,开发者可以通过ATC抓包,检测App是够感染。以下为用 SSL/TLS 的通信的好处:

另外,陈宜龙不建议彻底禁用ATS,很多公司在没有ATS限制之前就已经全面支持https。以下为他列出了几种App适配方案:

后台定位:省电才是硬道理

在苹果的规则中,省电是非常重要的一点。iOS 9 的新特性中,增加了“
allowsBackgroundlocationUpdates”——允许后台定位的新属性。开发者可选择开启或手动关闭这项新属性。 陈宜龙@iOS程序犭袁用高德地图举例,如果用户打开App只浏览地图,后台定位属性即可设为no。如果用户使用导航功能,属性即可设为yes。

企业分发调整了新的用户确认流程,如下图所示:

bitcode

陈宜龙认为知道怎么开关就行,下图为开关示例:

URL Scheme-白名单

URL Scheme新属性可以帮助了解用户。实现方法:动态下发一个Bundle ID,隔一段时间去看OpenURL,再下发一些BundleID,通过返回值yes或者no,可以发现用户性别,运动偏好等。如果采集到这些信息,可以推送广。

崩溃与警告

陈宜龙@iOS程序犭袁简单列举了JSONKit 导致崩溃、Masonry 引起崩溃、旧的状态栏样式设置引起警告、在 debug 状态下也生成.dSYM文件引起警告等示例。更多崩溃分析需求,可以使用BugHD实时监控。

UI适配

上图:字体变大举例 下图:只设置左边约束(单边约束)

新特性适配

Search API:可执行搜索,跳转,push的动作。 UIStackView将取代UITableView,甚至UICollectionView。

第一时间掌握最新移动开发相关信息和技术,请关注mobilehub公众微信号(ID: mobilehub)。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3777.html

分享给朋友:

“探索iOS 9适配(iphone适配)” 的相关文章

Gitlab概览

Gitlab是开源的基于Git的仓库管理系统,也可以管理软件开发的整个生命周期,是项目管理和代码托管平台,支撑着整个DevOps的生命周期。Gitlab很容易选为GitHub,作为公司私有库管理的工具。我们可以用Gitlab Workflow来协同整个团队的软件开发管理过程。软件开发阶段Gitlab...

前后端分离自动化运维平台开发

运维平台采用前后端分离:前端vue,框架vue-element-admin;后端python,框架django-rest-framework.目前运维平台模块如下:1、 CMDB管理应用管理、环境管理、开发语言管理、产品项目管理、资产管理2、 构建发布持续构建、持续部署、Jar工程依赖构建3、 容器...

我的VIM配置

写一篇关于VIM配置的文章,记录下自己的VIM配置,力求简洁实用。VIM的配置保存在文件~/.vimrc中(Windows下是C:\Users\yourname \_vimrc)。VIM除了自身可配置项外,还可插件扩展。VIM的插件一般用vundle或vim-plug来管理,但我力求简单,不打算装太...

vue v-html动态生成的html怎么加样式/事件

1、动态生成的html,样式不生效//html 布局 <view v-html="html"> {{html}} </view> //动态生成的元素 <view class="btngo" @tap="handleLink...

Vue2的16种传参通信方式

前言先直入主题列出有哪些传参方式,下面再通过事例一一讲解。props(父传子)$emit与v-on (子传父)EventBus (兄弟传参).sync与update: (父子双向)v-model (父子双向)ref$children与$parent$attrs与$listeners (爷孙双向)pr...

vue父组件修改子组件的值(通过调用子组件的方法)

props只支持第一次加载这个组件的时候获取父组件的值,后续修改父组件的值得时候子组件并不会动态的更改。然而我们想要通过父组件修改子组件的值要怎么做呢?可以通过ref的方式调用子组件的方法改变子组件的值。子组件<template><div><span>{{data...