hoangatuan / ios-developer-tools

Tools that every iOS developer should know.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Contents

Website

  • stackoverflow Stack Overflow is a question and answer site for professional and enthusiast programmers.
  • Apple Developer Forums The Apple Developer Forums are a great place to post questions and share comments with fellow developers and Apple engineers.
  • objc.io objc.io publishes books, videos, and articles on advanced techniques for iOS and macOS development.
  • nshipster NSHipster is a journal of the overlooked bits in Objective-C, Swift, and Cocoa. Updated weekly.
  • raywenderlich Learn iOS development in Swift.
  • medium Stories and technical tips about building apps for iOS, Apple Watch, and iPad/iPhone
  • Best-websites-a-programmer-should-visit 🔗 Some useful websites for programmers.
  • quicktype Parse JSON in swift

Apple

IDE

  • Xcode you will spend most of your time with it
  • Atom + Nuclide If you need to write react-native Code
  • MacDown open source Markdown editor for macOS
  • Visual Studio Code Visual Studio Code is a source code editor. It includes support for debugging, embedded Git control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
  • starUML A sophisticated software modeler for agile and concise modeling

Dependency Manager

  • CocoaPods dependency manager for Swift and Objective-C Cocoa projects
  • Carthage A simple, decentralized dependency manager for Cocoa
  • Accio A dependency manager driven by SwiftPM that works for iOS/tvOS/watchOS/macOS projects.

Platform

  • Firebase Firebase is a BaaS  (Backend-as-a-Service) that can be your server, datastore, and API at the same time.
    • Crashlytics Spend less time troubleshooting & more time building great apps.
  • Parse Build applications faster with object and file storage, user authentication, push notifications, dashboard and more out of the box.

Command Line Tool

  • xcodebuild and - xcrun command line tool to build and archive app
  • xctool An extension for Apple's xcodebuild that makes it easier to test iOS and macOS apps.
  • idb idb is a flexible command line interface for automating iOS simulators and devices
  • xcbuild xcbuild is an Xcode-compatible build tool with the goal of providing faster builds, better documentation of the build process and running on multiple platforms (macOS, Linux, and Windows)
  • synx A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
  • Kin Simple PBXProj Verifier (If you has problem to git merge the project.pbxproj file)
  • tmux tmux is a "terminal multiplexer", it enables a number of terminals (or windows) to be accessed and controlled from a single terminal.
  • iTerm2 iTerm2 is a replacement for Terminal and the successor to iTerm. It works on Macs with macOS 10.10 or newer. iTerm2 brings the terminal into the modern age with features you never knew you always wanted.
  • oh-my-zsh A delightful community-driven (with 1,300+ contributors) framework for managing your zsh configuration.
  • xcpretty Flexible and fast xcodebuild formatter
  • Jazzy Soulful docs for Swift & Objective-C
  • xiblint A tool for linting storyboard and xib files
  • brew 🍺 The missing package manager for macOS
  • cloc cloc counts blank lines, comment lines, and physical lines of source code in many programming languages.
  • xcproj Command line tool for manipulating Xcode project files
  • autojump A cd command that learns - easily navigate directories from the command line
  • SwiftFormat A code library and command-line formatting tool for reformatting Swift code
  • SwiftRewriter 📝 Swift code formatter using SwiftSyntax.
  • objdump llvm object file dumper
  • XcodeGen A Swift command line tool for generating your Xcode project
  • plutil plutil is a program that can convert .plist files between a binary version and an XML version. Currently, there are two versions of this utility.
  • dsymutil dsymutil links the DWARF debug information found in the object files for an executable executable by using debug symbols information contained in its symbol table.
  • symboliccrash Symbolicating crash reports
  • swift-argument-parser Open-source library that makes it straightforward to parse command-line arguments in Swift

