Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
doc
 
 
env
 
 
 
 
ios
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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