Issue 124 – 13th February 2018

综合技术 2018-02-13 阅读原文


Is This An Emoji Crackdown?

So this week has brought a bit of controversy within the community with Apple rejecting a number of apps for the inclusion of emojis citing a lack of compliance with the trademarks and copyrights section of the app review guidelines as the reason. Although a number of these apps have subsequently been accepted, it is still unclear whether this is part of a larger Apple crackdown or just an over-zealous reviewer. @jeremyburge
has written a good summary of all the goings on.


10 Changes to the App Store That Can Get Your App More Downloads

Overall the new App Store re-design has received a general thumbs up from most developers I’ve talked to but what do these changes mean for your app? The team at @appfigures
have come up with a number of opportunities within the new app store design and provide some actional advice on how you can take advantage.


Code Size Optimization Mode in Swift 4.1

With the arrival of Swift 4.1, the Swift compiler has gained a new optimization mode that enables some dedicated optimisations to reduce the size of your compile Swift code. Instead of compiling for performance, the new optimisation mode lets you specifically focus on compiling for minimal size rather than maximum speed. Check out the new post from @eeckstein
on the blog for all the details.

Swift 4.1 Codable Improvements

Introduced in Swift 4.0, Swift’s new Codable protocol is become by far the easiest way of converting Swift objects into XML and JSON but it was not without it’s annoyances. One of these is the mis-match between snake_cased key names and camelCase property names resulting in the need for your own CodingKeys
mapping. Swift 4.1 however has introduced a fix for this by way of a new keyDecodingStrategy
property on JSONDecoder
which can automatically convert between the two forms. @twostraws
has been putting it through it’s paces.


iOS Subscription Groups Explained

In 2016, Apple announced changes to the app-store subscription model that meant that developers who managed to retain subscription users on a (at least semi-continuous) basis for more than a year would have their slice of the subscription pie increased from the default 70% up to 85% for each subsequent billing cycle. At the same, Apple also introduced the concept of subscription groups
. @jeiting
takes an in-depth look explaining what they are and how you can use them.

Getting Started with Moya

Moya has been around for some time now. Build on top of Alamofire, Moya provides a network abstraction layer between Alamofire and your application code, letting you abstract away the nitty gritty of calling into the Alamofire framework and providing a number of other architectural and testing benefits. If you’re thinking about using Moya in your own applications, make sure you check out this introductory article from @MDevSA
which will help you get up to speed.

Beginning Machine Learning with Keras and Core ML

With the arrival of the Core ML and Vision frameworks at last years WWDC a wide range of new possibilities have been opened up to the Apple development community. In this tutorial, @mataharimau
provides a great introduction to this area, showing you how train your own deep learning convolutional neural network, how to convert that network to Core ML and how to then integrate it into your own iOS app.

Notification Handling on WatchKit

Developing for WatchKit is fundamentally different experience from developing for UIKit due to the inherit limitations of the WatchKit framework and the approach to handling notifications in WatchKit is no exception. In this tutorial, @jablair
walks through how to setup, display, handle and test notifications in your watchOS app and in doing so covers a number of best-practices, gotchas and lessons learnt along the way.


This week has seen an exciting announcement from @krausefx
and the team at fastlane
who have started working on an open-source, self-hosted, mobile-optimized CI system powered by fastlane
. It’s still early days but has lots of promise and with all the development being done in the open it’s definitely one to keep an eye on.


Buckets of Code

In this talk from dotSwift 2018, @subdigital
of NSScreenCast
fame, with some pragmatic advice on how to find your own way with your application architecture by introducing your own objects that have just one single responsibility and how doing so, can help reduce the size of your view controllers and make your software more flexible and maintainable in the long-term.

Finally Solving the Expression Problem

In this talk, @bkase_
looks at the Expression Problem – the problem of how to define a data type where we can add new variants and behaviour to that type without losing type safety or having to modify the original data type – before moving on to explore how we can solve this problem in Swift.




首次!腾讯的人工智能在星际争霸2中打败了「开挂」内建AI... OpenAI 一直致力于用深度强化学习战胜《Dota 2》的人类玩家,目前 OpenAI Five 勉强达到了职业玩家水准。而由于游戏主体数量更多(几十到数百)、观察空间以及动作空间巨大,《星际争霸 II》的游戏难度实际上比 Dota 2(...
手持式超声波工具:一举攻破医学影像产业,与巨头Illumina抗衡... 如果说Jonathan Rothberg拥有超能力,那就是将主机大小的机器安装在单个半导体电路板上。这位创业工程师凭借发明世界上第一个DNA测序仪芯片而扬名立万。在此之后,他又花了八年时间把这些专业知识(和大量启动资金)投入到另一项新事业中...
Essential Math for Data Science – ‘Why... Essential Math for Data Science — ‘Why’ and ‘How’ Mathematics is the bedrock of any contemporary discipline of scien...
Heineken and Oracle create chatbot helper for polo... Most people know Heineken for its beer, but as part of the brand’s annual Urban Polo event this year, it has dabbled in...
一文让你读懂什么是机器学习 编辑推荐: 本文于360doc,介绍了机器学习的范围,机器学习的方法,机器学习的应用等。 在进入正题前,我想大家心中可能会有一个疑惑:机器学习有什么重要...