DEBUG

  • Instruments Instruments is a powerful and flexible performance-analysis and testing tool that’s part of the Xcode tool set.
    • gtm_load_timer A framework and instrument for timing Objective C +load messages.
    • speedscope Flame graphs of Time Profiler
  • DBDebugToolkit Set of easy to use debugging tools for iOS developers & QA engineers.
  • Flipper Flipper is a platform for debugging mobile apps on iOS and Android. Visualize, inspect, and control your apps from a simple desktop interface. Use Flipper as is or extend it using the plugin API.
  • chisel Chisel is a collection of LLDB commands to assist debugging iOS apps.
  • CocoaLumberjack A fast & simple, yet powerful & flexible logging framework for Mac and iOS
  • PonyDebuggerRemote network and data debugging for your native iOS app using Chrome Developer Tools
  • dSYMTools Analyze crash log with DSYM file
  • Hexspeak Table about exception code in crash log
  • FLEX An in-app debugging and exploration tool for iOS
  • MTHawkeye Profiling / Debugging assist tools for iOS.
  • GodEye Automaticly display Log,Crash,Network,ANR,Leak,CPU,RAM,FPS,NetFlow,Folder and etc with one line of code based on Swift. Just like God opened his eyes
  • injectionforxcode Injection for Xcode is an Xcode plugin (available via Alcatraz) or AppCode that dynamically inserts new Swift / Objective-C code into a running app in order to speed up your build process
  • WBWebViewConsole In-App debug console for your UIWebView & WKWebView
  • ios-webkit-debug-proxy A DevTools proxy (Chrome Remote Debugging Protocol) for iOS devices (Safari Remote Web Inspector).
  • spy-debugger WebView,WeChat WebView,Safari Debugger
  • AppleTrace Objective C message tracing tool for iOS/macOS
  • iOS Console iOS Console allows you to view iOS console logs directly from your Mac
  • iSimulator iSimulator is a GUI utility to control the Simulator, and manage the app installed on the simulator.
  • DoraemonKit A full-featured App (iOS & Android) development assistant.
  • NWPusher OS X and iOS application and framework to play with the Apple Push Notification service (APNs)
  • Knuff The debug application for Apple Push Notification Service (APNs).
  • matrix Matrix is a plugin style, non-invasive APM system developed by WeChat.
  • Hexspeak termination code detail in crash log
  • PLCrashReporter Reliable, open-source crash reporting for iOS and Mac OS X.
  • KSCrash The Ultimate iOS Crash Reporter
  • InAppViewDebugger A UIView debugger (like Reveal or Xcode) that can be embedded in an app for on-device view debugging
  • Hyperion In-app design review tool to inspect measurements, attributes, and animations.
  • LookinServer Free macOS app for iOS view debugging
  • LayoutInspector Tool to debug layouts directly on iOS devices: inspect layers in 3D and debug each visible view attributes
  • XCLogParser Tool to parse the SLF serialization format used by Xcode and xcodebuild to store its Build and Test logs (xcactivitylog).
  • beyond compare Compare files and folders using simple, powerful commands that focus on the differences you're interested in and ignore those you're not. Merge changes, synchronize files, and generate reports.
  • restore-symbol A reverse engineering tool to restore stripped symbol table for iOS app.

Memory

  • FBRetainCycleDetector iOS library to help detecting retain cycles in runtime.
  • FBMemoryProfiler iOS tool that helps with profiling iOS Memory usage.
  • FBAllocationTracker iOS library that helps tracking all allocated Objective-C objects
  • OOMDetector OOMDetector is a memory monitoring component for iOS which provides you with OOM monitoring, memory allocation monitoring, memory leak detection and other functions.
  • LifetimeTracker Find retain cycles / memory leaks sooner

