Bitkit iOS (Native)
January 30, 2026 · View on GitHub
About
This repository contains the native iOS app for Bitkit.
How to build
- Open Bitkit.xcodeproj in XCode
- Build
Network Configuration
The app automatically selects the network based on the build configuration:
- Debug builds → Uses Regtest network (for local development and testing)
- Release builds → Uses Bitcoin Mainnet network (for production)
Building for E2E tests
To produce an E2E build (uses the local Electrum backend by default), pass the E2E_BUILD compilation flag:
xcodebuild -workspace Bitkit.xcodeproj/project.xcworkspace \
-scheme Bitkit \
-configuration Debug \
SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) E2E_BUILD' \
build
You can also set the backend/network at build time via Info.plist substitutions:
# Use network Electrum with regtest
E2E_BACKEND=network E2E_NETWORK=regtest \
xcodebuild -workspace Bitkit.xcodeproj/project.xcworkspace \
-scheme Bitkit \
-configuration Debug \
SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) E2E_BUILD' \
build
# Use network Electrum with mainnet
E2E_BACKEND=network E2E_NETWORK=bitcoin \
xcodebuild -workspace Bitkit.xcodeproj/project.xcworkspace \
-scheme Bitkit \
-configuration Debug \
SWIFT_ACTIVE_COMPILATION_CONDITIONS='$(inherited) E2E_BUILD' \
build
Localization
Pulling Translations
To pull the latest translations from Transifex:
-
Install Transifex CLI (if not already installed):
- Follow the installation instructions: Transifex CLI Installation
-
Authenticate with Transifex (if not already configured):
- Create a
.transifexrcfile in your home directory (~/.transifexrc) with your API token:[https://www.transifex.com] rest_hostname = https://rest.api.transifex.com token = YOUR_API_TOKEN_HERE - You can get your API token from your Transifex account settings
- The CLI will prompt you for an API token if one is not configured
- Create a
-
Pull translations:
./scripts/pull-translations.sh
Validating Translations
This checks for missing translations and validates that all translation keys used in the Swift code exist in the .strings files. (This check is also automated in GitHub Actions)
node scripts/validate-translations.js
Development
Formatting
This project uses SwiftFormat for code formatting. Configuration is in .swiftformat.
Install SwiftFormat:
brew install swiftformat
IDE Extensions:
Format code:
swiftformat .
Git Hooks
The project includes git hooks to automatically check code formatting before commits.
Set up git hooks:
- Install git-format-staged:
npm install -g git-format-staged - Run:
./scripts/setup-hooks.sh
This installs a pre-commit hook that lints Swift files with SwiftFormat.
Xcode Previews
Due to the Rust dependencies in the project, Xcode previews are only compatible with iOS 17 and below.
Contributing
AI Code Review with Claude
This repository has Claude Code integrated for on-demand AI assistance on issues and pull requests.
How to Use
Mention @claude in any PR comment, issue, or review to trigger Claude:
| Command | Description |
|---|---|
@claude review | Request a code review of the PR |
@claude /review | Same as above (slash command) |
@claude review focus on security | Review with specific focus |
@claude explain this change | Ask questions about the code |
@claude fix the null pointer issue | Request Claude to implement a fix |
@claude /help | Show available commands |
Notes
- Claude follows the project guidelines defined in
CLAUDE.md - Automatic reviews run on every PR open and push (updates same comment)
- On-demand assistance via
@claudementions in comments/issues - Claude can read CI results to provide context-aware feedback
- For implementation requests, Claude will create commits on your branch
Example
@claude review
Please focus on:
- SwiftUI idioms and best practices
- @Observable patterns and memory management (retain cycles)
- Thread safety with async/await and actors
License
This project is licensed under the MIT License. See the LICENSE file for more details.