Skip to content

mhays118/tech-resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Overview

Useful Resources that I have found for development.

Section Description
Development Machine Tips for setting-up a better development environment
Processes Resources for better ways of working
iOS iOS development specific resources

Development Machine

CLI

Taking the time to setup and customize the terminal can save a lot of time and make working in the terminal a lot more enjoyable.

zsh

I highly recommend moving to zsh instead of bash. The completions are much better and it is can be easily customized. This is a great getting started article: You’re Missing Out on a Better Mac Terminal Experience

dotfiles

Setting up a dotfiles repository also makes moving between computers a lot more seemless.

Quick Look

Using a mac, the default quick look isn't great. There are plugins that can make this a lot better, as detailed in this repo.

TLDR: run this command to have a better quick loook experience:

brew cask install qlcolorcode qlstephen qlmarkdown quicklook-json qlimagesize suspicious-package quicklookase qlvideo

Processes

Versioning

Semantic Versioning is the best way to manage versions. It is widely used, understood, and makes version numbers meaningful by having them reflect real work done in the codebase.

It is also possible to automatically generate them if a codebase standardizes on how commit messages are written via something like Conventional Commits. This allows both version numbers and a changelog to be automatically generated. See:

Using Conventional Commits can also be enforced via a commit linter, such as commitlint . This can run on both the build server and on developers local machines via git hooks through Husky. The changelog can then be generated with each new build via conventional-changelog.

iOS

Get Release size of Framework

  1. Build framework in app by archiving the app targeting a device (in this case, I was testing GRDB).
  2. Open IPA and locate the framework file, copy it out.
  3. Run:
$ xcrun bitcode_strip -r GRDB.framework/GRDB -o GRDB.nobitcode
$ lipo -thin arm64 GRDB.nobitcode -o GRDB.arm64

Methodology copied from what Realm is doing. See:

realm/realm-swift#2581

realm/realm-swift#4785 (comment)

CLI

A few useful aliases to add to your .bash_profile or .zshrc (I find it useful to make a .aliases that they both import)

Clear Derived Data

Xcode builds can occasionally screw up due to old build information laying around in derived data. A shortcut to clearing it is:

alias ddd="rm -rf ~/Library/Developer/Xcode/DerivedData"

Kill Xcode

When switching between branches where the .xcodeproj file has changed a lot, xcode will occassionally throw up a lot of annoying dialogs asking if you want the one on disk or in memory, and you'll need to restart xcode anyways. This is easy command to call before switching between problemmatic branches (also useful to add to Automator).

alias killxcode="killall Xcode || true"

Reset Pods Integration

Cocoapods can have a pretty complicated setup and occassionally things go wrong. If you think there is a pod state problem, it is often easier to deintegrate and reset up the Cocoapods. This will do everything in one line.

alias nukepods="killall Xcode || true; rm -rf ~/Library/Caches/CocoaPods; rm -rf Pods; rm -rf ~/Library/Developer/Xcode/DerivedData/*; pod deintegrate; pod setup; pod install;"

About

Useful Resources for development

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published