Awesome
HackerBuzz-ReactNative
Over the past few months, I've been working on a side project to gain an understanding of the React Native workflow. I decided to create a Hacker News reader using Y Combinator's API.
Available for iOS on the App Store and Android on the Google Play Store
<img src="images/1.png" width="170" height="300" /> <img src="images/2.png" width="170" height="300" /> <img src="images/3.png" width="170" height="300" /> <img src="images/4.png" width="170" height="300" /> <img src="images/5.png" width="170" height="300" />
Setup
- Clone the repo
$ cd HackerBuzz-ReactNative
- Run either
$ yarn install
or$ npm install
I used the Facebook Audience Network in order to display advertisements every 20 stories. As a result, you need to make sure that the SDK is properly installed or else the project won't build.
iOS
- Make sure that cocoapods are installed
$ sudo gem install cocoapods
$ pod install
- Open
HackerBuzz.xcworkspace
- Modify
jsCodeLocation
to point to your IP address inAppDelegate.m
- If you wish display ads, make sure that you create a placement within the Facebook Developer console or else they won't appear.
- Getting Started with the Facebook SDK
- Getting Started with The Facebook Audience Network
- Modify
kFacebookAdPlacementId
withinStoryListAd.m
- Run via XCode or
$ react-native run-ios
Android
- Build the Android project
- Add the Facebook SDK to the project as per these instructions
- If you wish display ads, make sure that you create a placement within the Facebook Developer console or else they won't appear.
- Getting Started with the Facebook SDK
- Getting Started with The Facebook Audience Network
- Modify
PLACEMENT_ID
withinRNTNativeAdManager.java
- Run via Android Studio
Testing
The project currently contains test for the actions and reducers within /js/__tests__/
. Mocks are located within js/__mocks__/
In order to execute these tests, run $ npm test
.
Current Test Coverage
<img src="https://i.imgur.com/4sulKRi.png" />Scripts
$ npm bundle-ios
- Bundle code for an iOS release build$ npm bundle-android
- Bundle code for an Android release build$ npm test
- Run unit tests$ lint-fix
- Run linter
Future Work
Settings
- Light Theme
- Specify Font Size
Contributing and License
Issues
Feel free to submit issues and enhancement requests.
Contributing
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request so that we can review your changes
License
Released under the MIT License. Check LICENSE.md
for more info.
Donate
Any support would be highly appreciated! 🚀 🌕
- BTC: 1LCurQW9j7rP7uJYki2uW8RGFDJPujdvEt
- ETH: 0x6350726EfE25205ef3AE88f054a16d40091725B6
- LTC: LPvPMmqzBSDEjUmJcv2bXNUuc6cUWLnfoq