Learning D3.js

 |  7 minute read

D3.js is a popular and powerful data visualisation js framework which helps developers and business stakeholders to visualise and demonstrate ideas via representing big chuncks of data. Compare to other tools, it provides the following advantages:

  1. popular and well-known: it contains lots of resources and tutorials make the learning process relatively easy.

  2. flexibility: the framework itself comes with greate flexibility from low level components like shapes, scales, animations to high-level from gadgets.

  3. renowned for animation and interaction, animations can be a powerful device for storytelling.

Example of embededd D3.js cells

Read more...

iOS testflight release via fastlane automation

 |  1 minute read

Original content in 2021: (deprecated)

A summary for testflight release process via fastlane, for a project which enabled bitcode, the DSYM file needs to be generated via applestore, hence there will be a asynchronous timing interval in between the uploading the archive to apple store and sync the dsym file from apple store and the crash monitoring service.

Update from 2026:

Now the DSYM files can be directly generated locally without the need to download from App Store Connect.

Read more...

Installing WSL

 |  2 minute read

Recently I built up a new personal PC via scratch, since the primary operation system has been chosen to be windows since the PC needs to be used by all family members. I have tried to install and configured the WSL(windows subsystem for linux) to make it friendly to me so I can still use those tools and commandline scripts in my linux environment. Here are some tips and tricks I learned in order to make it work properly.

Macbook

Read more...

RxSwift Study Notes

 |  2 minute read

Due to two of my recent projects heavily used RxSwift framework and the popularity of the framework in the community, I decided to spend my spare time in the weekend to have a thorough study on the project itself. As the name implies, the RxSwift framework is the swift implementation of the famous ReactiveX API standard. It is purely event driven and follows functional programming paradigm, serving as an excellent glue layer in common architectural design patterns like MVVM.

This article is the summary of core data structures of RxSwift and how the core models work together in an event subscription chain.

Read more...

About OpenAPI 3.0

 |  1 minute read

OpenAPI 3.0 standard aka OAS, currently provides a close loop API lifecycle from design, prototyping, implementation, testing to deployment (here the deployment process mainly refers to deploying the artifacts to the maven repository).

The core components provided by Swagger includes:

  • SwaggerHub: remote API console deployed on the backend to help the team and partner understand and try your API.
  • Swagger Editor & Swagger UI: open sourced API editor and a interactive UI tool to visualize OpenAPI specification.
  • Swagger Codegen: Generating server stubs and client APIs, with mock functionality supported.
Read more...

iOS Container Views Cheatsheet

 |  7 minute read

Almost in every technical stacks, there are widgets that focusing on providing layout priciples in organising multiple views. In Android, there are ViewGroup models which contains other views. In Html5 and CSS, the display keywords defines the possible display behaviour of an element, the flex, block, grid, table are the container types with which the elements can further organize other inline type elements. In iOS, based on the documents regarding to UIKit, there are container views and container view controllers takes such responsibilities. In this document, a cheatsheet is produced to record all the core methods for each of the container view/view controllers to help reduce the effort for browsing documents when we need to develop any of those widgets.

Macbook

Read more...