All of us know, bad web apps. Especially for news environments. With their bad user interface and incorrect behavior. We do too.Therefore we created NewsDrop.
NewsDrop consisted of three main parts. Firstly, the front-end, including our Android app and web application, which we wanted to provide the user with a pure app experience. Secondly, our editorial team, which created content and then delivered it to users. And last but not least, our backend, which was completely implemented with Firebase components, including Firebase authentication and Firestore.
Our main goal was to create a good looking and functional native News-/Entertainment App, which is focused on the gaming sector.We wanted to create a clean app, which had all necessary information “for gamers from gamers”. An additional goal was to release the app on the Google Play Store and make experience with these and other important steps of the process like crashlytics.
In our Android app, we considered different gaming articles. We embedded written text, images, twitter posts and YouTube videos. Each article provided metadatas which included platforms, tags and cover images. We started the project without any clear business model. We oriented too strong on the different business models of other news platforms and missed our strive for something innovative, therefore we made the choice for some changes.
We did set up two Firebase projects to be able to develop and use simultaneously the applications. The first firebase project was the staging environment, where bugs were reproduced and new features implemented. The second Firebase project was the production environment, where the actual android app from the Playstore and the editorial team were using.
The android application was an abstract version of our ideas to get a minimum viable product that can be published as the first version of the app. Therefore, the application consisted only of an authentication screen (not included in the following visualisation), an articles overview and preview screen, an user profile screen, app settings, an about screen and a privacy webview.
The web application was also structured very simply providing abstracted access to content creation and editing. The data models that could be manipulated were:
The web application did implement a workflow for creating and reviewing articles with the 4-eyes principle including multiple steps before a draft turned into a complete article and was published in the end.
Firebase provides tools and infrastructure via a software development kit that enable us as developers to provide functions more easily and efficiently using programming interfaces on various platforms.
What does Firebase offer:
- User authentication
- Cloud storage
- Firebase Functions
- Real-time database
- and even more
Anyone who has worked with mobile apps knows that it always gets tricky on launch day. Keeping an eye on stability, growth and sales can keep the whole team pretty busy. To manage the stability of our app, we used Crashlytics so we could get real-time alerts about crashes. The information about the crashes was very accurate.
We also used Firebase storage to store images that we needed either as lead stories or as content for our articles. However, storage is limited to 5 GB even with the free Firebase version. For this reason, we downsized our images before uploading them. In the future, we will certainly have to pay for an increase in storage to be able to manage our content to a reasonable extent.
However, there is one particular feature of Google that is unbeatable: the Firebase functions!
With this, we were able to run backend code in response to all kinds of inputs or events, such as responding to user actions, analytics and authentication events, without having to start a server. Just a bit of code and the definition under which the function should be executed, and we could do “anything” we wanted.
Here is an illustration of how we sended event-based notifications to our users very easily via the Firebase functions.
The real problem was that we could not use this function because we did not have a credit card. However, this is needed if you want to use the full range of Firebase functions. The bottom line is that we were forced to write more Firebase rules.
These rules work by matching a pattern to database paths and then applying custom conditions to allow data access and keep it consistent. However, we had to write hundreds of lines of code to manage the complexity of our web application as well as our app according to its functionality.
Our Firebase rules became more and more extensive as the app became more complex and new features were added. Unfortunately, all Firebase errors thrown, for example, when implementing our Angular frontend, were more or less pointless. Often we got a “permission denied” error and we couldn’t find the problem without actually looking into our rules and checking them for hours. For this reason, we need Firebase functions in the future to avoid this effort.
Google Play Store
Overall the biggest challenge we faced with NewsDrop so far was publishing our Android app to the Google Play Store. The publication process took multiple attempts. The first few times our app got rejected because of regulations regarding news apps. More specifically because apparently we did not provide our contact information at the correct place inside the app. In the end we solved it by changing the genre of our app from news to entertainment. Our app got approved immediately and now our app is available in the Google Play Store. You can find our app through the following QR code:
Cross platform development
We had difficulties deciding between native app development and cross-platform development. In the end, we decided to develop the app natively first and start with an Android app. The reasons for this are limitations with cross-platform frameworks and a lack of know-how within our team. The biggest disadvantage, however, is that iOS users currently have no access to NewsDrop, although the demand for an iOS app was high.
Editorial team size
Currently, our editorial team consists of two editors who are responsible for the content of our app. For this reason, an enormous amount of time had to be invested in each individual article – it was not even possible to sufficiently cover the entire variety of games with only two editors. Large games websites employ numerous staff members who are responsible for creating the content. In addition, it is not uncommon for each individual editor to be responsible for specific games. This ensures that each individual author has a certain know-how, since in the best case he or she has already played the game – an important prerequisite for being able to write an authentic and credible review, for example. As a university project, this setting was unfortunately denied to us, so that unfortunately only a small section of news from the “world of games” could be covered.
Current state of our application
Since creating an appropriate amount of content is as personnel-intensive as it is time-consuming, we as a team have now agreed to go new ways. So far, our news has been written in great detail and sometimes almost passed for a report or even a commentary. In the future, we would like to concentrate more on pure facts and figures and thus do better justice to our “gamer” target group, which experience has shown to be rather lazy readers. In order to find our unique selling point and not become just another of the numerous websites for gaming news, we have to offer readers and subscribers real added value.
Therefore, it was and is particularly important for us to take into account the current developments in the media landscape. In recent years, the news industry has increasingly developed in the direction of alternative, cross-media forms of content presentation, which are mostly presented in direct form on social media. Therefore, as a first step, pure information should take precedence over the creativity of the individual editor. Not too detailed, but “short and crisp” will be our motto in the future.
The brainstorming process has already brought numerous ideas to light. Overall, we want to offer more forms of content that make us less dependent on individual authors, so that they don’t have to know every last detail about a particular game or have already played it themselves. In a further step, however, we plan to archive the existing contributions in the form of longer texts or even comments and make them available to interested groups. While one person just wants to know when the latest Nintendo game will be released, another might want to know more about the new Fortnite update and needs background information for this, which first has to be researched in detail. Ultimately, we want to meet the needs of both sides within our app.
- Christos Malliardis
- Tim Schaal
- Maximilian Staudenmaier
- Felix Arnold
- Lewon Güler