feed7 4.0 for Windows Phone 8 available!

This is the first native Windows Phone 8 release of feed7. It has been upgraded to support the new high resolution displays, new Live Tile sizes and lock screen integration.

Full details on the upgrade can be found on the product website: http://www.feed7app.com/blog/feed7-4.0-for-windows-phone-8-now-available

feed7 3.3 is now available!

The latest feed7 update to version 3.3 is now available on marketplace.

It's a maintenance update including a lot of fixes and small improvements. Find all the details on the finally launched (yet still work in progress) official feed7 website: http://www.feed7app.com/blog/feed7-3.3-now-available

All feed7 updates will be published on this new website in the future.

feed7 3.2 now available!

The next update for feed7, version 3.2, is now available on Marketplace. It is mainly an update targeted on fixing and improving things, but there are also a couple of new features in it. Here are the details:

Improved FavIcons

For every feed that offers one, feed7 shows it's FavIcon. feed7 was, for a long time, the only feed reader on Windows Phone that offered this feature - but it's an important one. It makes distinction of different feeds much easier.

In version 3.2 we have improved this feature a lot. Many feeds (sites) today offer already higher res FavIcons than only 16x16 pixels and most of them use transparency for  the background. Both is now supported by feed7 and this makes FavIcons for many sites much more beautiful and better recognizable.

Here is a comparison of the new (left) and old (right) FavIcons. You can click on the images to see them in a higher resolution:

faviconnew faviconold

feed7 now also checks frequently for updates on FavIcons so you always see the latest and greatest icons of your favorite sites. Be aware that this is only done when you are using a Wi-Fi connection, not over GSM networks to save bandwidth.

If you are upgrading from earlier versions, give feed7 a couple of syncs (over Wi-Fi) before all icons get updated with the newer versions. It's very likely you'll see upscaled older icons for a couple of app runs.

Feed list backups

A common issue for users that do not use Google Reader is backing up their feed list so they don't have to manually add all feeds again if they have to reinstall feed7 for some reason or switch to a new phone where they have to freshly install feed7.

In sync settings, you now find a switch to enable automatic feed list backups. The service is called "MyOpml" and is run on feed7 servers. OPML is a popular file format for exchanging feed lists. The OPML files that are generated by this backup can be accessed also by other applications than feed7.

If you re-install feed7 it will find backups automatically and asks you if you want to restore the backed up feed list.

This feature will be explained in more detail in a separate post.

Improved OPML support

Because of lack of time, OPML support was temporary unavailable since feed7 3.0 release. Now it's back and even better: it now also supports importing folders that are defined in your OPML files. Just enter the address where feed7 can find your OPML file in the "add feed" screen and feed7 will recognize your OPML file automatically and import it with all top-level folders.

As with feed list backups, this feature is only available for users that sync with individual feeds ("web sync") aka users that not sync with Google Reader.

Support for native Twitter URL shortening

When sharing articles over Twitter, feed7 now supports Twitter's native URL shortening and the shortened URLs are correctly counted in the new "chars left" counter.

Rating & Trial reminders

feed7 really needs more ratings on Marketplace so it will now remind users to do this every 14 days. Of course, these reminders can be permanently disabled.

Also, trial users will now be reminded to purchase the app if they like it after 30 days. These messages will appear every 5 days and, in this case, cannot be disabled.

Improved Google Reader sync speed

We already had a few features exclusively for web sync users - now something nice for Google Reader users: sync speed was again improved by decreasing the pre-feed-sync tasks. Unread tags are now downloaded and processed during sync of each individual feed instead of in front of the whole sync process and when subscriptions have not changed (which will be the case in 90 % of your syncs at least), the process of syncing subscriptions and folders is now much, much faster.

This and other speed improvements will result in a lot fewer pre-processing so the first new items will come in much faster now and you can start reading earlier - and also the overall sync process is now finished even faster. Expect even more improvements here coming soon.

