Habrahabr blogging platform application
Habr is Europe's largest resource for IT professionals. People come here to discuss industry news and share their experiences.
We used different tools for information exchange and communication during the project. This is our standard workflow in custom development:
Bitbucket code storage, Dropbox graphics storage, Pivotal Tracker issue and bug tracking, Hipchat in-house chat, Trello design and sketch approval, Crashlytics crash collection, Flurry/Google Analytics analytics, Skype/Telegram external communication
Customizing the design of publications and algorithms of content loading
Karma and rating widget
Safari iCloud Keychain' and Handoff' support on iOS
Search for publications
View a feed of the best articles (daily, weekly, etc.)
View publications by subscription
Adding publications to bookmarks
Working with Hubs
Dark Theme on Android
While designers were designing the interface, developers were already writing the components responsible for communicating with the API. Only native development tools without cross-platform frameworks were used for all platforms.
Commentary from an iOS developer
"We wanted to make a cool article storage application right away, connecting Core Data with a normalized database to permanently store posts and other entities. But as it turned out, the application was completely incomprehensible to the user. One of a number of controversial situations for example: a user, being online, added some post to favorites and immediately after that lost connection with the Internet, then went offline to the Favorites section, which of course could not download posts from the server, and saw only one post in it - the one that had been saved locally when loading the feed minutes earlier - this confused the experienced Habr-user: "where did all the other favorites go? I had a bunch of them on Habr! It's all gone!". Showing us that lone favorite post was somehow embarrassing, but hiding it from the user was even more illogical - after all, it exists in the local repository and it is marked as a favorite. We decided to follow the User Experience path: "if you want to see the feed, request it from the server". This does not mean that the posts are not stored locally and the application is not usable offline - I simply augmented the unique key with flags of belonging to a certain screen. So database normalization was sacrificed for UX."
— Andrey Kadochnikov
— Denis Kryuchkov
Publisher of Habrahabr
"Mobile applications are a completely new area for us. At the same time, we had no desire, energy, or funds to create another development department for this product category from scratch. So we thought about it, talked to each other, and decided to outsource."