Skip to content

regularberry/Awful

 
 

Repository files navigation

Awful

Awful is a universal iOS app for browsing the Something Awful Forums. Its story is told in its thread (and its older thread and its first thread).

An unofficial app

This app is not endorsed by Something Awful.

Build

  1. Clone the repository: git clone https://github.com/AwfulDevs/Awful.git
  2. Open Xcode project and build away: cd Awful && open Awful.xcodeproj

There are no required dependencies for building Awful; all third-party libraries are included.

There are optional dependencies for building Awful. You only need them if you're working on the relevant part of the app. Once a dependency is installed, simply build the Xcode project and the relevant files will be regenerated.

  • LESS helps us write CSS. If you're modifying the themes for displaying posts (these are files like posts-view*.less), please install LESS:
    1. Install homebrew.
    2. Open Terminal and install node: brew install node (prepend sudo to avoid permissions errors).
    3. In Terminal, install less: npm install less -g (prepend sudo to avoid permissions errors).
  • mogenerator makes Objective-C classes from our Core Data model. If you're modifying the Core Data model (aka Model.xcdatamodeld), please install mogenerator.

If you want to use Crashlytics, create a file called crashlytics-api-key containing your API key.

Contribute

You can help! Head over to Awful's thread and tell us about any issues you're having. Send in some lovingly crafted thread tags. Or fork the code and send pull requests. If you're curious about anything at all, stop by the thread and say hi.

Data Flow

The HTTP client connects to the Something Awful Forums and parses its contents, saving those contents as entities in a Core Data store. Various screens show the forums, threads, posts, private messages, and users saved to the Core Data store.

Awful's Core Data store is a cache of content from the Forums. Any user info specific to the app is stored in user defaults. The Core Data store can be (and may be, since it's stored in the application's Caches directory) deleted at any time.

Theming

Awful's posts view is fully customizable using CSS. There's a default theme, as well as themes for specific forums such as YOSPOS and FYAD. Users can include their own custom themes by adding specially-named CSS files to the application Documents directory; more info. Internally, we use LESS to generate our CSS, so if you are editing built-in themes please edit the .less files. (LESS installation instructions are above.)

The rest of Awful's screens support much more limited theming for the "dark mode" setting. The color schemes are set in AwfulTheme; there is no way to override them.

License

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License

Credit

Awful development is led by pokeyman aka Nolan Waite.

Awful includes contributions from:

Packages

No packages published

Languages

  • Objective-C 90.9%
  • JavaScript 8.4%
  • Other 0.7%