Other fixes & improvements:

  • Fix: OAuth for Twitter and Facebook sometimes failed because of encoding problems
  • Fix: Possible app crashes in low network coverage areas (not when there is no coverage at all)
  • Fix: Multiple error messages displayed on sync errors
  • Fix: Delete and Mark All Read is mixed up in checkboxmode for folders and feeds
  • Fix: Bookmark-Tags missing in folder view
  • Fix: Wrong description for search AppBar icons in unread and starred view
  • Fix: Local changed read/starred tags can be overridden during sync
  • Fix: Localization for "Folders" and "Feeds" group headers in main view missing
  • Fix: AppBar Color not changed when alternate AppBars are used

feed7 3.1 update now available

The feed7 update 3.1 is now available on Windows Phone Marketplace. This is a maintenance release that fixes some issues that came up with version 3. No new features were added. Here are the changes:

  • Fix: Adding of new feeds with complete feed address fails
  • Fix: Group header that shows article dates is sometimes incorrectly formatted
  • Fix: Random LayoutCycle exceptions due to bug in used list control
  • Fix: Server-side folder name changes were not synced when using Google Reader
  • Fix: Renaming folders not reflected in UI immediately
  • Controls update that fixes some bugs and performance issues

While waiting for certification of this update, some work was already done for the next update that will arrive soon. Besides further bug fixes and optimizations, update 3.2 will also bring a couple of new features.

feed7 3.0 is now available!

As always, it takes longer than expected, but feed7 3.0 is now finally available. And it's a huge update that brings a ton of new features and a completely fresh user interface.

We really hope you'll like it. Here's a quick overview of what's new:

Fresh UI

Here is your new, fresh feed7 UI. It introduces grouping for feeds, folders and articles for a better overview and a more structured reading experience. As you can see in the 2nd screenshot below, articles are grouped into their publish dates.

f7newmain f7newall f7newcategories

But it not only gives you more structure in your reading experience, it also allows you to jump quickly to a specific date. Just tap one of the group headers and a list of all available dates will open. Tap it, and feed7 jumps to the date you selected. You can also navigate up and down through the dates by tapping the arrows located right in the group header. A fast and easy navigation through your articles is key - so we put a lot of focus into that.

But for a quick navigation, it's also important you can quickly locate the articles you care about. Many of you complained that the distinction between read and unread articles is too subtle. With 3.0, we introduce the new "bookmark"-tags on the left side of the articles. The "unread" dot moved there as did the "favorite" star, but in addition, the bookmark-tag is colored in your accent color while the article is unread. You now can more easily see and find your unread articles.

Even more selecting options to manage your articles

The new grouped UI interface brings even more useful features. For example, selecting multiple articles is now faster and easier than ever - just tap on the left-side of a group header and the "checkbox view" is opened and all articles of the selected day get pre-selected (see first picture below) - and in the AppBar, you have mark unread, read, star and unstar buttons to immediately mark all selected articles.

f7newselect f7newcontext

But also, the context menu got improved: as shown in picture 2 above, all items have now a "mark (all) read" context menu option, even folders: so it's easy to mark a complete feed or folder or just an individual item as read now.

Automatically download full articles

Everybody knows those news sites that offer only teasers of the articles in their feeds. Until now, you were able to open the full article from the website of the site inside feed7 or in the external browser. Now you have the option to automatically download those articles over the great Instapaper Mobilizer service that even formats the article for a good reading experience on your device.

feed7 detects shortened feeds automatically and asks you if you want to automatically download the full article (picture 1):

f7newshortened f7newshortenedset

