Table of Contents
About The Project
This app aggregates blog posts by SwiftLee (Antoine van der Lee), who runs a blog on iOS software development.
Note that this app is only a SwiftLee aggregator and not an app developed by SwiftLee. Like any RSS aggregator, the author of the aggregator has no influence on SwiftLee’s blog posts. And SwiftLee has no responsibility for the aggregator. In case you are wondering, both parties did align ;-)
The aggregator asynchronously fetches data from an existing SwiftLee RSS feed. The RSS data is converted to JSON on the fly using an online RSS-to-JSON convertor. And the JSON is then decoded and rendered within the app. Clicking on a item in the aggregator opens the associated SwiftLee post in a browser tab.
Built With
Distribution
The app is only available via GitHub. It isn’t and won’t be distributed via the Apple App Store to prevent confusion. And, frankly, the app doesn’t provide add enough functionality compared to the existing SwiftLee website: the app is partly used as a lightweight testbed to try out some programming techniques (like concurrency and core data
).
Getting Started
To get a local copy up and running, use GitHub’s Open with Xcode
feature. Those who prefer the git command line commands usually manage perfectly fine on their own.
Installation
- Get a free API key at rss2json.com. This involves signing up for a free account with rss2json. The
rss2json
free plan should be enough to view a single feed as often as you like. Please carefully save the API key code. It allows you to generate a fair amount of traffic throughrss2json.com
without having to worry about the amount of traffic generated by others. - Clone the repository to your development environment:
Code
,Code
,Open with Xcode
,Allow
GitHub to launch Xcode, select a location for the directory, and pressClone
. - Enter your personal API key in the file
Utilities
/ApiKey.swift
Don’t forget to uncomment the line. By default it reads:
// insert your rss2json.com API key and uncomment
// let apiKey = "thisisthespotwhereyouinsertyourownapikey"
The line is commented out because I have a second file containing my own key. That second file obviously doesn't get mirrored on GitHub. 4. You can now compile the project to install it on an actual device (you may need to deploy it again after half a year) or run the code on a device simulator in the usual way.
Usage
There is little to say about usage. Just launch the app, and it will launch all currently available posts on SwiftLee's site.
The Search field allows you to filter the shown postings. It only uses the title fields for this - so not the actual body text or tags/keywords attached to the posts.
If you click on an post in the scrollable List, it will load the actual post into a browser tab. The app currently does not store any data on your device, so you will need to be online (otherwise you will see an empty List).
Roadmap
- Complete the readme
- Automatically fetch older posts via extra fetch requests (at 10 posts per request)
- Add a search bar to filter the list (needed if there are hundreds of posts)
- Minor bug fixing and cleanup
- Store the posts on-device
- Keep track of which posts have been clicked on, and visualize this using the
mail
icon to the left of the title
See the open issues for a full list of proposed features (and known issues).
Contributing
Any contributions are greatly appreciated. If you have a suggestion that would make this better, you can fork the repo and create a pull request. The command line git
commands to do this (but the Xcode IDE has equivalent commands under Source Control
):
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
You can alternatively submit an issue
with a tag like ”enhancement" or “bug” without having to provide the code solution yourself. Don't forget to give the project a star in GitHub!
License
Distributed under the MIT License. See LICENSE.txt
for more information.
Contact
Peter van den Hamer - [email protected]
Project Link: https://github.com/vdhamer/SwiftLeeAggregator