Author Archives: Tang

About Tang

A mobile developer, work in Stockholm, Sweden

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

Views vs. layers

A layer is a simple model class that exposes a number of properties to represents some image-based content. Every UIView is backed by a layer, so you can think of layers as the lower-level behind the scenes class behind your … Continue reading

Posted in iOS, Mobile | Tagged | Leave a comment

Xcode tips and ticks

Faster Testing When using TDD you can work more quickly by running a subset of tests – press ⌃⌥⌘G to re-run only your last test, or ⌘-click several tests to run only them. Opening Xcode If you’re in a folder … Continue reading

Posted in iOS, Mobile | Tagged | Leave a comment

gitsubree usage

Basic commands about subtree git subtree add –prefix=<prefix> <commit> git subtree add –prefix=<prefix> <repository> <ref> git subtree pull –prefix=<prefix> <repository> <ref> git subtree push –prefix=<prefix> <repository> <ref> git subtree merge –prefix=<prefix> <commit> git subtree split –prefix=<prefix> [OPTIONS] [<commit>] 1. Add … Continue reading

Posted in git | Tagged | Leave a comment

CommentPlus for Swift Func

Usage reference: Download the Xcode extension from here Unzip and double click the extension to install the extension In Xcode, put the cursor on the upper line of func, then select Xcode menu bar: Editor -> CommentGenerator -> … Continue reading

Posted in iOS, Mac | Tagged | Leave a comment

Charles Proxy in Android

1. SSL Proxy/Charles + Android trouble 2. Enable SSL Proxy for Nougat+ Update your AndroidManifest.xml application section with networkSecurityConfig.xml <application android:name=”AppName” android:icon=”@mipmap/ic_launcher” android:label=”@string/app_name” android:networkSecurityConfig=”@xml/network_security_config”> Add network_security_config.xml file to your xml resource folder app/src/main/res/xml/network_security_config.xml <?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config> <trust-anchors> … Continue reading

Posted in Android | Tagged | 2 Comments

Intermediate iOS Debugging

1. Stop when exception 1.1 Open Breakpoint navigator (Cmd + 8) 1.2 Add Exception Breakpoint  1.3 Keep default values  1.4 Move breakpoint to User level  2. Edit breakpoint Edit Breakpoint  Add Debugger Command:  We will … Continue reading

Posted in iOS, Mobile | Tagged | Leave a comment

Auto Layout

let view = UIView() view.translatesAutoresizingMaskIntoConstraints = false Interface Builder will automatically set its value to false if the view has constraints defined. But for the views created in code, it defaults to true. UIView has a property called auto resizing … Continue reading

Posted in iOS | Tagged | Leave a comment

Key-Value Observing

Key-value observing is a mechanism that allows objects to be notified of changes to specified properties of other objects. You can use key-value observing with a Swift class, as long as the class inherits from the NSObject class. You can … Continue reading

Posted in iOS, Mobile | Tagged | 1 Comment

How to upload an App with universal framework to AppStore?

Cocoapods is a popular dependencies management tool for iOS development. We notice that in Cocoapods-v1.3, the framework MUST include simulator (x86_64, i386) architectures, otherwise the pod spec lint will fail and the pod cannot be uploaded to Cocoapods server. It … Continue reading

Posted in iOS, Mobile | Tagged | 2 Comments