This iOS/SwiftUI app collects blog postings by SwiftLee on Swift and related topics.

Overview

Contributors Forks Stargazers Issues MIT License

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

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.

(back to top)

Built With

(back to top)

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).

(back to top)

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.

(back to top)

Installation

  1. 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 through rss2json.com without having to worry about the amount of traffic generated by others.
  2. Clone the repository to your development environment: Code , Code , Open with Xcode, Allow GitHub to launch Xcode, select a location for the directory, and press Clone.
  3. 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.

(back to top)

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).

(back to top)

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).

(back to top)

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):

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. 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!

(back to top)

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

(back to top)

Acknowledgments

(back to top)

Comments
  • Add Search filter

    Add Search filter

    For 10 posts, you don't need filtering. But you do for 50 or more posts. SwiftUI has a pretty straightforward approach to allowing the user to Search (filter) on strings or other conditions.

    enhancement good first issue 
    opened by vdhamer 1
  • Swipe to mark with a Star

    Swipe to mark with a Star

    The database contains a flag isRead. Adding a separate hasStar or making this a 3-value state (unread, read, star) allows a user to bookmark important posts, or to mark posts for future reading.

    Idea is that the meaning of Star is left undefined by the app: user figures out a way to use it. Only assumption is that it is intended to be "positive".

    3 states or 2x2 states or "2x2 states in the model and 3 states in the UI"?

    3-states: show single state icon to the user.

    2x2 states: requires 2 on/off icons. There is space for this. Distinguishes Read/Star from UnRead/Star. Might be clearest.

    Hybrid: to a user, this looks like 3 states. And requires a simple UI rule like "Read status is hidden if there is a Star". But this approach suggests that inputs are based on 2x2 mental model and UI shows 3-state mental model. Or that input should be more complicated.

    enhancement 
    opened by vdhamer 0
  • Swipe to mark as Read

    Swipe to mark as Read

    If you open a post in the browser, it is immediately marked as "read".

    An alternative explicit command is nice for use cases like "I already read that, but not via this SwiftLeeAggregator".

    enhancement 
    opened by vdhamer 0
  • Swipe to mark as UnRead

    Swipe to mark as UnRead

    If you open a post in the browser, it is immediately marked as "read". You may not always want this because you may want to read the post later. So you should be able to correct this manually.

    E-mail clients (etc) have the same problem, but may wait a few seconds before deciding that you read something. But they provide an UnRead option just in case.

    enhancement 
    opened by vdhamer 0
  • Change identifying attribute of Post (title -> shortURL?)

    Change identifying attribute of Post (title -> shortURL?)

    The current logic determines if a post from the SwiftLee website is new based on its title. This is pretty safe because SwiftLee doesn't seem to edit the titles after publishing. But it would be better to use something more stable.

    enhancement 
    opened by vdhamer 0
  • has-been-read badge is not persisted

    has-been-read badge is not persisted

    Apparently not being saved in the database (it used to work!).

    How it shows up:

    • open an article. Badge disappears. Close app. Reopen app. Or
    • open article. Badge disappears. Swipe down to refresh.
    bug 
    opened by vdhamer 0
  • Provide native support for MacOS

    Provide native support for MacOS

    Am still waiting for an Apple Silicon Mac. Maybe it can be done on older version of MacOS and XCode, but more convenient when my environment is up to date again. I believe I don't want to use Catalyst for this (a kind of iPadOS emulation on MacOS?).

    enhancement 
    opened by vdhamer 1
Owner
Peter van den Hamer
iOS app development in Swift
Peter van den Hamer
Joseph Heck 21 Dec 14, 2022
Shortcuts support for Micro.blog

Ringgold The intial goal of this project is to provide Shortcuts support for Micro.blog. It may be expanded to include support for other Micropub impl

Maurice Parker 9 Nov 2, 2022
In this mini app covered the concepts like basics of SwiftUI and Navigations and Animations and List with CRUD functions and MVVM and App Launch and App icons adding and also applied persistence using UserDefaults Concept.

TodoList In this application used the concepts from the beginner level project of SwiftUI_Evolve_1 The following concepts covered in this mini app Swi