Project Analyze

  • oclint Static code analysis tool for improving quality and reducing defects by inspecting C, C++ and Objective-C code and looking for potential problems.
  • swiftlint A tool to enforce Swift style and conventions.
  • objc-dependency-visualizer Objective-C and Swift dependency visualizer. It's tool that helps to visualize current state of your project. It's really easy to see how tight your classes are coupled.
  • LSUnusedResources A Mac App to find unused images and resources in XCode project.
  • WHC_ScanUnreferenceImageTool Scanning project does not use images in tool, delete without reference images to reduce the packaging volume
  • FengNiao A command line tool for cleaning unused resources in Xcode.
  • IBAnalyzer Find common xib and storyboard-related problems without running your app or writing unit tests.
  • Simian Similarity Analyser
  • cartool Export images from OS X / iOS .car CoreUI archives
  • XcodeZombieCode A source-code level/Clang Approach
  • Faux Pas Find errors in your iOS or Mac project(Not free)
  • xcodeproj 📝 Read, update and write your Xcode projects https://tuist.github.io/xcodeproj/
  • objc_dep Graph the import dependencies in an Objective-C project
  • AssetCatalogTinkerer An app that lets you open .car files and browse/extract their images.
  • periphery Eliminate Unused Swift Code.
  • fui Find unused Objective-C imports.
  • objc_cover Quick Python script over otool to help spotting potentially unused methods in Objective-C Mach-O executable files
  • Pecker A tool to detect unused Swift code based on IndexStoreDB and SwiftSyntax.

Network

  • Charles Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet.
  • Proxyman Proxyman 👨‍🚀 is a high-performance macOS app, which enables developers to view HTTP/HTTPS requests from apps and domains. Support iOS Simulator and iOS devices. Easy to use and user friendly.
  • Postman Faster, easier API development
  • iperf iperf3: A TCP, UDP, and SCTP network bandwidth measurement tool
  • Lantern Lantern delivers fast access to the open Internet
  • shadowsocks A secure socks5 proxy,designed to protect your Internet traffic.
  • wireshark Wireshark is the world’s foremost and widely-used network protocol analyzer. It lets you see what’s happening on your network at a microscopic level and is the de facto (and often de jure) standard across many commercial and non-profit enterprises, government agencies, and educational institutions.
  • netfox A lightweight, one line setup, iOS / OSX network debugging library! 🦊
  • GCDWebServer GCDWebServer is a modern and lightweight GCD based HTTP 1.1 server designed to be embedded in iOS, macOS & tvOS apps.
  • JSONLint JSONLint is a validator and reformatter for JSON, a lightweight data-interchange format
  • Wormholy iOS network debugging
  • Bagel a little native network debugging tool for iOS
  • Debookee Debookee is a simple and powerful network traffic analyzer for macOS.

Data

  • sqlitebrowser DB Browser for SQLite
  • TablePlus Modern, native GUI client for SQLite
  • SimPholders Access all applications from your menu bar,and quick open Sandbox of Simulator
  • SimSim Fast, stable, free alternative to SimPholders
  • SQLCipher SQLCipher is an SQLite extension that provides 256 bit AES encryption of database files

Compiler

  • bazel A fast, scalable, multi-language and extensible build system
    • PodToBUILD An easy way to build CocoaPods with Bazel by Pinterest
  • XCMetrics XCMetrics is the easiest way to collect Xcode builds metrics and improve your developer productivity.
  • ccache ccache is a compiler cache. It speeds up recompilation by caching previous compilations and detecting when the same compilation is being done again
  • swiff Human readable time diffs on lines of output when running e.g. build commands like fastlane
  • ClangKit ClangKit provides an Objective-C frontend to LibClang. Source tokenization, diagnostics and fix-its are actually implemented.
  • Optimizing-Swift-Build-Times Collection of advice on optimizing compile times of Swift projects.
  • Ninja Ninja is a small build system with a focus on speed
  • emscripten An LLVM-to-JavaScript Compiler
  • antlr4 ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. http://antlr.org
  • BuildTimeAnalyzer-for-Xcode Build Time Analyzer for Swift
  • SourceKitten An adorable little framework and command line tool for interacting with SourceKit.
  • zld A faster version of Apple's linker
  • xcconfigs Common Xcode configuration files/settings.

