Skip to content

A mobile client for Elfeed built with React Native and written in ClojureScript.

License

Notifications You must be signed in to change notification settings

stlkcmrd/elfeed-cljsrn

 
 

Repository files navigation

elfeed-cljsrn

CircleCI

A mobile client for Elfeed built with React Native and written in ClojureScript.

Download

Elfeed for Android is available in Google Play or you can download APK's directly from Github releases

Motivation

Elfeed is an excellent RSS reader for Emacs and I was using it daily but now I'm traveling around and I need a basic mobile app. Also, this was a perfect excuse to play a bit with RN and CLJS.

This project uses:

I'm using Docker and Docker Compose in my development environment because I didn't want to install npm, js packages and all the Android libraries in my laptop. I'm not totally comfortable with this way setup and probably it wouldn't fit very well for iOS development, will see.

Screenshots

Development

I use Emacs for development and Genymotion as an Android emulator.

  • $ script/boot # Start RN packager and a clojure REPL
  • $ script/dev-build
  • M-x cider-connect ; localhost ; 7888 # Connect to clojure REPL in port 7888
  • user> (start-figwheel "android")
  • $ script/install
  • Open the app in Genymotion

Testing

At this moment, there are almost no tests in the project. The idea is add unit tests for event handlers, where almost all the logic of the app is happening. Later, will see if it's possible to add some kind of tests for views, trying to introduce the idea of snapshot testing, as React Native is doing with Jest.

Running the tests

$ lein doo node test once

Todo

  • Publish on Google Play
  • Elfeed: Authentication (auth basic or something more complex)
  • Elfeed: Mark entry as read
  • App: Update code to new re-frame v0.8
  • App: Split code in scenes and components
  • App: Testing
  • RN: Change navigation to new navigation experimental
  • RN: Use SwipeableListView to mark an entry as read from the list
  • iOS version (I won't work on this because I don't use iOS, but I'm happy to help you if you are interested)
  • Version for tablets

About

A mobile client for Elfeed built with React Native and written in ClojureScript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Clojure 76.7%
  • JavaScript 9.0%
  • Objective-C 5.5%
  • Dockerfile 3.8%
  • Java 2.1%
  • Python 2.0%
  • Shell 0.9%