Skip to content

Instantly share code, notes, and snippets.

@mdb1
Last active July 1, 2022 15:07
Show Gist options
  • Save mdb1/0eb077f984b937fd170aad822e36be57 to your computer and use it in GitHub Desktop.
Save mdb1/0eb077f984b937fd170aad822e36be57 to your computer and use it in GitHub Desktop.

Books

A Best-In-Class iOS App

Design and UX

10 Figma Tricks I Wish I Knew Earlier: Some cool tricks to fasten up Figma workflow.

5 tips to create a modern app UI: Great tips to instantly improve the look and feel of any app.

Don’t fix EVERYTHING at once: Introduces the idea of improving a maximum of 3 things at a time.

Name Your Colors: A fun article with resources to give great names to colors.

Git

Polish Your PRs 💅 + Rev Up Your Reviews 🚗: Some tips and tricks on how to improve the PR process.

Leadership/Management

WHEN TO DELEGATE, WHEN TO SAY NO: The Eisenhower 2x2 Matrix to the rescue!

This Is What Happens When There Are Too Many Meetings: Research from Microsoft on how work has changed since the pandemic.

Meetings That Work for Both Managers and Makers: Organizations need both makers and managers, and in fact, more and more leaders are operating as a hybrid, dedicating at least a portion of their week to creating rather than just managing. Wise leaders don’t let the need for information sharing and oversight block the productivity of their most critical resources. Instead, they look for ways to support them.

How to disagree: The greatest benefit of disagreeing well is not just that it will make conversations better, but that it will make the people who have them happier.

Remote work is just work: The CEO of GitLab thoughts on remote work.

Trade-Offs in Decision Making: 1) Be clear about the outcome we want to achieve. 2) Identify the trade-offs between the potential options. 3) Communicate the decision to get buy-in.

Product/Productivity

Maybe you should do less 'work’: Great take on productivity inside a company.

The Problem With Note-Taking: Introduces the paradox of trading the present moment for future utility.

How To Do Less: Default to saying no to everything that is not the main priority.

How I Slack: Useful Slack keyboard shortcuts.

Overthinking: Stop trying to connect all the dots ahead of time. Embrace uncertainty and start doing.

Random

The Great Switch: distributed work first: A lot of data on how work is changing worldwide.

Readability: The Optimal Line Length: Having the right amount of characters on each line is key to the readability of your text. 50 to 75 characters per line seems like the correct amount.

Huge 4-Day Work Week Experiment Begins in The UK: "What we've seen is a massive increase in engagement and staff satisfaction about the work they do, a massive increase in staff intention to continue to work with the company, and we've seen no drop in productivity”.

Staying Positive: The great thing about working in tech is that there are always new problems to solve, new markets to create, new products to ship. The macro events don’t change that. So focus yourself and your team on building and shipping those things, get some wins, and move forward with optimism and positive energy. It will be infectious.

Technical - iOS

Architecture

Favor composition over inheritance: Simple article explains the differences between composition and inheritance.

Project LightSpeed: Rewriting the Messenger codebase for a faster, smaller, and simpler messaging app.

Continuous code inspection with SwiftLint for iOS Apps: SwiftLint is open-source tool, which enforce developers to have strict code styles and guidelines. SwiftLint is simpler and easy to setup and completely free to use in swift project.

3 Different Techniques to Find Memory Leaks in iOS: Instruments, Symbolic breakpoints and unit tests to find memory leaks in your code!

CI and Distribution

Developing fast & reliable iOS builds at Pinterest: Great tips from Pinterest to scale apps.

Reducing iOS Build Times by using Interface Modules: Must read before modularizing a big app.

App thinning, Bitcode, Slicing: tutorial (iOS app): Explains the difference between app thinning, bitcode, and slicing.

Reducing Your App’s Size: Apple docs on binary sizes.

Networking

Quick guide on Charles Proxy for iOS development: Nice introduction to Charles.

How to handle API Changes with #available: Explains how to use #available.

Other

