diff --git a/README.md b/README.md index a6dd382..2b9d393 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you want a feature to be added, drop me an email or create an issue. Look at the other issues, in case somebody else already filed one similar. If you like this project and want to say thank you drop me a line (or other stuff like money). Regardless, I'll continue development as long as I'm using it on my own. -Admittedly, I've invested way too much time in this project already (1400h+) … +Admittedly, I've invested way too much time in this project already (1595h+) … ### Why is this project not written in Swift? @@ -21,6 +21,10 @@ Compared to the nearly finished Alpha version with 500 Kb written in Objective-C The reason for that, Swift frameworks are always packed into the final application. I decided that this level of encapsulation is a waste of space for such a small application. +With Swift 5 and ABI stability this would not be any issue, but sadly Swift 5 was released after already half of the project was done. +In retrospect it would be much nicer to have it written it like that from the beginning. +But on the other hand, this project is macOS 10.12 compatible. + ### 3rd Party Libraries @@ -33,7 +37,8 @@ Install Requires macOS Sierra (10.12) or higher. -Easy way: go to [releases](https://github.com/relikd/baRSS/releases) and downloaded the latest version. +### Easy way +go to [releases](https://github.com/relikd/baRSS/releases) and downloaded the latest version. ### Build from source diff --git a/baRSS.xcodeproj/project.pbxproj b/baRSS.xcodeproj/project.pbxproj index 835ff82..b7ce640 100644 --- a/baRSS.xcodeproj/project.pbxproj +++ b/baRSS.xcodeproj/project.pbxproj @@ -27,7 +27,6 @@ 5496B511214D6275003ED4ED /* UserPrefs.m in Sources */ = {isa = PBXBuildFile; fileRef = 5496B510214D6275003ED4ED /* UserPrefs.m */; }; 54A07A7F220E04CF00082C51 /* NSFetchRequest+Ext.m in Sources */ = {isa = PBXBuildFile; fileRef = 54A07A7E220E04CF00082C51 /* NSFetchRequest+Ext.m */; }; 54A07A82220E723D00082C51 /* MapUnreadTotal.m in Sources */ = {isa = PBXBuildFile; fileRef = 54A07A81220E723D00082C51 /* MapUnreadTotal.m */; }; - 54ACC28621061B3C0020715F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54ACC28521061B3C0020715F /* Assets.xcassets */; }; 54ACC28C21061B3C0020715F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC28B21061B3C0020715F /* main.m */; }; 54ACC29521061E270020715F /* FeedDownload.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29421061E270020715F /* FeedDownload.m */; }; 54ACC29821061FBA0020715F /* Preferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 54ACC29721061FBA0020715F /* Preferences.m */; }; @@ -36,6 +35,7 @@ 54B749DA2204A85C0022CC6D /* BarStatusItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B749D92204A85C0022CC6D /* BarStatusItem.m */; }; 54B749E0220636200022CC6D /* FeedArticle+Ext.m in Sources */ = {isa = PBXBuildFile; fileRef = 54B749DF220635CD0022CC6D /* FeedArticle+Ext.m */; }; 54BB048921FD2AB500C303A5 /* NSDate+Ext.m in Sources */ = {isa = PBXBuildFile; fileRef = 54BB048821FD2AB500C303A5 /* NSDate+Ext.m */; }; + 54BF444A22D0F4F300660096 /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 54BF444922D0F4F300660096 /* AppIcon.icns */; }; 54D857CE227C5785001BA1C8 /* RefreshStatisticsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 54D857CD227C5785001BA1C8 /* RefreshStatisticsView.m */; }; 54E88320211B509D00064188 /* ModalFeedEdit.m in Sources */ = {isa = PBXBuildFile; fileRef = 54E8831E211B509D00064188 /* ModalFeedEdit.m */; }; 54E9CF32225914300023696F /* SettingsAbout.m in Sources */ = {isa = PBXBuildFile; fileRef = 54E9CF31225914300023696F /* SettingsAbout.m */; }; @@ -109,7 +109,6 @@ 54A07A81220E723D00082C51 /* MapUnreadTotal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MapUnreadTotal.m; sourceTree = ""; }; 54ACC27C21061B3B0020715F /* baRSS Beta.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "baRSS Beta.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 54ACC28321061B3B0020715F /* DBv1.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = DBv1.xcdatamodel; sourceTree = ""; }; - 54ACC28521061B3C0020715F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 54ACC28A21061B3C0020715F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 54ACC28B21061B3C0020715F /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 54ACC29321061E270020715F /* FeedDownload.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FeedDownload.h; sourceTree = ""; }; @@ -126,6 +125,7 @@ 54B749DF220635CD0022CC6D /* FeedArticle+Ext.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "FeedArticle+Ext.m"; sourceTree = ""; }; 54BB048721FD2AB500C303A5 /* NSDate+Ext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDate+Ext.h"; sourceTree = ""; }; 54BB048821FD2AB500C303A5 /* NSDate+Ext.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDate+Ext.m"; sourceTree = ""; }; + 54BF444922D0F4F300660096 /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = ""; }; 54D857CC227C5785001BA1C8 /* RefreshStatisticsView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RefreshStatisticsView.h; sourceTree = ""; }; 54D857CD227C5785001BA1C8 /* RefreshStatisticsView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RefreshStatisticsView.m; sourceTree = ""; }; 54D857D022802309001BA1C8 /* SettingsGeneralView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsGeneralView.h; sourceTree = ""; }; @@ -255,8 +255,8 @@ 541A90EF21257D4F002680A6 /* Status Bar Menu */, 54A07A8322105E0800082C51 /* Core Data */, 546FC44D2118B357007CC3A3 /* Preferences */, - 54ACC28521061B3C0020715F /* Assets.xcassets */, 54ACC28A21061B3C0020715F /* Info.plist */, + 54BF444922D0F4F300660096 /* AppIcon.icns */, 54ACC28B21061B3C0020715F /* main.m */, 54ACC28221061B3B0020715F /* DBv1.xcdatamodeld */, ); @@ -395,7 +395,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 54ACC28621061B3C0020715F /* Assets.xcassets in Resources */, + 54BF444A22D0F4F300660096 /* AppIcon.icns in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -576,7 +576,6 @@ 54ACC29121061B3C0020715F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; @@ -615,7 +614,6 @@ "@executable_path/../Frameworks", "$(FRAMEWORK_SEARCH_PATHS)", ); - MACOSX_DEPLOYMENT_TARGET = 10.12; PRODUCT_BUNDLE_IDENTIFIER = de.relikd.baRSS.beta; PRODUCT_NAME = "$(TARGET_NAME) Beta"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -626,7 +624,6 @@ 54ACC29221061B3C0020715F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES; CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES; @@ -665,7 +662,6 @@ "@executable_path/../Frameworks", "$(FRAMEWORK_SEARCH_PATHS)", ); - MACOSX_DEPLOYMENT_TARGET = 10.12; PRODUCT_BUNDLE_IDENTIFIER = de.relikd.baRSS; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/baRSS/AppIcon.icns b/baRSS/AppIcon.icns new file mode 100644 index 0000000..f1798d0 Binary files /dev/null and b/baRSS/AppIcon.icns differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/Contents.json b/baRSS/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index b4dc3b3..0000000 --- a/baRSS/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "images" : [ - { - "idiom" : "mac", - "size" : "16x16", - "filename" : "barss-icon-16.png", - "scale" : "1x" - }, - { - "idiom" : "mac", - "size" : "16x16", - "filename" : "barss-icon-32.png", - "scale" : "2x" - }, - { - "idiom" : "mac", - "size" : "32x32", - "filename" : "barss-icon-32.png", - "scale" : "1x" - }, - { - "idiom" : "mac", - "size" : "32x32", - "filename" : "barss-icon-64.png", - "scale" : "2x" - }, - { - "idiom" : "mac", - "size" : "128x128", - "filename" : "barss-icon-128.png", - "scale" : "1x" - }, - { - "idiom" : "mac", - "size" : "128x128", - "filename" : "barss-icon-256.png", - "scale" : "2x" - }, - { - "idiom" : "mac", - "size" : "256x256", - "filename" : "barss-icon-256.png", - "scale" : "1x" - }, - { - "idiom" : "mac", - "size" : "256x256", - "filename" : "barss-icon-512.png", - "scale" : "2x" - }, - { - "idiom" : "mac", - "size" : "512x512", - "filename" : "barss-icon-512.png", - "scale" : "1x" - }, - { - "idiom" : "mac", - "size" : "512x512", - "filename" : "barss-icon-1024.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-1024.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-1024.png deleted file mode 100644 index 96d3459..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-1024.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-128.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-128.png deleted file mode 100644 index 15f6b9d..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-128.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-16.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-16.png deleted file mode 100644 index 3e3bf25..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-16.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-256.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-256.png deleted file mode 100644 index 1e35cf5..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-256.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-32.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-32.png deleted file mode 100644 index 1e56d40..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-32.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-512.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-512.png deleted file mode 100644 index 390e83c..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-512.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-64.png b/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-64.png deleted file mode 100644 index 86f6aa4..0000000 Binary files a/baRSS/Assets.xcassets/AppIcon.appiconset/barss-icon-64.png and /dev/null differ diff --git a/baRSS/Assets.xcassets/Contents.json b/baRSS/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/baRSS/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/baRSS/Info.plist b/baRSS/Info.plist index bef2b2d..e77ac29 100644 --- a/baRSS/Info.plist +++ b/baRSS/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIconFile - + AppIcon CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion @@ -32,7 +32,7 @@ CFBundleVersion - 7702 + 7749 LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement