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 🧱

 |  6 minute read

OCMock is one of the well known representative 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 thoroughly 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...

Retrofit Source Code Reading

 |  6 minute read

Retrofit is a well known network util framework which allows the developer to declare the HTTP APIs via JAVA interfaces. This article takes a close look at Retrofit source code and explain how it works. Before we start the code study, let’s take a look at use cases provided by the library:

  • Declaration of HTTP api interface via Java interface class
    • support declaration of http request method
    • support declaration of url path and dynamic variables in path
    • support declaration of http bodies/query map/multi-form
    • support customisation of http headers
  • Support invocation of sync and async calls
Read more...

Android UnitTest Technique Summary

 |  6 minute read

The concept of unit and ui automation testing is referred from android jetpack unit testing. By comparing the list of popular Android testing frameworks from awesome-android-testing, the following testing frameworks are shortlisted and recommended to be adopted in the current Android workspace: Roboletric/Mockito/Truth. The following framework has been experimented with existing unit tests. A further breakdown of core capabilities provided each of the frameworks and the role they played in the whole picture.

Read more...

iOS V.S. Android (Language Characters)

 |  7 minute read

After a long journey in iOS native stack development, my recent incoming projects will be leaning back to Android side again (previously before I started working on iOS in recent years, I’ve been working on Android for around 3 years). After a roughly going through the contents in google’s official Android developer portal, it is a very instinctive thing for a developer with a similar background like me to come out the idea of making a comparison on the two platforms.

By having a systematically comparison of the two platform, one can understand clearly about the difference and similarities of the two and hence, become easier to memorize and handle the development techniques on both of them.

Since the knowledge map of Android and iOS developement contains a long list of topics, which might include for example: OS Characters, Language, Architecture Components, Engineering Tools & Automations, Challenges and Advantages, and etc. When I was writing this article, I was planning to have several post as a series to cover this. In this post, I would like to start with the comparison from the language aspect.

Read more...