JHenTai
JHenTai copied to clipboard
A cross-platform manga app made for e-hentai & exhentai by Flutter
JHenTai
English | 简体中文
Description
An E-Hentai app for Android & iOS & Windows & MacOS & Linux.
Still in beginning stage, welcome to submit issues.
Download & Install
Install for Android: download .apk according to your device architecture and install.
- arm64-v8a:Suitable for Android phones with 8th generation ARM processor(common choice)
- armeabiv-v7a:Suitable for Android phones with 7th generation ARM processor
- x86_64:rare
Install for iOS: download .ipa, then use AltStore or SideLoadly to sign.
Install for Windows: download windows.zip, then unpack it. If you use a proxy server, set proxy address at network setting page. If you're using Windows 11 and can't launch app, try to run jhentai.exe in compatibility mode.
Install for MacOS: download .dmg. If you use a proxy server, set proxy address at network setting page.
Install for Linux(No maintenance update): download JHenTai_3.1.0+63_linux.zip, then unpack it and execute jhentai(add execution permission possibly). If you use a proxy server, proxy address at network setting page. If you want to use the latest version, you need to compile and build by yourself, and you can try a third-party pkg script pkgbuild-scripts。
Help With Translation
Please submit a PR if you want to help with translation.
Develop Motivation
My first project With Flutter. I aim at getting familiar with Flutter during development. Devices I use include Android phone, Ipad and Windows computer. E-hentai apps I used before have several bugs, and I don't understand source code because I have no development experience with Android or ios, so I choose JHenTai to become my first Flutter Project.
2022.08.20. After five months of development, JHenTai has gradually become more and more strong, and I have completely refactored some codes for gallery page, reading page, download, etc. which are written at the beginning stage. I tried my best to extract the commonality between different page and style to reduce coupling, in order to benefit the development of new features. I would be very grateful if any kind of you could give me some advice on coding style, design patterns and anything related to Flutter development or participate in the development of JHenTai.
References & Thanks
Layout and style references:
Tag translation:
App translation:
- andyching168 繁體中文(台灣)
mush thanks to these projects and people🙇
Screenshots
Mobile Layout V2

Mobile Layout (Maintenance stopped)

Tablet Layout V2

Tablet Layout (Maintenance stopped)

Desktop Layout

Gallery & Search
Gallery Detail
Setting & Download
Read
Main Features
- [x] Mobile, tablet, desktop layout(5 kinds)
- [x] Vertical, horizontal, double column read page layout(4 kinds)
- [x] GalleryPage, Popular, Favorite, Watched, History, support multiple gallery list style
- [x] search, search suggestion, tap tag to search, file search, jump to a certain page
- [x] online reading and download, support restore download task, support synchronize updates after the uploader has uploaded a new version
- [x] archive download and automatic unpacking and reading
- [x] favorite, rating, torrent, archive, statistics, share
- [x] password login, Cookie login, web login
- [x] support EX site(domain fronting optional)
- [x] vote for Tag, watch and hidden tags
- [x] comment, vote for comment
- [x] Fingerprint unlock
- [x] Support shortcut keys like 'Tab' and 'Arrow keys' in desktop layout
Translation
- Copy
/lib/src/l18n/en_US.dart
and rename to{your_languageCode}_{your_countryCode}.dart
- Rename classname in new file(optional)
- Modify k-v pairs in method
keys
,translate values to your language
Now you can submit your PR, I'll do the remaining things. Or you can go on with:
4. Enter /lib/src/l18n/locale_text.dart
, add a new k-v pair in method keys
=> {your_languageCode}_{your_countryCode} : {your_className}.keys()
5. Enter /lib/src/consts/locale_consts.dart
, add a new k-v pair in
property localeCode2Description
: {your_languageCode}_{your_countryCode} : {languageDescription}
to describe your language.
Bug
- Operations related to the clipboard may not work properly on Samsung devices due to a bug in Flutter itself.
- Change download path to SD card is not supported now.
Main Dart Dependencies
- get: dependency management, state management, l18n, NoSQL
- dio: network
- extendedImage: image
- drift: database