Bow {🏹️} Swift

 |  22 minute read

🌈 Briefing of my tour in Bow: a functional programming library for swift. The project provides comprehensive implementation of functional programming concepts like kind, monad, applicative as well as common function programming techniques such as partial application, curry, memoizations.

📖 For people who want to learn systematic knowledge on functional programming, I do feel this project can be used as a swift version language guide book.

❓ To study the framework: Firstly the bow’s core compnent are throughly analysed, where common syntaxes, typical higher-kinded-types and patterns for functional programming are implemented using Swift. Then an example in nef is explored to see how the above framework is applied in real project. 👼

Read more...

Support Apple Silicon Architecture

 |  2 minute read

🦄️ Finally, in Xcode 14.3 it is no longer supporting rosetta mode. For all the preivous temprary configuration which can work under rosetta mode no it no longer works in the coming version of Xcode.

Read more...

iOS AOP Techniques

 |  9 minute read

Aspect Ortiented Programming is one of the popular topic in past years, as the promoters claims this technique effectively mitigates the challenges co-exists with modern Objective Oriented Programming -> entanglement & dispersion.

  • Entanglement: happens when a business module implements cross-cutting concerns which involves multiple use cases. For example a module involves providing both network as well as logging capabilities. Making the module less focusable on its original design intentions.
  • Dispersion: happens when the calls to the above modules spread through out the entire application.

Now via adopting the AOP concept, the execution code no longer requires the developer to attentionally inserting the interface call of the modules into the code body. Instead, by declaring the suitable insertion point, the relevant aspecs interface invocation is "weaved" into the code execution. Some of the core concepts are listed below:

Read more...

Explore MiniProgram Container

 |  10 minute read

This article elaborates the overall architecture of a miniprogram container which is commonly seen in super apps like Alipay/WeChat. The overall architecture of a miniprogram container can be summarised into the following component diagram:

Read more...

Asynchronous Events Handling Cheatsheet

 |  7 minute read

image

Previously RxSwift/RxJava are commonly recognized as the industry standard regarding to reactive programming. But in recent year, both Android and iOS officially promoted their own aynchrinous event library, namely coroutine and combine. Since all those libraries are handling asynchronous events and following the same patterns, it will be very easy to confuse with the details with the same terminology on different frameworks.

So I am trying to workout a cheatsheet to compare the similarities and differences between these frameworks. [WIP, I am still polishing on this document to add coroutine in and add more references and examples].

Read more...

Underneath OCMock 🧱

 |  5 minute read

OCMock is one of the well known representitive frameworks which can demonstrate the powerfulness of the Objective-C runtime. Recently I was working on choosing a suitable testing frameworks for iOS projects, so I took the chance to throughly read through its source code.

Read more...

iOS V.S. Android (Engineering Tools & Techniques)

 |  4 minute read

In the previous article, the comparison of language characters between Android & iOS is made. In this article, let’s compare the two tech stacks from the aspect of Engineering Tools & Techniques. We will go to compare the two platforms from:

  1. Core Techniques
  2. Deliverable Standards
  3. Popular Tools

The word Engineering here refers to the process of build/test/optimise deliverables such as App/SDK and optionally provide dynamic fixes for those deliverable already running under production environment.

Read more...