Even more than that, as feed7 is committed to offer the best offline experience available, you can even go into the settings of a feed (tap and hold the feed to open it's context menu and select "settings") to change the full article download behavior to "During sync" - now, just like image syncing, full articles for this feed will be downloaded already during sync and cached on your device. So you have full articles of any site you want at hand even when you're out of network coverage.

Search within all your articles

An absolutely great new feature is the ability that you now can search within all your articles on your device. While we're still working on improving this feature for future versions, it is already really useful and features such nice handy helpers as search text highlighting in the results. You'll find the new "search" AppBar icon nearly in every AppBar now.

f7newsearch

New services: Twitter and Facebook

A longtime request by users but we wanted to do it right: instead of shipping a large OAuth library with feed7 that would unnecessarily increase the memory footprint of the app, we wrote our own reduced to only the features that are needed for feed7. It was a lot of work, but now it's here. Share your articles on Twitter and Facebook. Coming with those new services is a complete new Service settings & configuration experience that makes it much easier to handle with services:

  • You can now easily manage and configure services over the application settings
  • Services can now be disabled so they won't show up in the sharing list on article view
  • Sharings of articles can now be queued when you are offline (or the queuing can also be disabled)
  • If you configure your service during the 1st sharing, you won't have to share it again manually - feed7 resubmits your item right after a successful service configuration

f7newservices f7newserviceset f7newsharesend

New "Add Feed" experience

In previous versions, adding new feeds was a bit cumbersome. You had to decide yourself which way you want to use to add your feed and different UIs were used depending what you choosed. Also, searching feeds over Bing was getting worse and worse each month with nearly unusable results lately.

So, we made two changes:

  • First, there is now only one single, simple screen left for adding feeds (see first picture below). You type into a search term and depending on what you typed, feed7 will execute the right add process. If you type a search term, feed7 will search for feeds matching this term (picture 2). If you typed in any URL (like ) feed7 will discover feeds on the URL you typed, but additionally it will also perform a standard web search using this URL. You will get categorized results to distinct the different ways of search (picture 3). And, 3rd and last possibility, if you entered a URL that points directly to a feed, feed7 will add this feed right away without any searches.
  • Second change: we dropped Bing and replaced it by Google's more sophisticated Google Reader feed search. This works also if you are not using Google Reader to sync your feeds.

This is a major improvement over previous versions. Try it out!

f7newadd f7addsearch f7addurl

New categorized settings

While we're at it - as settings options increase more and more, also the settings screen was overhauled and has now a categorization:

f7newsettings

Other interesting new features

You can now change the sorting of articles from descending to ascending so you'll see the oldest articles first.

Image rendering in article view was improved so no more wrong aspect ratio issues (wrongly stretched images) occur. Also, in many cases floating text left- or right-hand of the article image is now prevented.

Item tags (read/unread, starred) are now synced immediately with Google Reader after an item tag changes. This not only makes a complete sync faster, but it also makes changes on Google Reader visible more instantly.

We also improved performance and data usage by making all data traffic using compression.

Sharing of articles on Google Reader was removed as Google retired this feature a couple of months ago.

We're also fixed a lot of bugs, updated some 3rd party controls, removed the Silverlight Toolkit completely (and replaced the controls this library offered by more sophisticated and better performing ones) to reduce the memory footprint of the app and greatly improve performance.

Wrapping up and what's next

In general, this is a huge update we wish we'd be able to deliver earlier, but some trouble with new features and also with 3rd party controls that needed to be tracked down and fixed to reach the quality that was needed delayed this release for a couple of months. Despite the long time it took to get this release live, there were still a lot of planned 3.0 features pulled back for later releases.

However, we're happy with this release and start now working on improving it. As always when such big releases with many fundamental changes arrive, there will be bugs and we'll trying to fix them as fast as possible. At the time of this release, we were already aware of some minor issues of some controls we're using, but we decided to go live and wait no longer. Our vendor is working hard on delivering fixes and we will push out a first bugfix and maintenance update for 3.0 very likely by the end of next week.

Afterwards, no other "big" release is planned right now, instead we'll try to push out more but much smaller feature updates that improve 3.0 - we're currently waiting for more details on Windows Phone 8 before planning for the next major (4.0) release.

Why ReSharper is evil

From time to time, I install a trial of ReSharper. Because colleagues and fellow developers all over the world praise this tool as if it is pure magic. Now, in my case ReSharper's magic was always to slow my Visual Studio down to a nearly unusable speed and to crash it very regularly. Also, it flooded my IDE with wrong error messages that you could only get rid off by restarting Visual Studio. To me it seems that with ReSharper, you spent most of your time waiting, restarting your IDE and praising this tool for some sadomasochistic reason.

Agreed, with new Dual- and Quardcore machines spreading through our dev dungeons and surely some optimizations by JetBrains Resharper got to a more usable speed level during the last years. It is also more stable than ever, what does not mean much, though. That's why I try to install it again from time to time, just to check if things got better.

Now, while it indeed got speedier and more stable, ReShaprer is more evil than ever: it's more intrusive, it's scareware like many of the "security suites" out there that frequently bombard you with warnings and "informations" that should show you how important it is that you have this software installed and how screwed you are if you don't use it.

Even worse, it very often makes catastrophic refactoring recommendations that, unfortunately, many of the ReSharper users out there gladly adopt without thinking about consequences because they trust in a tool they really shouldn't trust in.

Of course I have examples for you. Because just after installing ReShaprer, it flooded my project with hundreds of warnings like every scareware would do to make itself important. "Gosh! I'm such a bad programmer!" you might think when looking at the mess and you will be glad that this tool will at least camouflage this by fixing your bad code. No, trust me, you're a good programmer. ReSharper just want you to believe you are bad and only ReShaprer can help you out.

Now … why ReSharper is evil:

ReSharper is evil because it urges you to remove used code

image

Here you see a standard XAML file on a Windows Phone project. ReSharper urges me to remove the ApplicationBar's from the XAML because they aren't used. If I would do this now, my project will build fine, but will crash like a flying penguin at runtime because this XAML markup IS used. Not in the XAML, but in code behind:

image

ReSharper doesn't check this, but nevertheless urges you to remove code. This is marked as a Warning by ReSharper, so it's clear a developer coming by this will remove it in good belief. That's catastrophic because this, in worst case, is an error that might come up no earlier than in customer's hands as it won't break your Build and it might be hidden deep inside your application.

You really want to trust a tool that comes up with such horrible, bad checked recommendations?

ReSharper is evil because it will tell you that your perfectly fine code is wrong

image

ReSharper thinks here is somewhere a redundant check. No there isn't. It will just cost you time to think about an error where there isn't any.

ReSharper is evil because it enforces inconsistent formatting guidelines

Just as ReSharper is evil, underscores in modern C# code are evil. Or at least a relict, to be fair. So it's fine that ReSharper wants you to remove underscores from event handler methods:

image

But then, ReShaprer wants you to use the saved underscores for instance fields:

image

No, C# coding guidelines suggest to just use camelCase and no Hungarian-like notations.

ReSharper is evil because it forces you to castrate your fine self-describing code

ReSharper thinks that the "var" keyword should be used instead of a complete type name left-side of the declaration:

image

JetBrains sais that the use of the var-keyword is well-argued here but: the left side is where you would normally look for the type in this declaration. It makes your code more readable than to have to search for the type on the initializer side. I understand that you have to write a lot of extra-chars for this benefit and using var on the left side would be easier. And that's understandable … but there's no reason that you have to refactor it later on if you have this already written like that. Don't make code less readable than it was just because ReSharper makes you believe that's better coding.

That's one of many examples where ReShaprer bombards you with unnecessary recommendations just to make itself more important. It would be OK if this recommendations were more subtle, but with all those curly underlining of such unimportant "errors", ReSharper is much too intrusive and distracts developers from really important things.

This is called advertising.

ReSharper is evil because it thinks it knows better what you want to do than you

image

If you assign a value to your variable only in the constructor of a class, ReSharper wants you to make this field read only. Seriously, wtf? I know when I want a field to be readonly. I have good reasons when I do that. And even if I don't use this field currently anywhere else than in the constructor, I or someone else might in the future. If it's not ok to write to this field I will make it readonly.

It's just another example of the flood of self-advertising of ReSharper. Same functionality more hidden or just on demand - ok, why not. But offensive like that including curly underlining? Oh my.

So, finally …

… these are just the things that came to my eye in the first 15 minutes after I installed ReSharper. There will be a lot more and I might add more examples in this post in the future. From destructive code refactorings that kill your app to all those unnecessary and over-prominent suggestions to change your code - ReSharper remains a very problematic tool.

If you want to use all the (many) good features of ReSharper, you will have to spend a lot of time in fine-tuning it and turning off all the crap it does to advertise itself. Very often you also have to disable good functionality to "fix" bad things ReSharper does, like the suggested XAML removal above - it's useful that ReSharper shows you code that is deprecated / unused - but you have to turn it of because you can't trust it.

If you use ReSharper anyhow, use it wisely and don't put ReSharper over your own coding skills. While it is very helpful, not to say essential,  in many on-demand refactoring scenarios, most of the "live" checks should be used with extreme caution or even turned off. For coding and styling guidelines better go with tools like FXCop.

Update 1: Even more examples

image

ReSharper tells me about a possible null reference exception where I just checked just for that one line earlier. Unnecessary curly lines everywhere distracting me from more important things. Don't like.

Also, the only way to get rid of this curly underlining in this case is to make the LINQ query more complicated and unreadable or to disable null reference checks in general.

feed7 2.3 update

Another bugfix update was released for feed7 a couple of days ago. Version is now 2.3 and it fixes issues with app crashes when sending articles to Instapaper or ReadItLater. There are no new features or other fixes in this release, but the next feature update is already in the making and we will have some very nice improvements and great new features for that.

New Google Reader UI and feed7

Google has launched a new UI for Google Reader that also affects some of Readers features. The good news is: it won't affect feed7 - unless you are using the "share" feature as this has been removed from Google Reader.

If you are still using this feature within the app, feed7 won't crash and it won't do any harm. But it will be useless now as Google Reader doesn't support this feature anymore.

We will remove the possibility to share items over Google Reader with our next (bigger) update that most likely will see the light of day in December.

Google promotes to use Google+ and it's +1 feature to share articles with friends now but it's rather unlikely we will support this in feed7, at least in the near future. It of course also depends on your feedback if you need this feature integrated in feed7, so let us know what you think.

Besides that, we will have another small bugfix update on Marketplace this week that fixes issues with sharing items over Instapaper and Read It Later. No new features will be introduced with this update and it is not related to the changes in Google Reader.

feed7 updated: details on update 2.1 and 2.2

Since feed7 2.0 has launched I have already published two updates to Marketplace. There are no new features in these updates but a couple of important bugfixes. The complete release notes can be found below, but the most important changes are that settings won't get lost during data migration anymore when upgrading from version 1.x to version 2.0 and that Live Tiles should start working again now for all of you that had issues since upgrading to version 2.

Version 2.1.0.225 Release Notes:

Fix: Migration from v1.x to v2.0 can cause drop of 1.x settings
Fix: Wrong description for feed multiselect view star button

Version 2.2.0.227 Release Notes:

Fix: When resuming from tombstoned state, UriMappings were not initialized which results in crash
Fix: Resuming the app from a tombstoned state does not show contents of folders list
Fix: Sync client changes were not saved for background agent settings
Fix: Article duplicates can appear when syncing multiple times in the same session
Fix: Due to DNS problems after a DNS server change, live tiles for web sync stopped working
Fix: Race condition during update of live tiles in web sync mode
New: Support for YouTube short URI format youtu.be

Updated assemblies:
TileUpdateAgent.dll v1.1.0.2 -> v1.2.0.3

Update 2.2 is just going live on Marketplace and should appear on your devices in the next couple of hours.

feed7 2.0 is available on Marketplace!

feed7 2.0 was in development since early this year and a lot of work and time went into this release. I'm very happy that this project is finally done and now available as a free update on Marketplace.

Here's the direct link to feed7 on Marketplace:

http://www.windowsphone.com/en-US/apps/99aa9113-47f4-df11-9264-00237de2db9e

The main target of the 2.0 release was to replace the existing, XML-file based local caching engine by something faster and more flexible that scales good for users that want to cache several thousand articles offline on their device. The development started when Mango was far in the future and I tried to replace the caching engine by some technology that already existed at this time - for example SQLite for Windows Phone 7 or some of the object-based databases that were available at this time.

A lot of work went into it and the result was unfortunately nothing. The database solutions available early this year performed so bad that each and everyone was a lot more worse than my own custom-developed solution. Finally, when SQL Server CE support was confirmed for the "Mango" release, I stopped development on version 2.0 and decided to delay feed7 2.0 until Mango is out.

It was the right decision. SQL Server CE outperforms any other solution by far. It is  not as fast at runtime as my implementation was , but it greatly improves startup performance and also scales well with larger local caches and also makes sync faster. It required a nearly complete rewrite of the whole app as I wanted to behave feed7 just like in the 1.x version, just like as "nothing's happened" … but because the approach with a database is so different to what I have done, everything's changed under the hood now while the UI should feel just the same for you as always. Just faster. And packed with Mango features.

So here's what's new beside the new caching engine:

New feature: Image caching

Also something I had to delay in favor of overall application performance: you can now enable image caching in settings and feed7 will download all images it finds within feed articles. So now you can read your articles offline, but this time also with all images displayed. Of course this feature will slow down sync as analyzing articles for images takes some time, and of course image downloading will also cost time and bandwidth at least on the initial sync - and yes it also will take some serious amount of space on your device - but it's worth it if you're often reading your articles while out of coverage, for example on a plane. You'll see, after the initial sync and download is done, image sync works pretty well and fast. And as it's completely disconnected from your reading or sync experience, it also won't come into your way.

unreadcheckNew feature: Multiselect

It's always helpful if you can perform bulk operations on your articles. Just want to mark some of them starred for later reference? Until now, you had to open each article and add a star in article view.

Now, you can multiselect items (see image on the left)  just like in the official mail client of Windows Phone 7: Tap on the left side of an item to open Checkbox mode, check all items you want to change and select your operation from the AppBar - like mark read, star and unstar. The options change depending on the view you are in.

It's a great feature and we will improve it even more in future release.

Performance, performance, performance

feed7 improves performance in many areas:

It starts in just 1/3 of the time while not slowing down as your local cache grows. It's memory usage is just about 50 % of version 1.x or even less. Google Reader sync performance is also greatly improved and also uses a lot less bandwidth during sync.

We also optimized some workflows like when adding feeds.

Full "Mango" support

feed7 2.0 supports everything that's great about Windows Phone 7.5 "Mango":

  • Multitasking (fast app switching)
  • Greatly improved scrolling performance in lists
  • Pinnable feeds & folders - pin your favorite feeds or even folders to your homescreen - with full Live Tile support that shows the count of new items within those folders!

New article view

Article view was completely overhauled and displays your articles now in a more readable way. Images use as much space as possible on screen so you won't have to resize them to better see their contents. The font is a bit larger. We added some structuring to the text so important parts stand out more. It's a great improvement over version 1.x!

And many more …

As always when an app is nearly completely rewritten, there's so much more in it than you can ever write down. Fixes, improvements, optimizations, … you'll find plenty of them.

One word on Live Tiles

They also work completely different now. If you are using Google Reader, your unread counts on your live tiles are now queried from Google Reader directly over a new Background Agent that is executed by Windows Phone every 30 minutes. You don't need help from my server anymore for this.

For all users that don't use Google Reader but web (direct) sync with feeds, my server is still required. But it also works differently: until now, my server sent push messages to your device with the unread count for your live tile. Now also the Background Agent is pulling this data every 30 minutes from my server.

Go download now!

It's already live for a couple of days - if you don't have it yet, get it … and let me know how you like it!

Have fun!