Giter Club home page Giter Club logo

hackerweb's Introduction

HackerWeb

A simply readable Hacker News web app. http://hackerwebapp.com/

About

This project started as one of my silly mini-projects. I create this initially to try out iOS 5+ Mobile Safari's new -webkit-overflow-scrolling: touch CSS support. I need some sort of content for scrolling, so why not Hacker News' stories? I'm also trying something called Fake it 'til you make it which I make the web app looks (and feels) like a native mobile app. In this case, like a native iOS app. If the web app is loaded on non-iOS devices, it'll switch to the 'web' theme which is like a generic theme for other browsers and platforms.

Read my two-part blog post on how I built this web app:

Also read my introductory post, Introducing HackerWeb.

Technical stuff

This web app works best on iOS 5+ Mobile Safari (iOS theme) and other modern browsers (web theme). It uses these wonderful scripts:

  • Hogan.js - logic-less templating
  • Amplify.Store - client-side storage
  • ruto.js - location.hash router
  • iOS
  • Web
    • ibento.js - simple event delegation
    • classList.js - shim for element.classList
  • Vanilla JavaScript - everything else

Also uses the unofficial Hacker News API.

Some of the cutting-edge web technologies used:

Development stuff

Use Nitrous.IO to create your own Hackerweb in seconds:

Hack cheeaun/hackerweb on Nitrous.IO

  • Prerequisites

      git clone git://github.com/cheeaun/hackerweb.git
      cd hackerweb/
      npm install
    
  • Grunt tasks

    • Compile templates in templates/* to generate assets/js/templates.js

        grunt templates
      
    • Concat and minify JavaScript files in assets/js/* to generate js/*

        grunt uglify
      
    • Watch the templates and scripts, run templates and uglify tasks when they're changed

        grunt watch
      
    • Embed images into CSS files

        grunt embedImages
      

      This will parse CSS files in assets/css/* and change this (any lines with url()):

        background-image: url(PATH); /* embedImages:url(PATH) */
      

      ... into this:

        background-image: url(data:DATAURI); /* embedImages:url(PATH) */
      
    • Run a local dev server.

        grunt connect
      

      Arguments:

      • --appcache - enable Application Cache
      • --port=XX - specify a custom port number
    • Run both watch and connect tasks at the same time

        grunt server
      

Contributing and Feedback

Feel free to fork, file some issues or tweet your feedback to me.

Do check out these awesome contributions as well:

Other platforms?

I have plans to make this app look native on other mobile platforms once I fork our some money and get my hands on other mobile devices (Android, Windows Phone, etc) for development and testing. Contact me if you feel generous enough to donate some devices to me :)

License

Licensed under the MIT License.

Other similar apps

This is the not the first third-party app for Hacker News. Others have tried doing the same thing, despite some slight differences. I've compiled a list of apps here.

hackerweb's People

Contributors

cheeaun avatar josteink avatar tagawa avatar julien-c avatar nfvs avatar adambrodzinski avatar imcotton avatar gmckeever avatar

Watchers

James Cloos avatar Tyler Rash avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.