Skip to content
This repository has been archived by the owner on Jan 24, 2023. It is now read-only.

jackv24/ComicWrap-F

Repository files navigation

ComicWrap F

An open source webcomic reader and tracker for Android and iOS.

It is intended for reading webcomics that are published on their own websites, and keep track of read pages and new updates.

This app is not intended to scrape comic websites. Instead, comics are read directly on the website like a normal web browser. This ensures that the app does not have a negative effect on things such as ad revenue for the webcomic creator.

Main Features

  • Read tracking (remembers the page you're up to)
  • Update tracking (shows any new pages since it was added to your Library)
  • In-site reading and tracking (navigate within the website and automatically track last read page)
  • Android/iOS realtime sync

Get it on Google Play Download on the App Store

Building and Running

There are a few parts to the whole system:

  • A Flutter App (for Android or iOS)
  • Firebase project for the Database, Functions and Auth (required for the Flutter App to operate properly)
  • A Node.js service for scraping comic websites (which runs on Google App Engine)

Prerequisites

Setup

Firebase Functions/Emulators

To run the Firebase emulators with test data, cd into the functions directory.

  • run npm install and npm run build first if you haven't
  • run npm run serve-all

The test user can be logged in with email: test@test.com and pass: test1234.

Comic Scraping Service

To run the comic scraping service, cd into the service_scrape-comic directory.

  • run npm install and npm run build first if you haven't
  • run npm run start-local

Flutter

  • Create a Firebase project

    • (Android) download and copy google-services.json to android/app/
    • (iOS) download and copy GoogleService-Info.plist to ios/
  • (from project root) run flutter pub get to get dependencies

  • run flutter pub run build_runner build to generate code (will sometimes need to run this again after editing certain files)

Google Ads

The package google_mobile_ads is used for ads in production builds (to try and cover server costs, Apple dev program, etc.)

The app needs some dummy data for the ads SDK in order to build:

  • Android
    • Append adMob.appId=ca-app-pub-0000000000000000~0000000000 to the end of android/local.properties. If this file does not exist, try running a build to generate the file.
  • iOS
    • TODO

You should now be ready for development! There are a few run configurations for Android Studio in .run/, and run configurations for VS Code in .vscode/launch.json.

Contributing

At this stage there's no real contributing guidelines besides "be nice, use common sense".

Feel free to create an Issue with any bugs, features requests, etc!

Localisation

All in-app text strings are linked to a POEditor project.