Author Archives: Tang

About Tang

A mobile developer, work in Stockholm, Sweden

SwiftUI: State, StateObject, ObservedObject, ObservableObject

State A property wrapper type that can read and write a value managed by SwiftUI. SwiftUI manages the storage of any property you declare as a state. When the state value changes, the view invalidates its appearance and recomputes the … Continue reading

Posted in iOS | Tagged | Leave a comment

How to delete an App from command line

1. List all simulators Find out all simulators xcrun simctl list Find out active simulator xcrun simctl list | grep Booted You will get the result like: $ xcrun simctl list |grep Booted iPhone 11 (AE8852AB-378E-47FB-BD23-4CF77BFBC6DC) (Booted) Now you can … Continue reading

Posted in iOS | Tagged | Leave a comment

Combine Asynchronous Programming

1 Combine basics Combine is a declarative, reactive framework for processing asynchronous events over time. It aims to solve existing problems, like unifying tools for asynchronous programming, dealing with mutable state and making error handling a starting team player. Combine … Continue reading

Posted in iOS, Mobile | Tagged | Leave a comment

Configure Visual Studio Code for Swift development

1. Build sourcekit-lsp $ git clone $ swift package update $ swift build  The sourcekit-lsp will be here: /Users/zhihuitang/repo/common/sourcekit-lsp/.build/x86_64-apple-macosx/debug/sourcekit-lsp 2. Configure sourcekit-lsp In the sourcekit-lsp settings, set the Language Server Mode to sourcekit-lsp  Set Server Path: … Continue reading

Posted in iOS | Tagged | Leave a comment


Adding the codefunction to .zshrc file: function code { if [[ $# = 0 ]] then open -a "Visual Studio Code" else local argPath="$1" [[ $1 = /* ]] && argPath="$1" || argPath="$PWD/${1#./}" open -a "Visual Studio Code" "$argPath" fi … Continue reading

Posted in Mac | Tagged , | Leave a comment

MongoDB on Mac

1.What’s MongoDB? MongoDB is a document database which belongs to a family of databases called NoSQL – not only SQL. In MongoDB, records are documents which behave a lot like JSON objects in JavaScript. Values in documents can be looked … Continue reading

Posted in Mobile | Tagged | Leave a comment

Python3 Virtualenv Setup

Install python3 brew install python3 Pip3 is installed with Python3 Upgrade virtualenv To install virtualenv via pip run: pip install –upgrade virtualenv Create virtualenv virtualenv -p python3 python3-venv Activate the virtualenv source python3-venv/bin/activate Deactivate the virtualenv deactivate

Posted in Mobile | Tagged | Leave a comment

LLDB you should know

LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler. LLDB is the default debugger … Continue reading

Posted in iOS | Tagged , , | Leave a comment

Xcode instruments

 The two columns worth noting in Instruments are # Persistent and # Transient. The Persistent column keeps a count of the number of objects of each type that currently exist in memory. The Transient column shows the number of … Continue reading

Posted in iOS, Mobile | Tagged | Leave a comment

Git tips

How do I discard changes in my working copy that are not in the index? git stash save –keep-index –include-untracked You don't need to include –include-untracked if you don't want to be thorough about it. or drop the stash git … Continue reading

Posted in git | Tagged | Leave a comment