Edhita: Open‑Source iOS SwiftUI Text Editor for Developers
Explore Edhita, the fully open‑source text editor for iOS built with SwiftUI. Learn its core features, how it integrates AdMob and privacy policies, and why it’s an ideal starter project for Swift developers. The article walks through setting up the repo, building the app in Xcode, and customizing the editor for personal use. Whether you’re a seasoned iOS engineer or just beginning, discover how Edhita’s modern codebase, clean UI, and active community can boost your learning curve and empower your own editor projects.
What Is Edhita?
Edhita is a fully open‑source text editor specifically built for iOS devices using SwiftUI. The project lives on GitHub at tnantoka/edhita and is released under the MIT license, making it free for personal and commercial use.
Why It Matters for Developers
- Modern UI – SwiftUI delivers a declarative, reusable interface that feels native on iOS.
- Clean Architecture – The codebase is split across separate modules (Models, Views, Controllers), ideal for learning modular Swift design.
- AdMob & Privacy – The app already includes AdMob integration (privacy‑compliant), so you can see how to embed third‑party services in a SwiftUI project.
- Cross‑Platform Inspiration – An Android counterpart, DotText, shows how cross‑technology sharing is possible – a nice point of discussion for a blog post.
Quick Start Guide
- Clone the Repo
git clone https://github.com/tnantoka/edhita.git cd edhita - Open the Project – Double‑click
Edhita.xcodeprojin Xcode or runopen Edhita.xcodeprojfrom the terminal. - Build and Run – Choose an iOS simulator (iPhone 15 Pro, iPhone SE, etc.) and press Run. The editor launches ready for testing.
- Modify the Constants – Files such as
Constants.swifthold configuration for AdMob IDs and UI layout values. Feel free to customize paths, theme colors, or the title. - Build the App for the App Store – Use Xcode’s archive workflow, then submit via App Store Connect.
If you’re unfamiliar with SwiftUI’s @State and @Binding, the source provides plenty of inline comments. It’s a great playground for learning how SwiftUI handles dynamic text, file operations, and sharing.
Core Features Highlight
| Feature | Description |
|---|---|
| Rich Text Editing | Supports plain text input, line‑break recognition, and basic formatting via keyboard shortcuts. |
| File I/O | Open, save, overwrite, and export documents in any format; the app uses FileManager under the hood. |
| Sharing | A share sheet is invoked when you hit the share button – works on iPhone and iPad. |
| AdMob | When your app goes live, AdMob will be displayed. Privacy policy compliance is built in, with a toggle in Constants.swift. |
| Localization | Uses a localizable string file for Japanese and English, making the editor language‑agnostic. |
Extending the Project
Because Edhita is open‑source, you can add features in a few steps:
- Create a Feature Branch – Keep your changes isolated.
- Add a New Swift Module – For example, a Markdown parser or syntax highlighter.
- Publish the Update – If you plan to distribute on the App Store, make sure you follow Apple’s review guidelines for new frameworks.
- Send a Pull Request – The Edhita maintainers are active and welcoming contributions.
Community and Support
The repository has 1.4k stars and 249 forks, suggesting a healthy base of interested developers. You can:
- Ask questions in the Issues tab.
- View existing issues for bug reports or feature requests.
- Browse the code, pull your own changes, and submit a pull request.
Verdict
Edhita stands out as a compact, well‑structured example of a complete iOS editor. It is a perfect “starter kit” for SwiftUI enthusiasts looking to explore text handling, file system integration, and advertising in a real‑world app. Its open‑source nature invites collaboration, making it a community‑driven project that can grow alongside its user base.
Whether you want to contribute, use it as a template for a new app, or simply study a robust SwiftUI architecture, Edhita deserves a place on your GitHub radar.