Hax
Read Hacker News on your iPhone, iPad, and Apple Watch, with features such as widgets and dark mode.
Install / Use
/learn @lui5fl/HaxREADME
Hax
Hax is a Hacker News client for iPhone, iPad, and Apple Watch that aims to provide a native browsing experience that improves upon the website while keeping a similar minimalistic appearance. The app is built from the ground up using SwiftUI and adopts many iOS features including widgets, Apple Intelligence, controls, Safari extensions, and more.
Motivation
I've been reading Hacker News for many years now. It's a great way to keep up with the latest news from the tech world and I always learn something new every time I go on there.
Back in 2018 I created the predecessor to Hax with the purpose of learning iOS development, though I never got around to publishing it on the App Store. Four years passed and it still worked, barring a few bugs, though its codebase had become quite stale...
I wanted to publish my first app on the App Store, but not just any app. I wanted the scope of the app to be large enough so that:
- it can eventually become a full-fledged app, and
- it allows me to try out many of the latest technologies from Apple that launch every year.
Therefore, without much consideration, I decided to remake my old Hacker News app on SwiftUI!
Technologies
- AppIntents
- FoundationModels (Apple Intelligence)
- StoreKit
- Swift Concurrency
- Swift Testing
- SwiftData
- SwiftUI
- UIKit
- WatchConnectivity
- WidgetKit
Architecture
The app follows the MVVM pattern, ensuring a clear separation of model and view code, which simplifies writing unit tests for the model code. All REST API requests are handled by the HackerNewsService class, which uses a local Swift package, Networking, that encapsulates the networking logic. Both fully take advantage of the Swift Concurrency APIs.
Roadmap
Instead of outlining any upcoming features here, I'll create issues for any feature or fix that I plan on implementing. You can check out the latest issues here. You're more than welcome to create an issue to propose a feature or report a bug.
I also invite you to take a look at the Projects tab, since I'll definitely use this feature for prioritizing issues.
License
Released under GPL-3.0 license. See LICENSE for details.
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
