/
index.html
425 lines (292 loc) · 17.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>iOS移动开发周报-第45期 | 唐巧的博客</title>
<meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=no">
<meta name="author" content="唐巧">
<meta name="description" content="前言是的,我又开始写周报了!主要是因为喵神不写周报了,加上我发现大家对写 iOS 技术周报这件事情似乎没什么兴趣。其实我觉得这是一个挺好的学习总结的办法,所以要不就继续我来吧。 我会每周从国外的周报,微博,GitHub,QQ / 微信群里收集各种 iOS 的信息,然后挑选一些有价值的分享给大家。 MDCCMDCC 大会刚刚结束,这次大会请来了在日本的喵神王巍,滴滴的孙源,LeanCloud 的陈宜">
<meta property="og:type" content="article">
<meta property="og:title" content="iOS移动开发周报-第45期">
<meta property="og:url" content="https://blog.devtang.com/2016/09/26/ios-weekly-45/index.html">
<meta property="og:site_name" content="唐巧的博客">
<meta property="og:description" content="前言是的,我又开始写周报了!主要是因为喵神不写周报了,加上我发现大家对写 iOS 技术周报这件事情似乎没什么兴趣。其实我觉得这是一个挺好的学习总结的办法,所以要不就继续我来吧。 我会每周从国外的周报,微博,GitHub,QQ / 微信群里收集各种 iOS 的信息,然后挑选一些有价值的分享给大家。 MDCCMDCC 大会刚刚结束,这次大会请来了在日本的喵神王巍,滴滴的孙源,LeanCloud 的陈宜">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="http://ww2.sinaimg.cn/mw690/65dc76a3jw1f7zsq678yij20qo1bf410.jpg">
<meta property="article:published_time" content="2016-09-26T14:15:15.000Z">
<meta property="article:modified_time" content="2020-02-08T18:08:22.169Z">
<meta property="article:author" content="唐巧">
<meta property="article:tag" content="iOS">
<meta property="article:tag" content="唐巧">
<meta property="article:tag" content="猿辅导">
<meta property="article:tag" content="开发">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="http://ww2.sinaimg.cn/mw690/65dc76a3jw1f7zsq678yij20qo1bf410.jpg">
<link rel="alternative" href="/atom.xml" title="唐巧的博客" type="application/atom+xml">
<link rel="icon" href="/img/favicon.png">
<link rel="stylesheet" href="/css/style.css">
<link rel="stylesheet" href="/%02.css">
<link rel="stylesheet" href="/.css">
<meta name="generator" content="Hexo 4.2.0"></head>
<body>
<header>
<div>
<div id="textlogo">
<h1 class="site-name"><a href="/" title="唐巧的博客">唐巧的博客</a></h1>
<h2 class="blog-motto">记录下自己学习的点滴</h2>
</div>
<div class="navbar"><a class="navbutton navmobile" href="#" title="菜单">
</a></div>
<nav class="animated">
<ul>
<ul>
<li><a href="/">首页</a></li>
<li><a href="/archives">归档</a></li>
<li><a href="/about">关于</a></li>
<li>
<form class="search" action="//google.com/search" method="get" accept-charset="utf-8">
<label>Search</label>
<input type="search" id="search" name="q" autocomplete="off" maxlength="20" placeholder="搜索" />
<input type="hidden" name="q" value="site:blog.devtang.com">
</form>
</li>
</ul>
</nav>
</div>
</header>
<div id="container">
<div id="main" class="post" itemscope itemprop="blogPost">
<article itemprop="articleBody">
<header class="article-info clearfix">
<h1 itemprop="name">
<a href="/2016/09/26/ios-weekly-45/" title="iOS移动开发周报-第45期" itemprop="url">iOS移动开发周报-第45期</a>
</h1>
<p class="article-time">
<time datetime="2016-09-26T14:15:15.000Z" itemprop="datePublished"> 发表于 2016-09-26 14:15</time>
</p>
</header>
<div class="article-content">
<div id="toc" class="toc-article">
<strong class="toc-title">文章目录</strong>
<ol class="toc"><li class="toc-item toc-level-2"><a class="toc-link" href="#前言"><span class="toc-number">1.</span> <span class="toc-text">前言</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#MDCC"><span class="toc-number">2.</span> <span class="toc-text">MDCC</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#苹果加强应用标题审核力度"><span class="toc-number">3.</span> <span class="toc-text">苹果加强应用标题审核力度</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#适配-iOS-10"><span class="toc-number">4.</span> <span class="toc-text">适配 iOS 10</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Swift-3"><span class="toc-number">5.</span> <span class="toc-text">Swift 3</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Push-Notifications"><span class="toc-number">6.</span> <span class="toc-text">Push Notifications</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#Vapor"><span class="toc-number">7.</span> <span class="toc-text">Vapor</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#有趣"><span class="toc-number">8.</span> <span class="toc-text">有趣</span></a></li></ol>
</div>
<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>是的,我又开始写周报了!主要是因为喵神不写周报了,加上我发现大家对写 iOS 技术周报这件事情似乎没什么兴趣。其实我觉得这是一个挺好的学习总结的办法,所以要不就继续我来吧。</p>
<p>我会每周从国外的周报,微博,GitHub,QQ / 微信群里收集各种 iOS 的信息,然后挑选一些有价值的分享给大家。</p>
<h2 id="MDCC"><a href="#MDCC" class="headerlink" title="MDCC"></a>MDCC</h2><p>MDCC 大会刚刚结束,这次大会请来了在日本的喵神王巍,滴滴的孙源,LeanCloud 的陈宜龙等众多 iOS 开发者。会议的所有 iOS 讲稿都会更新到这个地址,感兴趣的同学请一定关注更新:<a href="https://github.com/MDCC2016/iOS-Session-Slides" target="_blank" rel="noopener">https://github.com/MDCC2016/iOS-Session-Slides</a></p>
<p>王巍提前已经将他的讲稿和 Demo 代码公布在微博上了,地址是:<a href="http://weibo.com/1708947107/E9JHnoNtS" target="_blank" rel="noopener">http://weibo.com/1708947107/E9JHnoNtS</a></p>
<h2 id="苹果加强应用标题审核力度"><a href="#苹果加强应用标题审核力度" class="headerlink" title="苹果加强应用标题审核力度"></a>苹果加强应用标题审核力度</h2><p>你的应用最近因为起名字的原因被拒过吗?在以前,由于标题文字在搜索中的排序权重较高,所以有一些应用会把一些热门关键词写在标题中。苹果对此行为一直管得不严,有些审核员管,有些审核员不管。不过最近似乎每个审核员都更加严格执行这项标准了,那些稍长的名字,都被要求进行进一步的精简。详见:<a href="http://www.gupowang.com/app/5057.html" target="_blank" rel="noopener">http://www.gupowang.com/app/5057.html</a></p>
<h2 id="适配-iOS-10"><a href="#适配-iOS-10" class="headerlink" title="适配 iOS 10"></a>适配 iOS 10</h2><p>Xcode 10 发布以后,编译器开始不支持 iOS 7,所以很多应用在适配完 iOS 10 以后,都不再支持 iOS 7 了。我的同事看了一下,包括网易新闻,滴滴出行这些大应用也都选择了不再兼容 iOS 7 的方法。但是也有一些应用选择适配 iOS 10 同时支持 iOS 7,这些应用有 QQ,美团 等。由于 AppStore 支持 iOS 7 的设备下载旧的版本,所以我个人觉得即便不支持 iOS 7,所以不支持 iOS 7 或许是最省事的办法。</p>
<h2 id="Swift-3"><a href="#Swift-3" class="headerlink" title="Swift 3"></a>Swift 3</h2><p>Swift 3 推出之后,Ray 出了一个迁移到 Swift 3 的视频教程,感兴趣的同学可以看看,不过据说,Alarmfire 网络库在适配 Swift 3 后,只支持 iOS 9 以上的版本。这对于国内系统升级缓慢的应用来说,似乎是一个很尴尬的事情。另一个尴尬的事情是迁移 Swift 3 还需要各种第三方库的配合,当前看起来,还需要一些时间。所以,建议大家还是继续使用 Swift 2.3 的版本。<a href="https://videos.raywenderlich.com/screencasts/ios-10-swift-3-in-3-minutes" target="_blank" rel="noopener">https://videos.raywenderlich.com/screencasts/ios-10-swift-3-in-3-minutes</a></p>
<h2 id="Push-Notifications"><a href="#Push-Notifications" class="headerlink" title="Push Notifications"></a>Push Notifications</h2><p>苹果最近改进了它的 Push Notifications 使用方式,除了可以使用以前的证书验证方式外,增加了一种名为 Token Authentication 的方式。苹果原话说: A token is easy to generate, doesn’t expire, and can be used to send notifications to all of your apps. 感兴趣的读者可以试试,相关链接:<a href="https://developer.apple.com/news/?id=09222016a" target="_blank" rel="noopener">https://developer.apple.com/news/?id=09222016a</a></p>
<h2 id="Vapor"><a href="#Vapor" class="headerlink" title="Vapor"></a>Vapor</h2><p>Vapor 1.0 正式发布了,这是一个基于 Swift 的服务器端框架,感兴趣的朋友可以玩玩。<a href="http://vapor.codes/" target="_blank" rel="noopener">http://vapor.codes/</a></p>
<h2 id="有趣"><a href="#有趣" class="headerlink" title="有趣"></a>有趣</h2><p>最近 AppStore 的热门搜索出现了奇怪的词条,详见下面第三条,看不懂的别问我,我也不懂!请向老司机请教!</p>
<p><img src="http://ww2.sinaimg.cn/mw690/65dc76a3jw1f7zsq678yij20qo1bf410.jpg" alt=""></p>
</div>
<footer class="article-footer clearfix">
<div class="article-catetags">
<div class="article-categories">
<span></span>
<a class="article-category-link" href="/categories/iOS-weekly/">iOS weekly</a>
</div>
</div>
<div class="article-share" id="share">
<div data-url="https://blog.devtang.com/2016/09/26/ios-weekly-45/" data-title="iOS移动开发周报-第45期 | 唐巧的博客" data-tsina="" class="share clearfix">
</div>
</div>
</footer>
</article>
<nav class="article-nav clearfix">
<div class="prev" >
<a href="/2016/10/10/ios-weekly-46/" title="iOS 移动开发周报 - 第 46 期">
<strong>上一篇:</strong><br/>
<span>
iOS 移动开发周报 - 第 46 期</span>
</a>
</div>
<div class="next">
<a href="/2016/09/16/what-is-love/" title="什么是爱 - 读《少有人走的路》">
<strong>下一篇:</strong><br/>
<span>什么是爱 - 读《少有人走的路》
</span>
</a>
</div>
</nav>
</div>
<div class="openaside"><a class="navbutton" href="#" title="显示侧边栏"></a></div>
<div id="asidepart">
<div class="closeaside"><a class="closebutton" href="#" title="隐藏侧边栏"></a></div>
<aside class="clearfix">
<div class="sponsor">
</div>
<div class="categorieslist">
<p class="asidetitle">分类</p>
<ul>
<li><a href="/categories/books-summary/" title="books summary">books summary</a></li>
<li><a href="/categories/iOS/" title="iOS">iOS</a></li>
<li><a href="/categories/iOS-weekly/" title="iOS weekly">iOS weekly</a></li>
<li><a href="/categories/mac/" title="mac">mac</a></li>
<li><a href="/categories/shell/" title="shell">shell</a></li>
<li><a href="/categories/summary/" title="summary">summary</a></li>
</ul>
</div>
<div class="weixin">
<br />
<p class="asidetitle">微信公众号</p>
<p>关注我的微信公众号,和我一起成长:</p>
<img src="/images/weixin-qr.jpg" width="230px" />
</div>
<div class="rsspart">
<a href="/atom.xml" target="_blank" title="rss">RSS 订阅</a>
</div>
</aside>
</div>
</div>
<footer><div id="footer" >
<div class="social-font" class="clearfix">
</div>
<p class="copyright" style="margin-top: 10px;">
Powered by <a href="http://hexo.io" target="_blank" title="hexo">hexo</a> and Theme by <a href="https://github.com/wuchong/jacman" target="_blank" title="Jacman">Jacman</a> © 2020
<a href="/about" target="_blank" title="唐巧">唐巧</a>
</p>
</div>
</footer>
<script src="/js/jquery-2.0.3.min.js"></script>
<script src="/js/jquery.imagesloaded.min.js"></script>
<script src="/js/gallery.js"></script>
<script src="/js/jquery.qrcode-0.12.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.navbar').click(function(){
$('header nav').toggleClass('shownav');
});
var myWidth = 0;
function getSize(){
if( typeof( window.innerWidth ) == 'number' ) {
myWidth = window.innerWidth;
} else if( document.documentElement && document.documentElement.clientWidth) {
myWidth = document.documentElement.clientWidth;
};
};
var m = $('#main'),
a = $('#asidepart'),
c = $('.closeaside'),
o = $('.openaside');
c.click(function(){
a.addClass('fadeOut').css('display', 'none');
o.css('display', 'block').addClass('fadeIn');
m.addClass('moveMain');
});
o.click(function(){
o.css('display', 'none').removeClass('beforeFadeIn');
a.css('display', 'block').removeClass('fadeOut').addClass('fadeIn');
m.removeClass('moveMain');
});
$(window).scroll(function(){
o.css("top",Math.max(80,260-$(this).scrollTop()));
});
$(window).resize(function(){
getSize();
if (myWidth >= 1024) {
$('header nav').removeClass('shownav');
}else{
m.removeClass('moveMain');
a.css('display', 'block').removeClass('fadeOut');
o.css('display', 'none');
}
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
var ai = $('.article-content>iframe'),
ae = $('.article-content>embed'),
t = $('#toc'),
ta = $('#toc.toc-aside'),
o = $('.openaside'),
c = $('.closeaside');
if(ai.length>0){
ai.wrap('<div class="video-container" />');
};
if(ae.length>0){
ae.wrap('<div class="video-container" />');
};
c.click(function(){
ta.css('display', 'block').addClass('fadeIn');
});
o.click(function(){
ta.css('display', 'none');
});
$(window).scroll(function(){
ta.css("top",Math.max(140,320-$(this).scrollTop()));
});
});
</script>
<script type="text/javascript">
$(document).ready(function(){
var $this = $('.share'),
url = $this.attr('data-url'),
encodedUrl = encodeURIComponent(url),
title = $this.attr('data-title'),
tsina = $this.attr('data-tsina'),
description = $this.attr('description');
var html = [
'<div class="hoverqrcode clearfix"></div>',
'<a class="overlay" id="qrcode"></a>',
'<a href="https://www.facebook.com/sharer.php?u=' + encodedUrl + '" class="article-share-facebook" target="_blank" title="Facebook"></a>',
'<a href="https://twitter.com/intent/tweet?url=' + encodedUrl + '" class="article-share-twitter" target="_blank" title="Twitter"></a>',
'<a href="#qrcode" class="article-share-qrcode" title="微信"></a>',
'<a href="http://widget.renren.com/dialog/share?resourceUrl=' + encodedUrl + '&srcUrl=' + encodedUrl + '&title=' + title +'" class="article-share-renren" target="_blank" title="人人"></a>',
'<a href="http://service.weibo.com/share/share.php?title='+title+'&url='+encodedUrl +'&ralateUid='+ tsina +'&searchPic=true&style=number' +'" class="article-share-weibo" target="_blank" title="微博"></a>',
'<span title="Share to"></span>'
].join('');
$this.append(html);
$('.hoverqrcode').hide();
var myWidth = 0;
function updatehoverqrcode(){
if( typeof( window.innerWidth ) == 'number' ) {
myWidth = window.innerWidth;
} else if( document.documentElement && document.documentElement.clientWidth) {
myWidth = document.documentElement.clientWidth;
};
var qrsize = myWidth > 1024 ? 200:100;
var options = {render: 'image', size: qrsize, fill: '#2ca6cb', text: url, radius: 0.5, quiet: 1};
var p = $('.article-share-qrcode').position();
$('.hoverqrcode').empty().css('width', qrsize).css('height', qrsize)
.css('left', p.left-qrsize/2+20).css('top', p.top-qrsize-10)
.qrcode(options);
};
$(window).resize(function(){
$('.hoverqrcode').hide();
});
$('.article-share-qrcode').click(function(){
updatehoverqrcode();
$('.hoverqrcode').toggle();
});
$('.article-share-qrcode').hover(function(){}, function(){
$('.hoverqrcode').hide();
});
});
</script>
<!-- Analytics Begin -->
<script type="text/javascript">
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-28029597-1', '');
ga('send', 'pageview');
</script>
<!-- Analytics End -->
<!-- Totop Begin -->
<div id="totop">
<a title="返回顶部"><img src="/img/scrollup.png"/></a>
</div>
<script src="/js/totop.js"></script>
<!-- Totop End -->
<!-- MathJax Begin -->
<!-- mathjax config similar to math.stackexchange -->
<!-- MathJax End -->
<!-- Tiny_search Begin -->
<!-- Tiny_search End -->
</body>
</html>