54,302 blogs · [ { "id": "01a0df1a-50c5-7247-9adf-d751ed5f3460", "title": "Emerge Tools is joining Sentry", "url": "https://www.emergetools.com/blog/posts/emerge-tools-is-joining-sentry", "published_at": "2025-05-06T13:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751ed7e6a14", "title": "Emerge's Bits and Bytes: April 2025", "url": "https://www.emergetools.com/newsletter/april-2025", "published_at": "2025-04-30T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751ee399f78", "title": "Emerge's Bits and Bytes: March 2025", "url": "https://www.emergetools.com/newsletter/march-2025", "published_at": "2025-03-31T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751eea1d4da", "title": "Emerge's Bits and Bytes: February 2025", "url": "https://www.emergetools.com/newsletter/february-2025", "published_at": "2025-02-28T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751ef491a4b", "title": "The Emerge CLI", "url": "https://www.emergetools.com/blog/posts/the-emerge-cli", "published_at": "2025-02-06T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751ef88226f", "title": "Emerge's Bits and Bytes: January 2025", "url": "https://www.emergetools.com/newsletter/january-2025", "published_at": "2025-01-31T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751efa58797", "title": "Emerge's Bits and Bytes: December 2024", "url": "https://www.emergetools.com/newsletter/december-2024", "published_at": "2024-12-20T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f059cf02", "title": "Bring Your Own Snapshots", "url": "https://www.emergetools.com/blog/posts/bring-your-own-snapshots", "published_at": "2024-12-16T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f0b25ed3", "title": "OpenAI on Mobile Development, Previews, & Snapshot Testing", "url": "https://www.emergetools.com/blog/posts/openai-on-mobile-development-previews-and-snapshot-testing", "published_at": "2024-12-10T19:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f16d2938", "title": "Enhance Xcode Previews with Unit Test Coverage", "url": "https://www.emergetools.com/blog/posts/unit-test-xcode-previews", "published_at": "2024-12-05T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f1b6596a", "title": "Emerge's Bits and Bytes: November 2024", "url": "https://www.emergetools.com/newsletter/november-2024", "published_at": "2024-11-26T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f292b8aa", "title": "Calling Hidden Swift Functions", "url": "https://www.emergetools.com/blog/posts/calling-hidden-swift-functions", "published_at": "2024-11-25T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f2b3f687", "title": "Emerge's Bits and Bytes: October 2024", "url": "https://www.emergetools.com/newsletter/october-2024", "published_at": "2024-10-31T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f35a836f", "title": "Preview Driven Development", "url": "https://www.emergetools.com/blog/posts/preview-driven-development", "published_at": "2024-10-30T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f3883b8b", "title": "Deep Dive: Proton VPN", "url": "https://www.emergetools.com/deep-dives/proton-vpn", "published_at": "2024-10-24T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f435d7d2", "title": "Are Android apps THAT much smaller than iOS?", "url": "https://www.emergetools.com/blog/posts/are-android-apps-really-that-much-smaller-than-ios", "published_at": "2024-10-10T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f4e8d944", "title": "Emerge's Bits and Bytes: September 2024", "url": "https://www.emergetools.com/newsletter/september-2024", "published_at": "2024-09-30T17:15:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f5800b70", "title": "The Memory Leak: An Xcode Detective Story", "url": "https://www.emergetools.com/blog/posts/the-memory-leak-an-xcode-detective-story", "published_at": "2024-09-11T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f66ae919", "title": "Emerge Tools Joins the Open Source Pledge", "url": "https://www.emergetools.com/blog/posts/emerge-joining-open-source-pledge", "published_at": "2024-09-06T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f6f5bc14", "title": "Dogfooding Emerge Tools: Open-sourcing an Android Hacker News App", "url": "https://www.emergetools.com/blog/posts/announcing-emerge-tools-hackernews-app", "published_at": "2024-09-04T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f7dc01b8", "title": "Emerge's Bits and Bytes: August 2024", "url": "https://www.emergetools.com/newsletter/august-2024", "published_at": "2024-08-30T19:15:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f830056d", "title": "Deep Dive: Apollo", "url": "https://www.emergetools.com/deep-dives/apollo", "published_at": "2024-08-16T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f83d8e3c", "title": "Emerge's Bits and Bytes: July 2024", "url": "https://www.emergetools.com/newsletter/july-2024", "published_at": "2024-07-31T15:45:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f84a397a", "title": "Async await in Swift: The Full Toolkit", "url": "https://www.emergetools.com/blog/posts/swift-async-await-the-full-toolkit", "published_at": "2024-07-22T16:25:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f913f098", "title": "Emerge's Bits and Bytes: June 2024", "url": "https://www.emergetools.com/newsletter/june-2024", "published_at": "2024-06-27T20:45:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751f9df71a2", "title": "SwiftData vs Realm: Performance Comparison", "url": "https://www.emergetools.com/blog/posts/make-your-ios-app-smaller-with-dynamic-frameworks", "published_at": "2024-06-20T17:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fa20551f", "title": "Emerge's Bits and Bytes: May 2024", "url": "https://www.emergetools.com/newsletter/may-2024", "published_at": "2024-05-30T19:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fa2ba910", "title": "Deep Dive: Rabbit R1", "url": "https://www.emergetools.com/deep-dives/rabbit-r1", "published_at": "2024-05-02T21:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fa971b20", "title": "Emerge's Bits and Bytes: April 2024", "url": "https://www.emergetools.com/newsletter/april-2024", "published_at": "2024-04-30T16:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fafb466d", "title": "Emerge's Bits and Bytes: March 2024", "url": "https://www.emergetools.com/newsletter/march-2024", "published_at": "2024-03-28T19:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fb0d5f63", "title": "App Deep Dive: General Motors", "url": "https://www.emergetools.com/deep-dives/general-motors", "published_at": "2024-03-04T20:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fb9111da", "title": "Emerge's Bits and Bytes: February 2024", "url": "https://www.emergetools.com/newsletter/february-2024", "published_at": "2024-02-29T19:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fc26eb28", "title": "How to use VariadicView, SwiftUI's private View API", "url": "https://www.emergetools.com/blog/posts/how-to-use-variadic-view", "published_at": "2024-02-26T20:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fc3e5bbf", "title": "App Deep Dive: Twitter vs. X", "url": "https://www.emergetools.com/deep-dives/twitter-vs-x", "published_at": "2024-02-22T17:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fc9056cb", "title": "Emerge's Bits and Bytes: January 2024", "url": "https://www.emergetools.com/newsletter/january-2024", "published_at": "2024-01-26T20:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fca2bbad", "title": "App Deep Dive: AllTrails", "url": "https://www.emergetools.com/deep-dives/alltrails", "published_at": "2024-01-24T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fcf3a1a1", "title": "App Deep Dive: Acorns", "url": "https://www.emergetools.com/deep-dives/acorns", "published_at": "2024-01-03T17:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fd0ce223", "title": "Emerge's Bits and Bytes: December 2023", "url": "https://www.emergetools.com/newsletter/december-2023", "published_at": "2023-12-22T17:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fd5b2944", "title": "Symbolicating SwiftUI (and any Apple Framework), Part 2", "url": "https://www.emergetools.com/blog/posts/symbolicating-swiftui-and-any-apple-framework-part-2", "published_at": "2023-12-12T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fded4983", "title": "Emerge's Bits and Bytes: November 2023", "url": "https://www.emergetools.com/newsletter/november-2023", "published_at": "2023-11-16T20:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fe8b0d7e", "title": "Mobile Glossary: Swift Protocols", "url": "https://www.emergetools.com/glossary/swift-protocols", "published_at": "2023-10-24T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751ff7b0f81", "title": "Emerge's Bits and Bytes: October 2023", "url": "https://www.emergetools.com/newsletter/october-2023", "published_at": "2023-10-12T19:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d752004334d6", "title": "Comparing the Performance of the Top 6 Analytics SDKs for iOS", "url": "https://www.emergetools.com/newsletter/september-2023", "published_at": "2023-10-04T16:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75201398c88", "title": "Symbolicating SwiftUI (and any Apple Framework)", "url": "https://www.emergetools.com/blog/posts/symbolicating-swiftui-and-any-apple-framework", "published_at": "2023-09-07T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75201499010", "title": "Mobile Glossary: fastlane", "url": "https://www.emergetools.com/glossary/fastlane", "published_at": "2023-09-06T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75201c5b1fc", "title": "App Deep Dive: Peacock", "url": "https://www.emergetools.com/deep-dives/peacock", "published_at": "2023-08-17T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75201d690f7", "title": "Dead Code Detection With Reaper", "url": "https://www.emergetools.com/blog/posts/dead-code-detection-with-reaper", "published_at": "2023-08-10T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75201da2b98", "title": "App Deep Dive: Candy Crush Saga", "url": "https://www.emergetools.com/deep-dives/candy-crush-saga", "published_at": "2023-07-17T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d752025d209b", "title": "App Deep Dive: Threads", "url": "https://www.emergetools.com/deep-dives/threads", "published_at": "2023-07-10T15:30:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d752032e877d", "title": "Moving ETTrace from CocoaPods to Swift Package Manager", "url": "https://www.emergetools.com/blog/posts/moving-from-cocoapods-to-swift-package-manager", "published_at": "2023-06-28T11:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d752036b96df", "title": "ETTrace: Reliable iOS Profiling With Flame Charts", "url": "https://www.emergetools.com/blog/posts/ettrace-reliable-ios-profiling-with-flamecharts", "published_at": "2023-04-27T11:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d751fc3e3269", "title": "Mobile Glossary: App Thinning", "url": "https://www.emergetools.com/glossary/app-thinning", "published_at": "2023-02-23T17:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d752040e4b28", "title": "announcing-android-performance-testing", "url": "https://www.emergetools.com/blog/posts/announcing-android-performance-testing", "published_at": "2023-02-01T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75204cc7109", "title": "Mobile Glossary: Split APKs", "url": "https://www.emergetools.com/glossary/split-apks", "published_at": "2023-01-31T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520541bcc5", "title": "Mobile Glossary: UI Automator", "url": "https://www.emergetools.com/glossary/ui-automator", "published_at": "2023-01-31T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75205b6c56a", "title": "How To Speed Up Swift By Ordering Conformances", "url": "https://www.emergetools.com/blog/posts/how-order-files-speed-up-protocols", "published_at": "2023-01-25T11:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520668a002", "title": "Mobile Glossary: Dynamic Frameworks", "url": "https://www.emergetools.com/glossary/dynamic-frameworks", "published_at": "2023-01-24T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75206dc348e", "title": "Mobile Glossary: Static Frameworks", "url": "https://www.emergetools.com/glossary/static-frameworks", "published_at": "2023-01-24T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75206fb0efe", "title": "Mobile Glossary: dyld", "url": "https://www.emergetools.com/glossary/dyld", "published_at": "2023-01-11T15:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75207949ed3", "title": "Static vs Dynamic Frameworks on iOS — a discussion with ChatGPT", "url": "https://www.emergetools.com/blog/posts/static-vs-dynamic-frameworks-ios-discussion-chat-gpt", "published_at": "2022-12-14T13:27:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520858bfef", "title": "How Xcode 14 unintentionally increases app size", "url": "https://www.emergetools.com/blog/posts/how-xcode14-unintentionally-increases-app-size", "published_at": "2022-11-10T05:31:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75208992f58", "title": "How 5 iOS apps could improve their startup time by an average of 28%", "url": "https://www.emergetools.com/blog/posts/improve-popular-iOS-app-startup-times", "published_at": "2022-09-14T03:31:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75208d448de", "title": "How iOS 16 makes your app launch faster", "url": "https://www.emergetools.com/blog/posts/iOS16LaunchTime", "published_at": "2022-07-06T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75208fc2731", "title": "Code Injection with Dyld Interposing", "url": "https://www.emergetools.com/blog/posts/DyldInterposing", "published_at": "2022-05-24T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d75209c3b95e", "title": "How Order Files Reduce App Startup Time", "url": "https://www.emergetools.com/blog/posts/FasterAppStartupOrderFiles", "published_at": "2022-01-27T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520aa004bb", "title": "The Cost of a Byte", "url": "https://www.emergetools.com/blog/posts/CostOfAByte", "published_at": "2022-01-06T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520b7dbdc3", "title": "The Surprising Cost of Protocol Conformances in Swift", "url": "https://www.emergetools.com/blog/posts/SwiftProtocolConformance", "published_at": "2021-12-01T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520b8da928", "title": "How iOS 15 makes your app launch faster", "url": "https://www.emergetools.com/blog/posts/iOS15LaunchTime", "published_at": "2021-06-23T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520c19b457", "title": "Why Swift Reference Types Are Bad for App Startup Time", "url": "https://www.emergetools.com/blog/posts/SwiftReferenceTypes", "published_at": "2021-03-04T00:00:00+00:00" }, { "id": "01a0df1a-50c5-7247-9adf-d7520cfe5025", "title": "How 7 iOS Apps Could Save You 500MB of Storage", "url": "https://www.emergetools.com/blog/posts/7AppsThatCouldSaveYou500MB", "published_at": "2021-01-14T00:00:00+00:00" } ] posts Claim your blog
Back to emergetools.com
Blog · corpus.blog/blogs/emergetools.com/posts

emergetools.com

emergetools.com

2025

2024

2023

2022

2021