Test

  • TestFlight TestFlight makes it easy to invite users to test your apps and collect valuable feedback before releasing your apps on the App Store.
  • appium Appium is an open source test automation framework for use with native, hybrid and mobile web apps. It drives iOS, Android, and Windows apps using the WebDriver protocol.
  • FBSnapshotTestCase Snapshot view unit tests for iOS
  • Kiwi Simple BDD for iOS
  • Quick The Swift (and Objective-C) testing framework.
  • OCMock Mock objects for Objective-C
  • KIF Keep It Functional - An iOS Functional Testing Framework
  • Specta A light-weight TDD / BDD framework for Objective-C.
  • EarlGrey 🍵 iOS UI Automation Test Framework
  • SwiftMonkey A framework for doing randomised UI testing of iOS apps
  • swift-snapshot-testing 📸 Delightful Swift snapshot testing
  • XcodeCoverage Code coverage for Xcode projects (Objective-C only)
  • ios-deploy Install and debug iPhone apps from the command line, without using Xcode
  • libimobiledevice A cross-platform protocol library to communicate with iOS devices
  • usbmuxd A socket daemon to multiplex connections from and to iOS devices
  • ios-snapshot-test-case Snapshot view unit tests for iOS

Localization

  • Localazy - Developer-friendly localization tool for iOS and macOS apps supporting .strings, .stringsdict, .plist and XLIFF files.
  • Loca Studio Analyze, review, and edit your app translations. Can directly open the Xcode Localization Catalog (xcloc) and XLIFF 1.2 file formats.

Reverse engineering

  • IPSW Download current and previous versions of Apple's iOS Firmware and receive notifications when new firmwares are released.
  • canijailbreak jailbreak tools
  • ios-app-signer This is an app for OS X that can (re)sign apps and bundle them into ipa files that are ready to be installed on an iOS device.
  • MonkeyDev CaptainHook Tweak、Logos Tweak and Command-line Tool、Patch iOS Apps, Without Jailbreak.
  • class dump a command-line utility for examining the Objective-C runtime information stored in Mach-O files
  • Keychain-DumperA tool to check which keychain items are available to an attacker once an iOS device has been jailbroken
  • reveal Reveal brings powerful runtime view debugging to iOS developers
  • theos Unified cross-platform Makefile system
  • iPhoneDevWiki Wiki about jailbroken iOS development
  • Hopper Disassembler Reverse engineering tool that lets you disassemble, decompile and debug your applications.
  • MachOView View the raw data of mach-o(iOS executable file format)
  • ruby-macho 🔩 A pure-Ruby library for parsing Mach-O files.
  • frida Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers.
  • cycript Cycript allows developers to explore and modify running applications on either iOS or Mac OS X using a hybrid of Objective-C++ and JavaScript syntax through an interactive console that features syntax highlighting and tab completion.
  • dumpdecrypted Dumps decrypted mach-o files from encrypted iPhone applications from memory to disk. This tool is necessary for security researchers to be able to look under the hood of encryption.
  • passionfruit Simple iOS app blackbox assessment tool. Powered by frida.re and vuejs.
  • objection Assess mobile applications and their security posture without the need for a jailbroken or rooted mobile device.
  • Hikari LLVM Obfuscator https://keybase.io/team/hikari
  • Clutch Fast iOS executable dumper
  • otool The otool command displays specified parts of object files or libraries. It can also disassemble:
  • xxd xxd creates a hex dump of a given file or standard input. It can also convert a hex dump back to its original binary form
  • nm nm is a utility that displays the symbol table of a given binary.
  • jtool The jtool command is meant to meet and exceed the functionality to XCode's otool(1), picking up along the way additional Mach-O commands such as atos(1), dyldinfo(1), nm(1), segedit(1), pagestuff(1), strings(1) , and even codesign(1) and the informal ldid.
  • capstone Capstone disassembly/disassembler framework
  • class-dump-swift Swift Class Dumper
  • iosre Chinese reverse engineering bbs
  • Retriever Retrieving InfoPlist without Jailbreaking on iOS Devices
  • iOS-Runtime-Headers iOS Objective-C headers as derived from runtime introspection
  • http://developer.limneos.net Website to browse iOS runtime headers
  • iReSign iReSign allows iDevice app bundles (.ipa) files to be signed or resigned with a digital certificate from Apple for distribution.
  • MachO-Kit A C/Objective-C library for parsing Mach-O files.
  • insert_dylib Command line utility for inserting a dylib load command into a Mach-O binary
  • yololib dylib injector for mach-o binaries
  • dyld-shared-cache-big-sur Modifications to Apple's dyld project to fix Objective-C information when extracting dyld_shared_cache from macOS Big Sur to help Hopper generate readable pseudocode.
  • dyld_cache_extract A macOS utility to extract dynamic libraries from the dyld_shared_cache of macOS and iOS
  • app2dylib A reverse engineering tool to convert iOS app to dylib
  • apple configuration2 Download ipa file from App Store
  • iphonecake.com Cracked iOS & Mac App Store
  • optool optool is a tool which interfaces with MachO binaries in order to insert/remove load commands, strip code signatures, resign, and remove aslr. Below is its help.
  • Macholib macholib can be used to analyze and edit Mach-O headers, the executable format used by Mac OS X.
  • fishhook A library that enables dynamically rebinding symbols in Mach-O binaries running on iOS. You can use fishhook to hook C function.
  • iOS-System-Symbols Share iOS system framework's symbol files. Useful for symbolicating iOS crash report.
  • Synalyze It Synalyze It! allows you to create a “grammar“ for your binary files interactively. Unlike in regular hex editors or viewers the files are interpreted automatically for you! Analysis of binary files has never been easier.