Sivaram Yadav 2 Dec 4, 2021
This To-Do app was developed using Swift and SwiftUI and works on iOS, MacOS (Apple Silicon) and WatchOS. The tasks are kept on storage even when the app is restarted.

ToDo-SwiftUI This app has a lot of sentimental value for me, given that it helped me a lot to understand the process of doing an iOS app and became th

Augusto Galindo Ali 6 Jul 12, 2022
IOS15-SwiftUI-InAppPurchaseDemo - In-App Purchase Demo app written with SwiftUI

iOS15-SwiftUI-InAppPurchaseDemo In-App Purchase Demo app written with SwiftUI If

null 5 Jul 20, 2022
iOS app that detects LaTeX symbols from drawings. Built using PencilKit, SwiftUI, Combine and CoreML for iOS 14 and macOS 11.

DeTeXt Finding the symbol you want to use in LaTeX can be hard since you can't memorize all the possible commands and packages for every symbol you mi

Venkat 73 Dec 8, 2022
E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy.

Touchdown-SwiftUI E-commerce app built in SwiftUI. Built in the course SwiftUI Masterclass in Udemy. Main components and concepts used: @EnvironmentOb

Jorge Martinez 5 Aug 18, 2022
🎲 100% SwiftUI 2.0, classic 2048 game [SwiftUI 2.0, iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Swift 5.3].

swiftui-2048 If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo. ✍️ Abou

Astemir Eleev 174 Dec 17, 2022
Porting the example app from our Advanced iOS App Architecture book from UIKit to SwiftUI.

SwiftUI example app: Koober We're porting the example app from our Advanced iOS App Architecture book from UIKit to SwiftUI and we are sharing the cod

raywenderlich 55 Dec 19, 2022
SwiftUI App to view the App Activity Record from iOS 15

App Activity Viewer A viewer for the iOS 15 "Record App Activity" export. FAQ How do I create an App Activity Report? Go to the "Settings" app of your

Jannik Arndt 13 Nov 16, 2022
The app demonstrates how to use Firebase in a SwiftUI iOS app

Firebase SwiftUIDemo app This app demonstrates how to use Firebase in a SwiftUI iOS app. Firebase Setup Go to firebase.com Click new project. Copy app

Andrew Gholson 0 Nov 28, 2021
SwiftUI iOS Widget and WatchOS app that randomly shows a word of the day with description and example.

Word Of The Day iOS Widget and WatchOS app made in SwiftUI that displays a random word of the day with description and example of usuage. Requirements

Kyle Dold 53 Nov 29, 2022
This is an app for a craft beer company called Cacique Bier that allows to see their available products and place orders. Made with Swift and SwiftUI.

Cacique Bier App This is an app for a Craft Beer company that shows their catalogue of products and in the future will allow purchases. The app is com

Augusto Galindo Ali 5 Jun 21, 2022
Simple iOS app written with SwiftUI (and, of course, Swift) to begin exploring it.

WishList Tracking: An exploration with SwiftUI Simple iOS app written with SwiftUI (and, of course, Swift) to begin exploring it. Goal: Get used to Vi

null 0 Dec 26, 2021
📱 Guideo - Native iOS App crafted with Swift and SwiftUI

Guideo An awesome iOS Native App ?? About Guideo App wire-framed and crafted from scratch by a team of 4. Our final project of the  Apple Foundation

Lyane Lamara 5 Oct 12, 2022
An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and more.

SpotifyClone An iOS app that visually clones Spotify's app and consumes the official Spotify's Web API to show(and play) songs, podcasts, artists and

Gabriel Denoni 11 Dec 27, 2021
Todo is an iOS App written in Swift. This app is used for an online video training course. This app demonstrates how to use UITableViewController.

Todo Todo is an iOS App written in Swift. This app is used for an online video training course. This app demonstrates how to use UITableViewController

Jake Lin 273 Dec 29, 2022
Orbit-swiftui - Orbit design system implemented in SwiftUI for iOS

Orbit is a SwiftUI component library which provides developers the easiest possi

Kiwi.com 37 Jan 3, 2023