All Projects β†’ lukakerr β†’ hackd

lukakerr / hackd

Licence: other
A modern Hacker News iOS application, built with React Native

Programming Languages

javascript
184084 projects - #8 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to hackd

Hackers
Hackers is an elegant iOS app for reading Hacker News written in Swift.
Stars: ✭ 513 (+463.74%)
Mutual labels:  hacker-news, iphone
vanilla-wc-hnpwa
πŸ“± πŸš€ Hacker News PWA built with vanilla JS and Web Components
Stars: ✭ 38 (-58.24%)
Mutual labels:  hacker-news
hackernews-example
An NX Hacker News clone with real-time updates and animations.
Stars: ✭ 56 (-38.46%)
Mutual labels:  hacker-news
mastodon-hnbot
A bot posting the Hacker News stories with 100+ points to Mastodon
Stars: ✭ 37 (-59.34%)
Mutual labels:  hacker-news
hn-clojure
Hacker News in Clojure.
Stars: ✭ 31 (-65.93%)
Mutual labels:  hacker-news
Taskey
πŸš€ It Makes easy to track your task πŸ”₯ Beautiful & Animated UIπŸ‘¨πŸ»β€πŸ’» . Contributions are always welcome πŸ€—
Stars: ✭ 34 (-62.64%)
Mutual labels:  iphone
hackertab.dev
Hackertab turns your New Tab page into a geeky one that keeps you as a developer updated with the best tools, news, jobs and events.
Stars: ✭ 229 (+151.65%)
Mutual labels:  hacker-news
reverse-engineering-the-hacker-news-ranking-algorithm
An analysis of historical Hacker News data to determine the ranking algorithm
Stars: ✭ 76 (-16.48%)
Mutual labels:  hacker-news
digitrecognition ios
Deep Learning with Tensorflow/Keras: Digit recognition based on mnist-dataset and convolutional neural-network on iOS with CoreML
Stars: ✭ 23 (-74.73%)
Mutual labels:  iphone
OTResizableView
OTResizableView is a UIView library that can be resized with fingers.
Stars: ✭ 47 (-48.35%)
Mutual labels:  iphone
hacker-hiring-hunt
πŸ‘¨β€πŸ’» Tool for searching through Hacker News whoshiring threads
Stars: ✭ 28 (-69.23%)
Mutual labels:  hacker-news
Meme-Maker-iOS
Meme Maker open source iOS app made in Swift.
Stars: ✭ 59 (-35.16%)
Mutual labels:  iphone
HapticGenerator
Easy peasy haptic generation in iOS.
Stars: ✭ 32 (-64.84%)
Mutual labels:  iphone
Minerva-Debugger
Providing a great interface to the iOS kernel, hardware, threads and processes in a great research environment. (WIP)
Stars: ✭ 23 (-74.73%)
Mutual labels:  iphone
hacker-feeds-cli
πŸ“° A command line tool for Hacker News、 Product Hunt、 GitHub Trending 、Reddit and V2EX feeds.
Stars: ✭ 129 (+41.76%)
Mutual labels:  hacker-news
Diurna
Basic/Classic Hacker News app, used as a Cocoa & Swift learning platform
Stars: ✭ 100 (+9.89%)
Mutual labels:  hacker-news
vanilla-hn
A Hacker News Reader in Vanilla JavaScript
Stars: ✭ 36 (-60.44%)
Mutual labels:  hacker-news
ALButtonMenu
A simple, fully customizable menu solution for iOS.
Stars: ✭ 45 (-50.55%)
Mutual labels:  iphone
paper-hn
Hacker News front page in the style of a print newspaper
Stars: ✭ 73 (-19.78%)
Mutual labels:  hacker-news
remotestash
A simple substitute for AirDrop between iPhone and a linux desktop
Stars: ✭ 38 (-58.24%)
Mutual labels:  iphone

hackd

A Hacker News React Native powered iOS application. Built to learn React Native and Redux.

Currently a work in progress.

Features

Features that aren't checked below are yet to be implemented. If you want to implement them, please create a pull request!

Main
  • Browse anonymously or login
  • 6 feeds to choose from:
    • Top
    • New
    • Best
    • Ask
    • Show
    • Jobs
  • The user can:
    • Share posts
    • Search, filter and view posts (stories, show, ask), comments, polls and users
    • Read articles in app with Safari View Controller
    • Read, collapse and expand comments
  • If logged in, the user can also:
    • Upvote posts
    • Upvote comments
    • Unvote comments
    • Comment
    • Submit a post
    • Save a post
    • Add a post to their offline reading section
    • View their recently viewed articles
    • View their upvoted posts
    • View their own profile
  • Users can login/logout of multiple different accounts without losing their saved/upvoted/offline/viewed posts
Other
  • Haptic feedback for common actions
  • 3D touch actions and preview (peek and pop)1
  • Themable app colors (i.e. comments, navigation, buttons, tabbar)
  • Swipe horizontally to upvote or save
  • Infinite scroll

TODO

  • Add features not implemented above
  • Fix and improve comment fetching.
    • Comments are fetched recursively due to Hacker News's API design, then flattened into an array where each reply is the next item in the array. This isn't a good solution beacuse the user has to wait for all the comments to be loaded before they can see any (Promise.all()).
    • To fix this, each top comment and its replies should be fetched individually, appended to an array and the component will re render with the new comment added. The user will also be able to view comments almost immediately while others load.
  • Add caching for comments (older than 10 minutes), and posts. If post/comment requested again, check if in cache, if so load from cache.

Run Locally

# Clone hackd
$ git clone https://github.com/lukakerr/hackd.git

# Change directories
$ cd hackd

# Install dependencies
$ npm install

# Link native libraries
$ npm run link

# Run the app
$ npm run start
# Or for iPhone X
$ npm run start:x

Test

Jest is used for testing. To test, run:

$ npm run test

Design

Inspired by Apollo App, I tried to design hackd around an iOS centric theme.

The comments design in hackd is based off a stripped down version of Apollo's comments.

Hackd also supports font scaling for readers who want smaller or larger text.

I've tried to add and support as many native API's as possible such as haptic feedback and 3D touch. Although many new API's aren't available in the React Native environment yet.

Screenshots

hackd1 hackd2 hackd3

hackd4 hackd5 hackd6

hackd7 hackd8 hackd9



1 3D touch is only available on supported devices. Currently only Wix's react-native-navigation supports it, although there is a relatively major bug that hasn't been fixed yet. This bug is present in Hackd.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].