App Guard

  • ios-class-guard Simple Objective-C obfuscator for Mach-O executables
  • obfuscator obfuscator
  • Obfuscator-iOS Secure your app by obfuscating all the hard-coded security-sensitive strings.
  • swiftshield Swift Obfuscator that protects iOS apps against reverse engineering attacks.
  • MachObfuscator MachObfuscator is a programming-language-agnostic Mach-O apps obfuscator for Apple platforms.

Image

Chrome

Other

  • Graphviz Gaphviz is open source graph visualization software. Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks.
  • UTM Virtual machines for iOS
  • Alfred Alfred is an award-winning app for macOS which boosts your efficiency with hotkeys, keywords, text expansion and more.
  • Bear Bear is a beautiful, flexible writing app for crafting notes and prose.
  • Jenkins Continuous integration (CI)
  • GitLabCI CI in gitlab
  • danger Formalize your Pull Request etiquette.
  • fastlane Automate building and releasing your iOS and Android apps
  • appledoc Objective-C API documentation generator
  • Source Tree Harness the power of Git and Hg in a beautifully simple application
  • gitkraken The legendary Git GUI client for Windows, Mac and Linux
  • PaintCode Turn drawings into code.
  • reflector wireless mirroring and streaming receiver
  • Sketch Sketch gives you the power, flexibility and speed you always wanted in a lightweight and easy-to-use package. Finally you can focus on what you do best: Design.
  • Haiku Design components that snap into any codebase
  • Sketch Sketch gives you the power, flexibility and speed you always wanted in a lightweight and easy-to-use package. Finally you can focus on what you do best: Design.
  • Dribbble Dribbble is the leading destination to find & showcase creative work and home to the world's best design professionals
  • gif brewery Easy to create GIF
  • jazzy Soulful docs for Swift & Objective-C
  • lottie-ios An iOS library to natively render After Effects vector animations
  • public-apis A collective list of public JSON APIs。
  • Smartmockups Free product mockup generator
  • flaticon 1,695,000 vector icons grouped in 35,450 packs
  • Semaphore CI for iOS Semaphore is the fastest way to test and deploy iOS apps.
  • ios app maximum memory budget ios app maximum memory budget
  • draw.io draw.io is free online diagram software for making flowcharts, process diagrams, org charts, UML, ER and network diagrams.
  • PushMate PushMate is a MacOS app that solves common push notification problems by ensuring your push payloads are correct.
  • emojipedia Wiki of emoji
  • XcodeCleaner Cleaner for Xcode.app built with react-native-macos
  • SkrybaMD - Markdown Documentation generator. If your team need easy way to maintain and create documentation, this generator is for you.
  • Swiftify - Objective-C to Swift Converter
  • Storyboard -> SwiftUI Converter - Storyboard / Xib to SwiftUI converter
  • Xcode Projects - Open quickly your Xcode projects and very handy for cocoapods. Do pod install and pod update in 2 clicks
  • XCOrganizer - Fast and easy Xcode projects search. Supports Xcode Projects, Workspaces, Playgrounds, Swift Packages

About

Tools that every iOS developer should know.


Languages

Language:Swift 100.0%