Serving web pages with Firebase Hosting

Firebase Hosting is a tool that provides us with a way to host web applications, allowing us to serve both static and dynamic content to our users with a simplified method of hosting. Whether it’s a web app, or a simple static landing page for a pre-launch of our product, we can deploy content to Firebase Hosting with a single command using the Firebase Command Line Interface. When we host our project using this interface, a subdomain is created for us within firebaseapp.com which our users can then access to view our hosted content. One of the great things about…

Native Flutter Experiences: Tabbed Navigation

When building Flutter applications, we have the ability to create native components which are styled for the native experience on both Android and iOS. Whilst by default we may implement things in a material style, it is important to bear this native experience in mind. In the first set of these articles we will take a quick look at implementing tabbed navigation for the styling of both Android and iOS. Material Tabbed Navigation When it comes to creating tabbed navigation with a Material approach, we make use of what is known as a TabBar — typically this will be placed within an…

Exposing Notification Settings to the Android System

Have you ever looked at the Android System settings page for a specific application and wondered about the option to view “Additional settings in the app”? If you haven’t seen this before in your settings, or aren’t aware of it, this is what it looks like: This option allows developers to essentially provide a link to a push notification settings screen in their application — this allows users to quickly and easily continue altering their notification settings for the chosen app directly from the system. The ability to hook into this was added at API level 21 (Android 5.0), but not all…

Authenticating users with Firebase and Flutter

When it comes to building apps, it’s likely that you’re going to want to perform some sort of user authentication, data storage or some other related tasks. Luckily for us, there are a collection of tools available from Firebase that allow us to achieve such things — some of these tools are also available for use with Flutter in the form of packages. In this post, I want to take a quick look at how we can perform authentication in our Flutter applications using Firebase. We need to begin by adding the Firebase Auth package to our pubspec.yaml file, once you’ve done…

Exploring Google Play Services: Place Picker & Autocomplete

The Place Picker Widget and Autocomplete component are two powerful features part of Google Play Services. Here we take a look at both of these componenets and how we can implement them in our applications. As of Play Services 7.0, Google have made some great features available for us to implement into our apps – two of which include the Place Picker UI widget and Autocomplete component. These can both help to greatly improve existing solutions within your applications, or even help you to implement such features into your app in the future. Either way, providing a native and clean…

Exploring the new Android Permissions Model

The approach to permissions for both users and developers is changing with Android M. Here we take a look at how they’ve changed, how this affects the user experience and what we need to do to implement this new model. Following the new Android announcements at Google I/O 2015, we previously took a look at the new Android Design Support Library. One other important announcement was the new approach to Permissions in Android M, which also affects the way they work in pre-M applications. Here at ribot we strive to keep up-to-date with the latest development approaches, so I decided to…