This profile

  • Topic: Typora open charge mode, support!
  • Add enumeration macros to Objective-C to improve the mashup experience.
  • Interview module: Event delivery and response chain.
  • Good blogs: Several good blogs about the Swift string.
  • Learning materials: Independent developer experience sharing.
  • Development tools: Siyuan Notes, a locally-first personal knowledge management system, supports fine-grained block-level references and Markdown WYSIWYG.

This topic

Zhangferry: Typora, the famous Markdown editing software, has recently ushered in the latest version 1.0 (official version). There are no major changes in this update, but the biggest change is that it is now paid instead of free.

Github Issus explains this earlier:

Typora is a minimal markdown editor, providing new ways for reading and writing markdown. It is currently in beta. Typora is commercial software (not open source), but is free during beta. Typora on GitHub supports collaboration between its developer, and its user community, providing a place to transparently report issues, collect feedback and discuss future direction. It also provides open source resources for user customization of themes.

Typora has always had a good reputation, ranking first in all kinds of Markdown software recommendations. I am also a heavy user of Typora. With the help of Typora’s exquisite single-column Settings, Orangheart theme and PicGo graphic bed plug-in, it is very easy to output and type every article on our official account.

Faced with this transition from free to paid, there are a lot of articles on the Internet saying that Typora should be abandoned, and a lot of alternatives are recommended, but few people say that we should support developers, which is a bit regrettable.

Typora’s fee: 89 yuan (alipay), buyout (life), up to three devices (replaceable). That’s a good price compared to many products with annual renewals that cost hundreds of dollars, and Typora has been free for six years.

In terms of payment itself, good software should generate revenue. With revenue, authors can focus more on designing and developing products, and better products can bring more convenience to us, and ultimately feed back to users themselves. This is a positive cycle. The pure power of love can last, but certainly not for long. So if you feel good about it and you like it, support it.

At the same time, I also understand that not all of you are heavy users of Typora. I have saved the version before charging (V0.11.18). If you install the latest version accidentally and still want to prostitute, you can reply to Typora in the background of the official account and download the old version.

Let’s take Typora as another example. It was founded in 2014 by Abner Lee, a Chinese, who is very low-key. All I can find is an article he wrote in Medium in 2015 introducing Why he designed Typora: Introduce Typora — Why Another Markdown Editor. The analysis of Markdown’s tools at the time is accurate, especially with regard to the problems with the mainstream two-column design. A good product is able to find and solve pain points. Abner Lee innovatively used single-column design to make Markdown editing simple and efficient. After this, more and more Markdown tools began to use single-column editing mode, which changed the design specification of a software.

It’s been seven years now, so it’s a responsible attitude to spend seven years polishing a product before you pay for it. Typora has already attracted a large number of users, I am one of the loyal fans, hope it will be better and better in the next phase!

The development of Tips

Edit: Xiao Haiteng of Normal University

Add enumeration macros to Objective-C to improve the mix experience

  • NS_ENUM. Used to declare a simple enumeration that will act asenumImport to Swift. It is recommended to modify objective-C simple enumerations declared in other ways to useNS_ENUMTo be better used in Swift.
  • NS_CLOSED_ENUM. Simple enumerations (” frozen enumerations “for short) used to declare that enumerators do not change, such as NSComparisonResult, will act as@frozen enumImport to Swift. Freezing enumerations provides performance gains at the cost of reduced flexibility.
  • NS_OPTIONS. Used to declare an option enumeration that will act asstructImport to Swift.
  • NS_TYPED_ENUM. Used to declare a type constant enumeration that will be used asstructImport to Swift. Greatly improves the way Objective-C type constants are used in Swift.
  • NS_TYPED_EXTENSIBLE_ENUM. Used to declare an extensible enumeration of type constants. withNS_TYPED_ENUMThe difference is generativestructThere is a constructor that ignores parameter labels.
  • NS_STRING_ENUM / NS_EXTENSIBLE_STRING_ENUM. Used to declare a string constant enumeration. deprecated, useNS_TYPED_ENUM / NS_TYPED_EXTENSIBLE_ENUMAlternative. In Xcode 13, Apple has already used the originalNS_EXTENSIBLE_STRING_ENUMDeclared constant types such as NSNotificationName are changed to useNS_TYPED_EXTENSIBLE_ENUMTo declare.

Check it out:

  • Add enumeration macros for Objective-C to improve the mixing experience
  • @Apple: Grouping Related Objective-C Constants

Parsing the interview

Edit: Xiao Haiteng of Normal University

Event delivery and response chains

If you still don’t have a good grasp of the iOS event delivery and response chain, I recommend you to read these articles edited by @mim0sa and @coderstar as well as the Apple documentation, I believe you will be able to win in the interview.

  • @ Mim0sa: iOS | events and response chain
  • @ Mim0sa: iOS | response chain and gesture recognition
  • CoderStar: Event response in iOS
  • @apple: Event Handling Guide for iOS
  • Event Handling Guide for iOS

Good blog

Finishing edit: Dongpo elbow son, I am big bear

Swift string performance issues — from: JerryChu

@Dongpotozi: The author of this paper encountered the timeout situation of Swift String traversal when dealing with a LeetCode algorithm problem. By analyzing the differences between Array traversal mechanism and String traversal mechanism, he finally obtained a method to optimize String traversal efficiency.

2. Why are Swift strings so hard to use? — From Nuggets: Si Niang

Swift requires multiple string operations that can be solved in a single statement in other languages, but these are all intentional by Swift. This article gives developers some of the design ideas behind Swift strings through a presentation of the SE-0265 offset-based Access to Indices, Elements, and Slices proposal.

WWDC 2021 New Formatter API: Comparison of old and new and how to customize

In Swift, developers can convert many commonly used types of data to formatable strings by using Formatter. With WWDC 2021, Apple introduced a new Formatter API written using Swift. This article gives you another perspective on the design mechanism of the new Formatter API by showing you how to create a Formatter that conforms to the new API. The new and old apis are compared.

Swift regular expression complete tutorial — from nuggets: SunshineBrother

How to use regular expressions in Swift is described in detail in this article, which should be used when manipulating strings.

5. SwiftString — from: GitHub

GitHub Star 1.6K + SwiftString is a lightweight string extension that is rich and powerful.

Learning materials

Mimosa

Independent developer experience sharing

Address: github.com/loonggg/Dev…

Full-time indie developers are a group of relatively free developers, but behind the freedom, there is also the anxiety of making no money and no one to use the product. In this warehouse, you can see a lot of experience of domestic and foreign indie developers to make money.

Tools recommended

CoderStar

Si yuan notes

Address: github.com/siyuan-note…

Software status: Open source, free

Software Introduction:

Siyuan Notes is a locally-first personal knowledge management system that supports fine-grained block-level references and Markdown WYSIWYG.

About us

IOS Fish weekly, mainly share the experience and lessons encountered in the development process, high-quality blog, high-quality learning materials, practical development tools, etc. The weekly warehouse is here: github.com/zhangferry/… If you have a good content recommendation, you can submit it through the way of issue. You can also apply to be our resident editor to maintain the weekly. Also can pay attention to the public number: iOS growth road, backstage click into the group communication, contact us, get more content.

Phase to recommend

IOS Fishing Weekly 35th issue

IOS Fishing Weekly 34th issue

IOS Fishing Weekly 33rd issue

IOS Fishing Weekly Thirty-second issue