The Golden Rules of weak self: 1. Only use a strong self for non-@escaping closures (ideally, omit it & trust the compiler). 2. Use weak self if you’re not sure. 3. Upgrade self to a strongly-retained self at the top of your closure.

Swift

Logging in Swift: Using the built-in Logger system to log messages.

Understanding the 5 SOLID Principles Using Swift: Great examples.

Push Notifications Tutorial: Getting Started: Detailed guide to set up push notifications.

What’s new in Swift 5.6?: Deep dive into the new features added in Swift 5.6.

Swift Keywords: A thorough list explaining every Swift keyword.

Hot Reloading in Swift: A 3rd party tool that allows hot reloading in Swift!

Use SwiftUI with UIKit: WWDC Video explaining how easy it is to use SwiftUI within an UIKit app.

Meet WeatherKit AND Swift Charts: Intro article displaying weather-info using Swift Charts.

Testing

Testing Remote Push Notification in iOS simulator: Simple way to manually test push notifications in the simulator.

Integration tests in Swift: Practical examples of the difference between unit tests and integration tests.

How to test push notifications with UI tests: Step by step guide to test push notifications using UI Tests (requires a physical device).

Camin & Bigagnoli - Two years of UI Testing: 20 minute video that explains the pros and cons of UI tests.

The Pyramid of Unit Testing Benefits: Five benefits of unit testing.

iOS: Test Pyramid: LinkedIn testing strategy on iOS, using unit tests, layout tests, and scenario tests.

Introducing Page Object Pattern in iOS: Introduction to a pattern that I like a lot for UI tests.

Robot Pattern Testing for XCUITest: Pretty similar to the PageObject pattern.

AB TESTING MOBILE APPS - IOS: Interesting thoughts on how to apply AB Testing in an organization. From product idea to post-production.

UI and UX

How to use adaptive width strings for localization on iOS: Clever way of using Apple APIs for adaptive width strings.

Using the New KeyboardLayoutGuide API to move UITextField when the keyboard appears on iOS: Great intro article to the keyboardLayoutGuide.

SwiftUI Lessons - iOS Conf SG 2022: Great lessons to see before diving into SwiftUI.

Smooth iOS Animations: Netflix talk on how to improve animations.

Using Min-Mid-Max Principles for iOS Design: Defining your 3 sizes, and testing different dynamic type sizes for each to catch design errors early.

How to configure UIKit bottom sheet with custom size: Shows how to configure the height of the sheets on iOS 16.

Xcode

Adding Custom Shortcuts To Xcode: Easy way to bring back the Slow Animations shortcut.

Instruments Tutorial with Swift: Getting Started: In depth guide to the most useful Instruments on Xcode.

Introduction to Xcode Frame Debug: Step by step process for debugging UIs.

Creating your own file template in Xcode: Explains how to create Xcode templates for commonly used files.

Technical - Programming in general

What is Kotlin Multiplatform Mobile (KMM)?: Share the logic of your iOS and Android apps while keeping the UX native.

LibSlack: The C++ Library at the Foundation of Slack’s Client Application Architecture.

Error Monitoring at Zynga: From Development to Production: Identify issues in production, Manage error prioritization, and Monitor and verify error fixes.

CCSM: Scalable statistical anomaly detection to resolve app crashes faster: Facebook over-engineered tool to detect bugs faster.

5 tips to Learn Flutter Like a Pro: 5 tips to learn any language/framework better.

The Tao of Go: An extract from For the Love of Go, a kind, simple, and (somewhat) humble introduction to learning Go without striving.

Rapid release at a massive scale: Facebook explains their release process for web and mobile.

Lyft’s PM: Make the Pain of Mobile Releases a Thing of the Past: Golden advice from Lyft on how to create faster mobile cycles.

Iteration over “Perfection”: Another article talking about the benefits of tightening the release cycle.

Uber mobility - Build & Release: Tools for building and releasing mobile applications provided by Google and Apple are geared towards smaller mobile application development teams.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment