Hello, there. this is the #5 article. The next article might be delayed for holidays. I have many Random articles more than usual in this article. If you miss the news about Supporting App Transport Security from Apple, you should see. If I ship an article every week in next year, the number of articles will be #57 (52 + 5). This is my goal in next year!
Best wishes for the holidays and New Year.



Article

Logic Programming in Swift

Logic programming is a form of declarative programming that describes the solution instead of the calculation. Based on that description, the computer solves the problem. Describing a solution to a problem can be a far easier than devising a method to solve it, which is why logic programming can be appealing.

I didn’t know about the concept of Logic Programming. It’s interesting for me.


RxSwift Primer: Part3, Part4, Part5

We’ve now had a big win and removed all stored state in our ViewController. Next time, we’ll take things a little bit further, and leverage one of the higher order classes that RxCocoa makes available to us: the Driver. We’ll also clean things up a bit, and then take stock of where we’ve landed.

Great resources for RxSwift. In my previous article, I introduced Part1 and Part2. You can learn through a real experience.


SwiftLint 0.14 is out: CocoaPods installs, Linux support, and more!

We released SwiftLint 0.14 over the weekend, and it’s probably our biggest release yet! We added 14 new rules, and shipped CocoaPods, SwiftPM, and Linux support. We’ll dive into the rule changes first, and then explore the optimizations we made to keep the SwiftLint platform useful as Swift continues to grow and change. We’ve marked the locations of errors and warnings with arrows (↓) so you can see without having to run these snippets yourself!

There are so many new rules! Redundant String Enum is what I wanted.

enum Numbers: String {
  case one = "one", case two = "two" // warning!!
  // and
  case one = "one", two = "two" // warning!!
  // and even
  case one, two = "two" // warning!!
}


Batch Updating of Constraints

In this post I want to be sure to show the alternative, mention a Swift bug that might bite you and what is perhaps a more pragmatic reason to prefer the batch approach.

I hope Apple modify a kind of tricky bug.


Swift Style Guide Updated for Swift 3

Here at raywenderlich.com, we want to have a consistent style for you in our tutorials, books, videos, and conference materials. We believe it improves readability, and makes our content easier and quicker to understand. Our style guide helps us accomplish this. This update resolves dozens of issues and enhancements from the community since our last update in April. Let’s look at some of the highlights in this latest update.

@rayfix updated Swift Style Guide for Swift3.0. I totally agree with this style except for indent using 2 spaces.


Emoji 4.0

While many of the new emoji, such as fox face 🦊 and avocado 🥑, are indeed just plain old emoji consisting of a single code point, others are so-called emoji ZWJ sequences, formed by multiple code points. These primarily encompass new gendered emoji for professions, such as firefighter 👩‍🚒👨‍🚒, farmer 👩‍🌾👨‍🌾, and the “David Bowie memorial” singer emoji 👩‍🎤👨‍🎤.

Apple introduced new emojis from iOS10.2 and macOS 10.12.2. I was able to learn a lot of things from emojis.


Yelling NotificationCenter.post(name:object:) in a crowded theatre

A completely uncoupled architecture just isn’t realistic.

We can create an intermediate object that exists in between the model and the view that coordinates the changes. The model yells out something has happened, the intermediate object knows what that means, and informs the view.

He took calling an ambulance as an example. He applied the coordinator pattern for Notification like a NotificationCoordinator.



Slide

HubFramework ‘s tutorial by Youtube.

Hub Framework Sessions is a series of videos aimed at giving developers a quick introduction to some of the concepts of the framework.

This is the Spotify’s component-driven UI framework for iOS https://spotify.github.io/HubFramework.


Localization is hard

Tailoring apps to users from over 150 countries with different languages, cultures and formatting rules is hard and often overlooked by developers. Roy takes us on a journey around the world in search of the strange and wonderful, uncovering many tools provided by iOS to make global users feel at home.

If you work on localization, you should check it.



Github

koher/ListK

Simple lazy lists for Swift

brianmichel/Juice

Make your battery information a bit more interesting.



Random

Stroustrup’s Rule and Layering Over Time

Programming language experts like to claim that syntax doesn’t matter, that semantics is all that counts. Don’t believe them! They’re overrotating on a common, pre-rigorous misunderstanding of language design as superficially aesthetic. The study of semantics does provide deep insights into the mechanics of languages—but the mechanism is not the mental model. Design requires engaging with the way people express their programs, and syntax is a “tool of thought”.


Solve Problems, not Strawmen

Applying solutions within a vacuum – for example, reading about VPNs and then deciding to implement one for your team, without having a strong driving impetus – has a few downsides. Skipping the problem statement makes it difficult to measure whether the solution works or how to iterate on it. It also runs the risk of decreasing team happiness when solutions are not tethered to reality.


Mastering Programming

From years of watching master programmers, I have observed certain common patterns in their workflows. From years of coaching skilled journeyman programmers, I have observed the absence of those patterns. I have seen what a difference introducing the patterns can make.

Kent Beck’s post in Facebook!


Your Git Log Should Tell A Story

Writing informative commits goes hand in hand with making your commits small and atomic, and knowing how to perform an interactive rebase can help a lot to keep the history tidy. We will look at these topics in the upcoming posts, so stay tuned.

I write a story also for the sake of my own.


One Sure-Fire Way to Improve Your Coding

If you want to dramatically increase your programming skills you need to be reading other people’s code.


Who will I work with?

My preferred is “who will I work with?”. Nobody has been able to clearly answer it in my case. Some replies I got were:

That’s an interesting question for me. I’ll try to ask if I have a chance.



Podcast

182 iPS Swift Style with Erica Sadun

I always look forward to listening their picks!


#58: Prerelease Testing

How we test our apps before release.

They talked about how they test their application. This talk looks useful especially for indie developers.


Episode 263: The Writing-off-December Club

Daniel asks Manton for the latest on his Micro.blog Kickstarter plans, discuss the merits of waiting to ship until after the holidays, and the discipline that waiting requires. They go on to talk about macOS 10.12.2 and the challenges that even minor OS updates can bring when maintaining existing apps.



If you have any questions and feedbacks about a kind of new Swifty week, feel free to ask me :+1: You can catch me on Twitter and Github.

Have a lovely week <3