DISCONTINUED
The app for Campuswelle.
This project uses Carthage and CocoaPods. In order to fetch all carthage dependencies run:
$ carthage update
Currently there is a client quick-fix the BNRSSFeedParser
, because of syntactically invalid XML sent by the server. Therefore it is not recommended to update CocoaPods before fixing the XML.
You update CocoaPods with:
$ pod update
The Storyboard.main
contains a graphical representation of the Application's UIViewController
s. Additionally PlaybackBarViewController.xib
visualizes the PlaybackBar that is going to be displayed.
The application fetches news from the RSS feed and maps them to podcasts or articles (that are still news). Later these will be embedded in a provided HTML Wrapper wrapper.html
(its first "%@"
is replaced by the article's title, the second one by its content).
PodcastPlayer
is a pure-swift, singleton classsharedInstance
. It handles all playback logic and is capable of playing the default livestream andPodcast
s.News
-protocol, propertyarticle
Podcast
s andArticle
s areNews
Some functional files:
news-data
: fetch news (podcasts/articles) from DOM or internetpodcast-data
: fetches only podcastsarticles-data
: fetches only articles
SegueHandlerType
provides the ability of statically typed segues declared inStoryboard.main
concurrency
provides some convenience functions for concurrency. Itsmain(_: () -> ())
should always be used when manipulating the interface sinceUIKit
is not thread-safe.common-vc
provides convenience functions to add thelisteningButton
to aUIViewController
AssetIdentifier
is an extension toUIImage
in order to load images fromImages.xcassets
without force-unwrapping and letting the compiler check for typos in identifier names.
This application requires the following dependencies:
Hpple
a HTML parser, MIT LicenseBNRSSFeedParser
a parser for RSS and podcast feeds, MIT License
Relevant files excluded from target:
-
structural-fold-phase
initially used to parse RSS feed, but it wasn't robust enough for frequent changes of the inner article structure during development.
Instead use
news-html
andWebViewWrapperDelegate
.
In order to test Campuswelle
on your iOS device, add it to your developer devices by providing its UDID.
Thereafter it needs to be added to a newly created iOS Development Provisioning Profile.
Make sure, you selected the appropriate Developer Team and already changed it's App ID of the target.
When generating in Member Center, following Application Services must be enabled in Distribution and Development:
- Inter-App Audio: enables continuing playback when other applications are active
Currently the App ID is set to com.conclurer.Campuswelle
, but it needs to change when migrating to another Developer Account.
The iOS Development profile will be managed automatically by Xcode.
In order to genrate a new iOS Distribution Profile in Member Center, use the same information provided under README.md > Member Center > iOS App ID
.
Screenshots for all devices are created by running:
$ snapshot