|
1 | | -# androidircx |
| 1 | +# AndroidIRCx Flutter |
2 | 2 |
|
3 | | -A new Flutter project. |
| 3 | +Flutter rewrite of AndroidIRCx, focused on preserving behavior, features, and UX parity with the |
| 4 | +existing React Native application. |
4 | 5 |
|
5 | | -## Getting Started |
| 6 | +## Current Status |
6 | 7 |
|
7 | | -This project is a starting point for a Flutter application. |
| 8 | +This repository is an active rewrite in progress. |
8 | 9 |
|
9 | | -A few resources to get you started if this is your first Flutter project: |
| 10 | +Implemented in the current Flutter app: |
10 | 11 |
|
11 | | -- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter) |
12 | | -- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) |
13 | | -- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources) |
| 12 | +- network list and add/edit flow |
| 13 | +- basic IRC socket connection lifecycle |
| 14 | +- server, channel, and query tabs |
| 15 | +- basic message sending and receiving |
| 16 | +- local persistence for networks, tabs, message history, and a small settings set |
| 17 | +- reconnect banner and basic connection status UX |
14 | 18 |
|
15 | | -For help getting started with Flutter development, view the |
16 | | -[online documentation](https://docs.flutter.dev/), which offers tutorials, |
17 | | -samples, guidance on mobile development, and a full API reference. |
| 19 | +Not implemented yet in full parity: |
| 20 | + |
| 21 | +- CAP/SASL full flow |
| 22 | +- multi-network orchestration parity |
| 23 | +- advanced numerics and command coverage |
| 24 | +- notifications/background behavior |
| 25 | +- encryption |
| 26 | +- DCC/media |
| 27 | +- monetization and security platform features |
| 28 | + |
| 29 | +The feature list below describes the target AndroidIRCx parity scope, not the current Flutter |
| 30 | +implementation status. |
| 31 | + |
| 32 | +## 🔐 Security |
| 33 | + |
| 34 | +- **TLS/SSL** -- full encrypted connection support |
| 35 | +- **SASL** -- PLAIN, SCRAM-SHA-256, EXTERNAL (client certificates) |
| 36 | +- **E2E Encryption** -- libsodium XChaCha20-Poly1305 with context-bound AAD |
| 37 | +- **Secure Storage** -- device Keychain for secrets (AsyncStorage fallback with warning) |
| 38 | +- **App Lock** -- PIN and biometric with auto-lock on background/launch |
| 39 | +- **Kill Switch** -- emergency disconnect and optional data wipe |
| 40 | +- **Play Integrity** -- Google Play Integrity verification |
| 41 | + |
| 42 | + |
| 43 | +## 🤝 Contributing |
| 44 | + |
| 45 | +AndroidIRCX is open source and contributions are welcome. |
| 46 | + |
| 47 | +**Areas where you can help:** |
| 48 | + |
| 49 | +- IRC protocol -- new IRCv3 capabilities, IRCd-specific features |
| 50 | +- Testing -- more edge cases, integration tests |
| 51 | +- Translations -- add or improve translations via Transifex |
| 52 | +- UI/UX -- accessibility, new themes, layout improvements |
| 53 | +- Documentation -- guides, tutorials, examples |
| 54 | +- Security -- audit, improvements, new encryption features |
| 55 | + |
| 56 | +- **Before submitting a PR:** |
| 57 | + |
| 58 | +```bash |
| 59 | +flutter analyze |
| 60 | +flutter test # Must pass all |
| 61 | +``` |
| 62 | + |
| 63 | +## 📝 IRC Protocol Compliance |
| 64 | + |
| 65 | +| Standard | Coverage | |
| 66 | +|----------|------------------------------------------------| |
| 67 | +| RFC 1459 | Full compliance | |
| 68 | +| RFC 2812 | Extended numeric support (390+ handlers) | |
| 69 | +| IRCv3 | 27 capabilities requested, full implementation | |
| 70 | +| SASL | PLAIN + SCRAM-SHA-256 (RFC 7677) + EXTERNAL | |
| 71 | +| DCC | SEND, CHAT | |
| 72 | +| CTCP | Full (VERSION, TIME, PING, ACTION, etc.) | |
| 73 | + |
| 74 | +--- |
| 75 | + |
| 76 | +## 🎨 Credits & Inspiration |
| 77 | + |
| 78 | +**IRCap** (c) Carlos Esteve Cremades, 1997-2026 - the legendary mIRC script that inspired |
| 79 | +AndroidIRCX's away system, protection features, writing styles, and the IRcap theme. If you used |
| 80 | +mIRC in the 2000s, you probably know IRCap. Its futuristic design and complete feature set set the |
| 81 | +bar for what an IRC experience should be. |
| 82 | + |
| 83 | +**IRcap theme for AndroidIRCX** by ARGENTIN07, based on the original IRCap theme. |
| 84 | + |
| 85 | +**Translations:** ARGENTIN07 and Cubanita83 (Spanish), Yusbastian Lemon (Indonesian). See the full |
| 86 | +credits in the app's Credits screen. |
| 87 | + |
| 88 | +As an open-source creator, I deeply respect the work of **Linus Torvalds** and **Richard Stallman** |
| 89 | +for the free/open-source software movement. Their vision and persistence were a direct inspiration |
| 90 | +for building this app as open source. |
| 91 | + |
| 92 | +[](https://www.kernel.org/) |
| 93 | +[](https://www.gnu.org/) |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 📄 License |
| 98 | + |
| 99 | +**GNU General Public License v3.0 or later (GPL-3.0-or-later)** |
| 100 | + |
| 101 | +Copyright (C) 2025-2026 Velimir Majstorov |
| 102 | + |
| 103 | +This program is free software: you can redistribute it and/or modify it under the terms of the GNU |
| 104 | +General Public License as published by the Free Software Foundation, either version 3 of the |
| 105 | +License, or (at your option) any later version. |
| 106 | + |
| 107 | +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without |
| 108 | +even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See |
| 109 | +the [GNU General Public License](LICENSE.md) for more details. |
| 110 | + |
| 111 | +You should have received a copy of the GNU General Public License along with this program. If not, |
| 112 | +see <https://www.gnu.org/licenses/>. |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## 🤖 AI Usage Disclaimer |
| 117 | + |
| 118 | +This project was built with modern tools, including AI-assisted development. |
| 119 | + |
| 120 | +Like robotics in manufacturing, autopilot systems in agriculture, and autocomplete in software, |
| 121 | +AI is a tool -- no more, no less. |
| 122 | + |
| 123 | +**AI did not build this project on its own.** |
| 124 | +Every decision, architectural choice, security consideration, and final line of code was reviewed, |
| 125 | +validated, and maintained by a human engineer with more than 25 years of professional experience. |
| 126 | + |
| 127 | +AI did not replace engineering judgment; it accelerated routine work so more time could be spent on |
| 128 | +architecture, quality, and usability. |
| 129 | + |
| 130 | +If you prefer software created without automation or AI assistance, that choice is fully respected. |
| 131 | +At the same time, refusing tools has never stopped progress -- it has only determined who |
| 132 | +participates in shaping it. |
| 133 | + |
| 134 | +This project exists to contribute something real to open source, with practical value and |
| 135 | +long-term maintenance. You are welcome to: |
| 136 | + |
| 137 | +- use it or study it |
| 138 | +- fork it or improve it |
| 139 | +- or simply ignore it |
| 140 | + |
| 141 | +All are valid choices. |
| 142 | + |
| 143 | +Builders shape the future in silence. Spectators explain it when the work is already done. |
| 144 | + |
| 145 | +In the end, technology moves forward with or without permission. The only question is who chose to |
| 146 | +be part of it. |
| 147 | + |
| 148 | +Some build loudly. Others build correctly. |
| 149 | + |
| 150 | +Those who recognize the work will understand. Time will explain the rest. |
| 151 | + |
| 152 | +🜂🜃🜂 |
| 153 | + |
| 154 | +--- |
| 155 | + |
| 156 | +<p align="center"> |
| 157 | + <a href="https://AndroidIRCx.com"> |
| 158 | + <img src="https://AndroidIRCx.com/android-icon-192x192.webp" width="64" height="64" alt="AndroidIRCx"> |
| 159 | + </a> |
| 160 | +</p> |
| 161 | + |
| 162 | +<p align="center"> |
| 163 | + <b><a href="https://androidircx.com">AndroidIRCx.com</a></b> |
| 164 | +</p> |
| 165 | + |
| 166 | +--- |
0 commit comments